diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index cc4fa7417dcd..b2ab132453a0 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
+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.yaml b/.github/comment.yml
similarity index 64%
rename from .github/comment.yaml
rename to .github/comment.yml
index f4a177fbf594..5f9fd6eb7f1a 100644
--- a/.github/comment.yaml
+++ b/.github/comment.yml
@@ -1,12 +1,4 @@
---
-- rule:
- type: checkbox
- keywords:
- - "Removing API(s)"
- - "Updating API in stable version"
- onCheckedLabels:
- - breakingChange
-
- rule:
type: checkbox
keywords:
@@ -24,10 +16,10 @@
- rule:
type: label
- label: breakingChange
- 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. "
+ label: BreakingChangeReviewRequired
+ 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 1bbcc360a14c..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:
@@ -21,14 +28,14 @@
paths:
- "specification/network/**"
reviewers:
- - MyronFanQiu
+ - kairu-ms
- lirenhe
- rule:
paths:
- "specification/@(applicationinsights|operationalinsights)/**"
reviewers:
- - MyronFanQiu
+ - kairu-ms
- rule:
paths: "specification/@(resources|powerplatform)/**"
@@ -72,7 +79,7 @@
- "specification/monitor/**"
reviewers:
- weidongxu-microsoft
- - MyronFanQiu
+ - kairu-ms
- rule:
paths:
diff --git a/CODEOWNERS b/CODEOWNERS
index febbeb61b4f9..c191c63fa8eb 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -1,14 +1,14 @@
/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
/specification/azsadmin/ @deathly809
/specification/batch/ @matthchr @xingwu1
/specification/batchai/ @alexanderyukhanov
-/specification/billing/ @wilcobmsft
+/specification/billing/ @wilcobmsft @asarkar84
/specification/cdn/ @csmengwan @injyzarif @prakharsharma10
/specification/cognitiveservices/ @felixwa @yangyuan
/specification/compute/ @bilaakpan-ms @sandido @dkulkarni-ms @haagha @madewithsmiles @MS-syh2qs @grizzlytheodore @hyonholee @mabhard @danielli90 @smotwani @ppatwa @vikramd-ms @savyasachisamal @yunusm @ZhidongPeng @nkuchta @maheshnemichand @najams @changov
@@ -58,7 +58,7 @@
/specification/recoveryservicessiterecovery/ @avneeshrai
/specification/redis/ @siddharthchatrolams @timlovellsmith
/specification/relay/ @sethmanheim @v-ajnava
-/specification/resources/ @Tiano2017 @rajshah11 @vivsriaus
+/specification/resources/ @Azure/arm-template-deployments @rajshah11 @vivsriaus
/specification/scheduler/ @pinwang81
/specification/search/data-plane/ @brjohnstmsft @arv100kri @bleroy @heaths @AlexGhiondea
/specification/search/resource-manager/ @abhi1509 @miwelsh @tjacobhi
diff --git a/cSpell.json b/cSpell.json
index 851e31d46c51..6d8c0045d327 100644
--- a/cSpell.json
+++ b/cSpell.json
@@ -2,7 +2,9 @@
"version": "0.1",
"language": "en",
"words": [
- "Creds"
+ "Creds",
+ "partiallycompleted",
+ "umls"
],
"dictionaryDefinitions": [
{
@@ -748,4 +750,4 @@
]
}
]
-}
+}
\ No newline at end of file
diff --git a/custom-words.txt b/custom-words.txt
index a162607f2476..c0419ec13b8f 100644
--- a/custom-words.txt
+++ b/custom-words.txt
@@ -122,6 +122,7 @@ aspnet
asyncinfo
asyncoperation
atascada
+attestationcollateral
Auditd
australiaeast
australiasoutheast
@@ -454,6 +455,7 @@ deleteconsumergroup
deletedcertificates
deletedkeys
deletedsecrets
+deletedservices
deletedstorage
deletefailed
deleteissuers
@@ -609,6 +611,7 @@ fileuploadout
fileurl
findsimilars
findsquare
+firmwares
fluentd
forestsummary
formrecognizer
@@ -675,6 +678,7 @@ Gloo
gluster
glusterfs
GOARCH
+GPUP
GPUs
Grammarly
GRANTACE
@@ -757,6 +761,7 @@ Informations
Informix
Ingestor
ingressed
+inittime
inkrecognizer
inlinecount
inlines
@@ -996,6 +1001,8 @@ Monospace
mountainview
MPNS
MRAN
+mrenclave
+mrsigner
MSAZR
MSAZRDE
MSCONCAT
@@ -1191,6 +1198,7 @@ Plex
Pohlmann
pois
policyassignments
+policycertificates
policydefinitions
policyinsights
policykey
@@ -1307,6 +1315,8 @@ recoveryservicessiterecovery
recurse
rediscache
rediscachemanagement
+RediSearch
+redisenterprise
Redshift
Reenabled
Refid
@@ -1759,6 +1769,7 @@ Unregistering
Unregisters
unrestorable
unsubstituted
+Unsynced
untagged
Untracked
unvalidated
@@ -1818,6 +1829,7 @@ visualsearch
visualstudio
vlan
vlanid
+vlans
Vldb
VM's
vmextension
@@ -1974,3 +1986,18 @@ Setget
Ruleproperties
shamir_share
dllpath
+MSIX
+msix
+MSIXpackages
+msixpackages
+appxmanifest
+Appxmanifest
+msixpackage
+xml
+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/sdk_customization.md b/documentation/sdkautomation/sdk_customization.md
index de083379fcf2..620ed6edfe57 100644
--- a/documentation/sdkautomation/sdk_customization.md
+++ b/documentation/sdkautomation/sdk_customization.md
@@ -777,7 +777,7 @@ Output of install instruction script.
}
```
-#### InstallInstructionScriptInput Schema
+#### InstallInstructionScriptOutput Schema
```jsonc
{
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/Microsoft.AlertsManagement/stable/2019-06-01/SmartDetectorAlertRulesApi.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-06-01/SmartDetectorAlertRulesApi.json
index 77242cc6bfbf..2599e615fcb3 100644
--- a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-06-01/SmartDetectorAlertRulesApi.json
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-06-01/SmartDetectorAlertRulesApi.json
@@ -43,7 +43,7 @@
"description": "List all the existing Smart Detector alert rules within the subscription.",
"parameters": [
{
- "$ref": "#/parameters/SubscriptionIdParameter"
+ "$ref": "#/parameters/subscriptionId"
},
{
"$ref": "#/parameters/ApiVersionParameter"
@@ -85,7 +85,7 @@
"description": "List all the existing Smart Detector alert rules within the subscription and resource group.",
"parameters": [
{
- "$ref": "#/parameters/SubscriptionIdParameter"
+ "$ref": "#/parameters/subscriptionId"
},
{
"$ref": "#/parameters/ResourceGroupNameParameter"
@@ -130,7 +130,7 @@
"description": "Get a specific Smart Detector alert rule.",
"parameters": [
{
- "$ref": "#/parameters/SubscriptionIdParameter"
+ "$ref": "#/parameters/subscriptionId"
},
{
"$ref": "#/parameters/ResourceGroupNameParameter"
@@ -173,7 +173,7 @@
"description": "Create or update a Smart Detector alert rule.",
"parameters": [
{
- "$ref": "#/parameters/SubscriptionIdParameter"
+ "$ref": "#/parameters/subscriptionId"
},
{
"$ref": "#/parameters/ResourceGroupNameParameter"
@@ -228,7 +228,7 @@
"description": "Patch a specific Smart Detector alert rule.",
"parameters": [
{
- "$ref": "#/parameters/SubscriptionIdParameter"
+ "$ref": "#/parameters/subscriptionId"
},
{
"$ref": "#/parameters/ResourceGroupNameParameter"
@@ -277,7 +277,7 @@
"description": "Delete an existing Smart Detector alert rule.",
"parameters": [
{
- "$ref": "#/parameters/SubscriptionIdParameter"
+ "$ref": "#/parameters/subscriptionId"
},
{
"$ref": "#/parameters/ResourceGroupNameParameter"
@@ -611,7 +611,7 @@
}
},
"parameters": {
- "SubscriptionIdParameter": {
+ "subscriptionId": {
"name": "subscriptionId",
"in": "path",
"required": true,
diff --git a/specification/alertsmanagement/resource-manager/readme.go.md b/specification/alertsmanagement/resource-manager/readme.go.md
index 13f35726b3ee..5fa1c3add76b 100644
--- a/specification/alertsmanagement/resource-manager/readme.go.md
+++ b/specification/alertsmanagement/resource-manager/readme.go.md
@@ -12,19 +12,29 @@ go:
### Go multi-api
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-2019-06-preview
- tag: package-preview-2019-05
- tag: package-2019-03
- tag: package-2018-05
- tag: package-2018-05-preview
```
+### Tag: package-2019-06-preview and go
+
+These settings apply only when `--tag=package-2019-06-preview --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2019-06-preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2019-06-01-preview/$(namespace)
+```
+
### Tag: package-preview-2019-05 and go
These settings apply only when `--tag=package-preview-2019-05 --go` is specified on the command line.
Please also specify `--go-sdk-folder=`.
``` yaml $(tag) == 'package-preview-2019-05' && $(go)
-output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2019-05-05/$(namespace)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2019-05-05-preview/$(namespace)
```
### Tag: package-2019-03 and go
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/apimanagement.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimanagement.json
new file mode 100644
index 000000000000..dbe76ee7c35b
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimanagement.json
@@ -0,0 +1,765 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on entities like API, Product, and Subscription associated with your Azure API Management deployment.",
+ "version": "2020-06-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": {},
+ "definitions": {
+ "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."
+ },
+ "ErrorResponse": {
+ "properties": {
+ "error": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ErrorResponseBody",
+ "description": "Properties of the Error Response."
+ }
+ },
+ "description": "Error Response."
+ },
+ "ErrorResponseBody": {
+ "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 Body contract."
+ },
+ "RegionContract": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Region name.",
+ "readOnly": true
+ },
+ "isMasterRegion": {
+ "description": "whether Region is the master region.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "whether Region is deleted.",
+ "type": "boolean"
+ }
+ },
+ "description": "Region profile."
+ },
+ "RegionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RegionContract"
+ },
+ "description": "Lists of Regions."
+ },
+ "count": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total record count number across all pages."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Lists Regions operation response details."
+ },
+ "Resource": {
+ "description": "The Resource definition.",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource ID."
+ },
+ "name": {
+ "type": "string",
+ "description": "Resource name.",
+ "readOnly": true
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type for API Management resource."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "AccessParameter": {
+ "name": "accessName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "access"
+ ],
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "AccessIdName"
+ },
+ "description": "The identifier of the Access configuration.",
+ "x-ms-parameter-location": "method"
+ },
+ "ApiIdParameter": {
+ "name": "apiId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "API identifier. Must be unique in the current API Management service instance.",
+ "minLength": 1,
+ "maxLength": 80,
+ "x-ms-parameter-location": "method"
+ },
+ "ApiIdRevParameter": {
+ "name": "apiId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.",
+ "minLength": 1,
+ "maxLength": 256,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Version of the API to be used with the client request."
+ },
+ "ApiVersionSetIdParameter": {
+ "name": "versionSetId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Api Version Set identifier. Must be unique in the current API Management service instance.",
+ "minLength": 1,
+ "maxLength": 80,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "AppTypeParameter": {
+ "name": "appType",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Determines the type of application which send the create user request. Default is legacy publisher portal.",
+ "enum": [
+ "portal",
+ "developerPortal"
+ ],
+ "x-ms-enum": {
+ "name": "AppType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "portal",
+ "description": "User create request was sent by legacy developer portal."
+ },
+ {
+ "value": "developerPortal",
+ "description": "User create request was sent by new developer portal."
+ }
+ ]
+ },
+ "default": "portal",
+ "x-ms-parameter-location": "method"
+ },
+ "AttachmentIdParameter": {
+ "name": "attachmentId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Attachment identifier within an Issue. Must be unique in the current Issue.",
+ "minLength": 1,
+ "maxLength": 256,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "AuthenticationServerIdParameter": {
+ "name": "authsid",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Identifier of the authorization server.",
+ "minLength": 1,
+ "maxLength": 80,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "BackendIdParameter": {
+ "name": "backendId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Identifier of the Backend entity. Must be unique in the current API Management service instance.",
+ "minLength": 1,
+ "maxLength": 80,
+ "x-ms-parameter-location": "method"
+ },
+ "CacheIdParameter": {
+ "name": "cacheId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Identifier of the Cache entity. Cache identifier (should be either 'default' or valid Azure region identifier).",
+ "minLength": 1,
+ "maxLength": 80,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "CertificateIdParameter": {
+ "name": "certificateId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Identifier of the certificate entity. Must be unique in the current API Management service instance.",
+ "minLength": 1,
+ "maxLength": 80,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "CommentIdParameter": {
+ "name": "commentId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Comment identifier within an Issue. Must be unique in the current Issue.",
+ "minLength": 1,
+ "maxLength": 256,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "ConfigurationParameter": {
+ "name": "configurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "configuration"
+ ],
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "configurationIdName"
+ },
+ "description": "The identifier of the Git Configuration Operation.",
+ "x-ms-parameter-location": "method"
+ },
+ "DiagnosticIdParameter": {
+ "name": "diagnosticId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Diagnostic identifier. Must be unique in the current API Management service instance.",
+ "minLength": 1,
+ "maxLength": 80,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "EmailParameter": {
+ "name": "email",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Email identifier.",
+ "x-ms-parameter-location": "method"
+ },
+ "GroupIdParameter": {
+ "name": "groupId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Group identifier. Must be unique in the current API Management service instance.",
+ "minLength": 1,
+ "maxLength": 256,
+ "x-ms-parameter-location": "method"
+ },
+ "IdentityProviderNameParameter": {
+ "name": "identityProviderName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "facebook",
+ "google",
+ "microsoft",
+ "twitter",
+ "aad",
+ "aadB2C"
+ ],
+ "x-ms-enum": {
+ "name": "IdentityProviderType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "facebook",
+ "description": "Facebook as Identity provider."
+ },
+ {
+ "value": "google",
+ "description": "Google as Identity provider."
+ },
+ {
+ "value": "microsoft",
+ "description": "Microsoft Live as Identity provider."
+ },
+ {
+ "value": "twitter",
+ "description": "Twitter as Identity provider."
+ },
+ {
+ "value": "aad",
+ "description": "Azure Active Directory as Identity provider."
+ },
+ {
+ "value": "aadB2C",
+ "description": "Azure Active Directory B2C as Identity provider."
+ }
+ ]
+ },
+ "description": "Identity Provider Type identifier.",
+ "x-ms-parameter-location": "method"
+ },
+ "IfMatchOptionalParameter": {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "description": "ETag of the Entity. Not required when creating an entity, but required when updating an entity.",
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "IfMatchRequiredParameter": {
+ "name": "If-Match",
+ "in": "header",
+ "required": true,
+ "description": "ETag of the Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.",
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "IssueIdParameter": {
+ "name": "issueId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Issue identifier. Must be unique in the current API Management service instance.",
+ "minLength": 1,
+ "maxLength": 256,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "LocationNameParameter": {
+ "name": "locationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Location in which the API Management service is deployed. This is one of the Azure Regions like West US, East US, South Central US.",
+ "minLength": 1,
+ "x-ms-parameter-location": "method"
+ },
+ "LoggerIdParameter": {
+ "name": "loggerId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "maxLength": 256,
+ "pattern": "^[^*#&+:<>?]+$",
+ "description": "Logger identifier. Must be unique in the API Management service instance.",
+ "x-ms-parameter-location": "method"
+ },
+ "NotificationNameParameter": {
+ "name": "notificationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "RequestPublisherNotificationMessage",
+ "PurchasePublisherNotificationMessage",
+ "NewApplicationNotificationMessage",
+ "BCC",
+ "NewIssuePublisherNotificationMessage",
+ "AccountClosedPublisher",
+ "QuotaLimitApproachingPublisherNotificationMessage"
+ ],
+ "x-ms-enum": {
+ "name": "NotificationName",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "RequestPublisherNotificationMessage",
+ "description": "The following email recipients and users will receive email notifications about subscription requests for API products requiring approval."
+ },
+ {
+ "value": "PurchasePublisherNotificationMessage",
+ "description": "The following email recipients and users will receive email notifications about new API product subscriptions."
+ },
+ {
+ "value": "NewApplicationNotificationMessage",
+ "description": "The following email recipients and users will receive email notifications when new applications are submitted to the application gallery."
+ },
+ {
+ "value": "BCC",
+ "description": "The following recipients will receive blind carbon copies of all emails sent to developers."
+ },
+ {
+ "value": "NewIssuePublisherNotificationMessage",
+ "description": "The following email recipients and users will receive email notifications when a new issue or comment is submitted on the developer portal."
+ },
+ {
+ "value": "AccountClosedPublisher",
+ "description": "The following email recipients and users will receive email notifications when developer closes his account."
+ },
+ {
+ "value": "QuotaLimitApproachingPublisherNotificationMessage",
+ "description": "The following email recipients and users will receive email notifications when subscription usage gets close to usage quota."
+ }
+ ]
+ },
+ "description": "Notification Name Identifier.",
+ "x-ms-parameter-location": "method"
+ },
+ "NotifySubscriptionStateChangeParameter": {
+ "name": "notify",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Notify change in Subscription State. \n - If false, do not send any email notification for change of state of subscription \n - If true, send email notification of change of state of subscription ",
+ "x-ms-parameter-location": "method"
+ },
+ "OpenIdConnectIdParameter": {
+ "name": "opid",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Identifier of the OpenID Connect Provider.",
+ "maxLength": 256,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "OperationIdParameter": {
+ "name": "operationId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Operation identifier within an API. Must be unique in the current API Management service instance.",
+ "minLength": 1,
+ "maxLength": 80,
+ "x-ms-parameter-location": "method"
+ },
+ "PolicyExportFormat": {
+ "name": "format",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Policy Export Format.",
+ "enum": [
+ "xml",
+ "rawxml"
+ ],
+ "x-ms-enum": {
+ "name": "PolicyExportFormat",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "xml",
+ "description": "The contents are inline and Content type is an XML document."
+ },
+ {
+ "value": "rawxml",
+ "description": "The contents are inline and Content type is a non XML encoded policy document."
+ }
+ ]
+ },
+ "default": "xml",
+ "x-ms-parameter-location": "method"
+ },
+ "PolicyIdParameter": {
+ "name": "policyId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "policy"
+ ],
+ "description": "The identifier of the Policy.",
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "PolicyIdName"
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "ProductIdParameter": {
+ "name": "productId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Product identifier. Must be unique in the current API Management service instance.",
+ "minLength": 1,
+ "maxLength": 256,
+ "x-ms-parameter-location": "method"
+ },
+ "NamedValueIdParameter": {
+ "name": "namedValueId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Identifier of the NamedValue.",
+ "maxLength": 256,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "QuotaCounterKeyParameter": {
+ "name": "quotaCounterKey",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Quota counter key identifier.This is the result of expression defined in counter-key attribute of the quota-by-key policy.For Example, if you specify counter-key=\"boo\" in the policy, then it’s accessible by \"boo\" counter key. But if it’s defined as counter-key=\"@(\"b\"+\"a\")\" then it will be accessible by \"ba\" key",
+ "x-ms-parameter-location": "method"
+ },
+ "QuotaPeriodKeyParameter": {
+ "name": "quotaPeriodKey",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Quota period key identifier.",
+ "x-ms-parameter-location": "method"
+ },
+ "ReleaseIdParameter": {
+ "name": "releaseId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Release identifier within an API. Must be unique in the current API Management service instance.",
+ "minLength": 1,
+ "maxLength": 80,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group.",
+ "x-ms-parameter-location": "method"
+ },
+ "SchemaIdParameter": {
+ "name": "schemaId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Schema identifier within an API. Must be unique in the current API Management service instance.",
+ "minLength": 1,
+ "maxLength": 80,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "ServiceNameParameter": {
+ "name": "serviceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the API Management service.",
+ "minLength": 1,
+ "maxLength": 50,
+ "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
+ "x-ms-parameter-location": "method"
+ },
+ "SkipQueryParameter": {
+ "name": "$skip",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of records to skip.",
+ "minimum": 0,
+ "x-ms-parameter-location": "method"
+ },
+ "SubscriptionEntityIdParameter": {
+ "name": "sid",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Subscription entity Identifier. The entity represents the association between a user and a product in API Management.",
+ "maxLength": 256,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "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."
+ },
+ "TagIdParameter": {
+ "name": "tagId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Tag identifier. Must be unique in the current API Management service instance.",
+ "minLength": 1,
+ "maxLength": 80,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "TagDescriptionIdParameter": {
+ "name": "tagDescriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Tag description identifier. Used when creating tagDescription for API/Tag association. Based on API and Tag names.",
+ "minLength": 1,
+ "maxLength": 80,
+ "pattern": "^[^*#&+:<>?]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "TemplateNameParameter": {
+ "name": "templateName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "applicationApprovedNotificationMessage",
+ "accountClosedDeveloper",
+ "quotaLimitApproachingDeveloperNotificationMessage",
+ "newDeveloperNotificationMessage",
+ "emailChangeIdentityDefault",
+ "inviteUserNotificationMessage",
+ "newCommentNotificationMessage",
+ "confirmSignUpIdentityDefault",
+ "newIssueNotificationMessage",
+ "purchaseDeveloperNotificationMessage",
+ "passwordResetIdentityDefault",
+ "passwordResetByAdminNotificationMessage",
+ "rejectDeveloperNotificationMessage",
+ "requestDeveloperNotificationMessage"
+ ],
+ "x-ms-enum": {
+ "name": "TemplateName",
+ "modelAsString": true
+ },
+ "description": "Email Template Name Identifier.",
+ "x-ms-parameter-location": "method"
+ },
+ "TopQueryParameter": {
+ "name": "$top",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of records to return.",
+ "minimum": 1,
+ "x-ms-parameter-location": "method"
+ },
+ "UserIdParameter": {
+ "name": "userId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "User identifier. Must be unique in the current API Management service instance.",
+ "minLength": 1,
+ "maxLength": 80,
+ "x-ms-parameter-location": "method"
+ },
+ "GatewayIdParameter": {
+ "name": "gatewayId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Gateway entity identifier. Must be unique in the current API Management service instance. Must not have value 'managed'",
+ "minLength": 1,
+ "maxLength": 80,
+ "x-ms-parameter-location": "method"
+ },
+ "GatewayHostnameConfigurationIdParameter": {
+ "name": "hcId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Gateway hostname configuration identifier. Must be unique in the scope of parent Gateway entity.",
+ "minLength": 1,
+ "maxLength": 80,
+ "x-ms-parameter-location": "method"
+ },
+ "ContentTypeIdParameter": {
+ "name": "contentTypeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Content type identifier.",
+ "minLength": 1,
+ "maxLength": 80,
+ "x-ms-parameter-location": "method"
+ },
+ "ContentItemIdParameter": {
+ "name": "contentItemId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Content item identifier.",
+ "minLength": 1,
+ "maxLength": 80,
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimapis.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimapis.json
new file mode 100644
index 000000000000..4db90a55a476
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimapis.json
@@ -0,0 +1,4515 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on API entity and their Operations associated with your Azure API Management deployment.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/apis": {
+ "get": {
+ "tags": [
+ "Api"
+ ],
+ "operationId": "Api_ListByService",
+ "description": "Lists all APIs of the API Management service instance.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-create-apis"
+ },
+ "x-ms-examples": {
+ "ApiManagementListApis": {
+ "$ref": "./examples/ApiManagementListApis.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || serviceUrl | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || path | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || isCurrent | filter | eq, ne | |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "name": "tags",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Include tags in the response."
+ },
+ {
+ "name": "expandApiVersionSet",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Include full ApiVersionSet resource in response"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Paged Result response of Apis.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ApiContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}": {
+ "head": {
+ "tags": [
+ "Api"
+ ],
+ "operationId": "Api_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the API specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadApi": {
+ "$ref": "./examples/ApiManagementHeadApi.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified API entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Api"
+ ],
+ "operationId": "Api_Get",
+ "description": "Gets the details of the API specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetApiContract": {
+ "$ref": "./examples/ApiManagementGetApiContract.json"
+ },
+ "ApiManagementGetApiRevisionContract": {
+ "$ref": "./examples/ApiManagementGetApiRevision.json"
+ }
+ },
+ "produces": [
+ "application/json",
+ "application/vnd.sun.wadl+xml",
+ "application/vnd.swagger.doc+json",
+ "application/wsdl+xml",
+ "application/vnd.oai.openapi",
+ "application/vnd.oai.openapi+json"
+ ],
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified API entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Api"
+ ],
+ "operationId": "Api_CreateOrUpdate",
+ "description": "Creates new or updates existing specified API of the API Management service instance.",
+ "x-ms-examples": {
+ "ApiManagementCreateApiUsingOai3Import": {
+ "$ref": "./examples/ApiManagementCreateApiUsingOai3Import.json"
+ },
+ "ApiManagementCreateApiUsingSwaggerImport": {
+ "$ref": "./examples/ApiManagementCreateApiUsingSwaggerImport.json"
+ },
+ "ApiManagementCreateApiUsingWadlImport": {
+ "$ref": "./examples/ApiManagementCreateApiUsingWadlImport.json"
+ },
+ "ApiManagementCreateSoapToRestApiUsingWsdlImport": {
+ "$ref": "./examples/ApiManagementCreateSoapToRestApiUsingWsdlImport.json"
+ },
+ "ApiManagementCreateSoapPassThroughApiUsingWsdlImport": {
+ "$ref": "./examples/ApiManagementCreateSoapPassThroughApiUsingWsdlImport.json"
+ },
+ "ApiManagementCreateApi": {
+ "$ref": "./examples/ApiManagementCreateApi.json"
+ },
+ "ApiManagementCreateApiRevisionFromExistingApi": {
+ "$ref": "./examples/ApiManagementCreateApiRevisionFromExistingApi.json"
+ },
+ "ApiManagementCreateApiNewVersionUsingExistingApi": {
+ "$ref": "./examples/ApiManagementCreateApiNewVersionUsingExistingApi.json"
+ },
+ "ApiManagementCreateApiClone": {
+ "$ref": "./examples/ApiManagementCreateApiClone.json"
+ },
+ "ApiManagementCreateApiWithOpenIdConnect": {
+ "$ref": "./examples/ApiManagementCreateApiWithOpenIdConnect.json"
+ },
+ "ApiManagementCreateApiUsingImportOverrideServiceUrl": {
+ "$ref": "./examples/ApiManagementCreateApiUsingImportOverrideServiceUrl.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiCreateOrUpdateParameter"
+ },
+ "description": "Create or update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "API was successfully created.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "202": {
+ "description": "Request to create or update API was accepted. Location header contains the URL where the status of the long running operation can be checked."
+ },
+ "200": {
+ "description": "API was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "patch": {
+ "tags": [
+ "Api"
+ ],
+ "operationId": "Api_Update",
+ "description": "Updates the specified API of the API Management service instance.",
+ "x-ms-examples": {
+ "ApiManagementUpdateApi": {
+ "$ref": "./examples/ApiManagementUpdateApi.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiUpdateContract"
+ },
+ "description": "API Update Contract parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "API was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Api"
+ ],
+ "operationId": "Api_Delete",
+ "description": "Deletes the specified API of the API Management service instance.",
+ "x-ms-examples": {
+ "ApiManagementDeleteApi": {
+ "$ref": "./examples/ApiManagementDeleteApi.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "name": "deleteRevisions",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Delete all revisions of the Api."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The API was successfully deleted."
+ },
+ "204": {
+ "description": "The API was successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/revisions": {
+ "get": {
+ "tags": [
+ "ApiRevision"
+ ],
+ "operationId": "ApiRevision_ListByService",
+ "description": "Lists all revisions of an API.",
+ "x-ms-examples": {
+ "ApiManagementListApiRevisions": {
+ "$ref": "./examples/ApiManagementListApiRevisions.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| apiRevision | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation returns a list of revision details.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiRevisionCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ApiRevisionContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/releases": {
+ "get": {
+ "tags": [
+ "ApiRelease"
+ ],
+ "operationId": "ApiRelease_ListByService",
+ "description": "Lists all releases of an API. An API release is created when making an API Revision current. Releases are also used to rollback to previous revisions. Results will be paged and can be constrained by the $top and $skip parameters.",
+ "x-ms-examples": {
+ "ApiManagementListApiReleases": {
+ "$ref": "./examples/ApiManagementListApiReleases.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| notes | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation returns a list of API Releases.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiReleaseCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ApiReleaseContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/releases/{releaseId}": {
+ "head": {
+ "tags": [
+ "ApiRelease"
+ ],
+ "operationId": "ApiRelease_GetEntityTag",
+ "description": "Returns the etag of an API release.",
+ "x-ms-examples": {
+ "ApiManagementHeadApiRelease": {
+ "$ref": "./examples/ApiManagementHeadApiRelease.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ReleaseIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Gets the entity state (Etag) version of the api release as specified by its identifier.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApiRelease"
+ ],
+ "operationId": "ApiRelease_Get",
+ "description": "Returns the details of an API release.",
+ "x-ms-examples": {
+ "ApiManagementGetApiRelease": {
+ "$ref": "./examples/ApiManagementGetApiRelease.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ReleaseIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation returns the details of an API Release.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiReleaseContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApiRelease"
+ ],
+ "operationId": "ApiRelease_CreateOrUpdate",
+ "description": "Creates a new Release for the API.",
+ "x-ms-examples": {
+ "ApiManagementCreateApiRelease": {
+ "$ref": "./examples/ApiManagementCreateApiRelease.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ReleaseIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiReleaseContract"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Release was successfully created.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiReleaseContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Release was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiReleaseContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ApiRelease"
+ ],
+ "operationId": "ApiRelease_Update",
+ "description": "Updates the details of the release of the API specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementUpdateApiRelease": {
+ "$ref": "./examples/ApiManagementUpdateApiRelease.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ReleaseIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiReleaseContract"
+ },
+ "description": "API Release Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Release was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiReleaseContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApiRelease"
+ ],
+ "operationId": "ApiRelease_Delete",
+ "description": "Deletes the specified release in the API.",
+ "x-ms-examples": {
+ "ApiManagementDeleteApiRelease": {
+ "$ref": "./examples/ApiManagementDeleteApiRelease.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ReleaseIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "API release successfully removed"
+ },
+ "204": {
+ "description": "API release successfully removed by previous request or does not exist"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operations": {
+ "get": {
+ "tags": [
+ "ApiOperation"
+ ],
+ "operationId": "ApiOperation_ListByApi",
+ "description": "Lists a collection of the operations for the specified API.",
+ "x-ms-examples": {
+ "ApiManagementListApiOperations": {
+ "$ref": "./examples/ApiManagementListApiOperations.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || method | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || urlTemplate | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "name": "tags",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Include tags in the response."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A collection of operation summary entities at the API level.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OperationCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/OperationContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operations/{operationId}": {
+ "head": {
+ "tags": [
+ "ApiOperation"
+ ],
+ "operationId": "ApiOperation_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the API operation specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadApiOperation": {
+ "$ref": "./examples/ApiManagementHeadApiOperation.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified API operation entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApiOperation"
+ ],
+ "operationId": "ApiOperation_Get",
+ "description": "Gets the details of the API Operation specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetApiOperation": {
+ "$ref": "./examples/ApiManagementGetApiOperation.json"
+ },
+ "ApiManagementGetApiOperationPetStore": {
+ "$ref": "./examples/ApiManagementGetApiOperationPetStore.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Operation entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OperationContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApiOperation"
+ ],
+ "operationId": "ApiOperation_CreateOrUpdate",
+ "description": "Creates a new operation in the API or updates an existing one.",
+ "x-ms-examples": {
+ "ApiManagementCreateApiOperation": {
+ "$ref": "./examples/ApiManagementCreateApiOperation.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OperationContract"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Operation was successfully created.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OperationContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Operation was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OperationContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ApiOperation"
+ ],
+ "operationId": "ApiOperation_Update",
+ "description": "Updates the details of the operation in the API specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementUpdateApiOperation": {
+ "$ref": "./examples/ApiManagementUpdateApiOperation.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OperationUpdateContract"
+ },
+ "description": "API Operation Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Operation was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OperationContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApiOperation"
+ ],
+ "operationId": "ApiOperation_Delete",
+ "description": "Deletes the specified operation in the API.",
+ "x-ms-examples": {
+ "ApiManagementDeleteApiOperation": {
+ "$ref": "./examples/ApiManagementDeleteApiOperation.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "API operation successfully removed"
+ },
+ "204": {
+ "description": "API operation successfully removed by previous request or does not exist"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operations/{operationId}/policies": {
+ "get": {
+ "tags": [
+ "ApiOperationPolicy"
+ ],
+ "operationId": "ApiOperationPolicy_ListByOperation",
+ "description": "Get the list of policy configuration at the API Operation level.",
+ "x-ms-examples": {
+ "ApiManagementListApiOperationPolicies": {
+ "$ref": "./examples/ApiManagementListApiOperationPolicies.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Api Operations Policy Collection.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operations/{operationId}/policies/{policyId}": {
+ "head": {
+ "tags": [
+ "ApiOperationPolicy"
+ ],
+ "operationId": "ApiOperationPolicy_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the API operation policy specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadApiOperationPolicy": {
+ "$ref": "./examples/ApiManagementHeadApiOperationPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified API operation policy entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApiOperationPolicy"
+ ],
+ "operationId": "ApiOperationPolicy_Get",
+ "description": "Get the policy configuration at the API Operation level.",
+ "x-ms-examples": {
+ "ApiManagementGetApiOperationPolicy": {
+ "$ref": "./examples/ApiManagementGetApiOperationPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyExportFormat"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Api Operation Policy information.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApiOperationPolicy"
+ ],
+ "operationId": "ApiOperationPolicy_CreateOrUpdate",
+ "description": "Creates or updates policy configuration for the API Operation level.",
+ "x-ms-examples": {
+ "ApiManagementCreateApiOperationPolicy": {
+ "$ref": "./examples/ApiManagementCreateApiOperationPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "description": "The policy contents to apply."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Api Operation policy configuration was successfully created.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Api Operation policy configuration of the tenant was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApiOperationPolicy"
+ ],
+ "operationId": "ApiOperationPolicy_Delete",
+ "description": "Deletes the policy configuration at the Api Operation.",
+ "x-ms-examples": {
+ "ApiManagementDeleteApiOperationPolicy": {
+ "$ref": "./examples/ApiManagementDeleteApiOperationPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Policy successfully removed"
+ },
+ "204": {
+ "description": "Policy successfully removed by previous request or does not exist"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operations/{operationId}/tags": {
+ "get": {
+ "tags": [
+ "ApiOperationTag"
+ ],
+ "operationId": "Tag_ListByOperation",
+ "description": "Lists all Tags associated with the Operation.",
+ "x-ms-examples": {
+ "ApiManagementListApiOperationTags": {
+ "$ref": "./examples/ApiManagementListApiOperationTags.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation returns a collection of tags associated with the Operation entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/TagContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operations/{operationId}/tags/{tagId}": {
+ "head": {
+ "tags": [
+ "ApiOperationTag"
+ ],
+ "operationId": "Tag_GetEntityStateByOperation",
+ "description": "Gets the entity state version of the tag specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadApiOperationTag": {
+ "$ref": "./examples/ApiManagementHeadApiOperationTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Empty response body, ETag header entity state version.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApiOperationTag"
+ ],
+ "operationId": "Tag_GetByOperation",
+ "description": "Get tag associated with the Operation.",
+ "x-ms-examples": {
+ "ApiManagementGetApiOperationTag": {
+ "$ref": "./examples/ApiManagementGetApiOperationTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Gets the details of the tag specified by its identifier.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApiOperationTag"
+ ],
+ "operationId": "Tag_AssignToOperation",
+ "description": "Assign tag to the Operation.",
+ "x-ms-examples": {
+ "ApiManagementCreateApiOperationTag": {
+ "$ref": "./examples/ApiManagementCreateApiOperationTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Tag was assigned to the Operation.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagContract"
+ }
+ },
+ "200": {
+ "description": "Tag is already assigned to the Operation.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApiOperationTag"
+ ],
+ "operationId": "Tag_DetachFromOperation",
+ "description": "Detach the tag from the Operation.",
+ "x-ms-examples": {
+ "ApiManagementDeleteApiOperationTag": {
+ "$ref": "./examples/ApiManagementDeleteApiOperationTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OperationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Tag was successfully removed from Operation"
+ },
+ "204": {
+ "description": "Tag successfully removed by previous request or does not exist in Operation"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/products": {
+ "get": {
+ "tags": [
+ "ApiProduct"
+ ],
+ "operationId": "ApiProduct_ListByApis",
+ "description": "Lists all Products, which the API is part of.",
+ "x-ms-examples": {
+ "ApiManagementListApiProducts": {
+ "$ref": "./examples/ApiManagementListApiProducts.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation returns a collection of products which have the Api entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ProductCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ProductContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/policies": {
+ "get": {
+ "tags": [
+ "ApiPolicy"
+ ],
+ "operationId": "ApiPolicy_ListByApi",
+ "description": "Get the policy configuration at the API level.",
+ "x-ms-examples": {
+ "ApiManagementListApiPolicies": {
+ "$ref": "./examples/ApiManagementListApiPolicies.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Apis Policy Collection.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/policies/{policyId}": {
+ "head": {
+ "tags": [
+ "ApiPolicy"
+ ],
+ "operationId": "ApiPolicy_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the API policy specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadApiPolicy": {
+ "$ref": "./examples/ApiManagementHeadApiPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified API Policy entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApiPolicy"
+ ],
+ "operationId": "ApiPolicy_Get",
+ "description": "Get the policy configuration at the API level.",
+ "x-ms-examples": {
+ "ApiManagementGetApiPolicy": {
+ "$ref": "./examples/ApiManagementGetApiPolicy.json"
+ }
+ },
+ "produces": [
+ "application/json",
+ "application/vnd.ms-azure-apim.policy+xml",
+ "application/vnd.ms-azure-apim.policy.raw+xml"
+ ],
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyExportFormat"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Api Policy information.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApiPolicy"
+ ],
+ "operationId": "ApiPolicy_CreateOrUpdate",
+ "description": "Creates or updates policy configuration for the API.",
+ "x-ms-examples": {
+ "ApiManagementCreateApiPolicy": {
+ "$ref": "./examples/ApiManagementCreateApiPolicy.json"
+ },
+ "ApiManagementCreateApiPolicyNonXmlEncoded": {
+ "$ref": "./examples/ApiManagementCreateApiPolicyNonXmlEncoded.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "description": "The policy contents to apply."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Api policy configuration was successfully created.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Api policy configuration of the tenant was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApiPolicy"
+ ],
+ "operationId": "ApiPolicy_Delete",
+ "description": "Deletes the policy configuration at the Api.",
+ "x-ms-examples": {
+ "ApiManagementDeleteApiPolicy": {
+ "$ref": "./examples/ApiManagementDeleteApiPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the policy configuration at the API level."
+ },
+ "204": {
+ "description": "Successfully deleted the policy configuration at the API level."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/schemas": {
+ "get": {
+ "tags": [
+ "ApiSchema"
+ ],
+ "operationId": "ApiSchema_ListByApi",
+ "description": "Get the schema configuration at the API level.",
+ "x-ms-examples": {
+ "ApiManagementListApiSchemas": {
+ "$ref": "./examples/ApiManagementListApiSchemas.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| contentType | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Apis Schema Collection.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SchemaCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/schemas/{schemaId}": {
+ "head": {
+ "tags": [
+ "ApiSchema"
+ ],
+ "operationId": "ApiSchema_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the schema specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadApiSchema": {
+ "$ref": "./examples/ApiManagementHeadApiSchema.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SchemaIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified schema entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApiSchema"
+ ],
+ "operationId": "ApiSchema_Get",
+ "description": "Get the schema configuration at the API level.",
+ "x-ms-examples": {
+ "ApiManagementGetApiSchema": {
+ "$ref": "./examples/ApiManagementGetApiSchema.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SchemaIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Api Schema information.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SchemaContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApiSchema"
+ ],
+ "operationId": "ApiSchema_CreateOrUpdate",
+ "description": "Creates or updates schema configuration for the API.",
+ "x-ms-examples": {
+ "ApiManagementCreateApiSchema": {
+ "$ref": "./examples/ApiManagementCreateApiSchema.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SchemaIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SchemaContract"
+ },
+ "description": "The schema contents to apply."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Request to create or update Api schema was accepted."
+ },
+ "201": {
+ "description": "Api schema configuration was successfully created.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SchemaContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Api schema configuration of the tenant was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SchemaContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApiSchema"
+ ],
+ "operationId": "ApiSchema_Delete",
+ "description": "Deletes the schema configuration at the Api.",
+ "x-ms-examples": {
+ "ApiManagementDeleteApiSchema": {
+ "$ref": "./examples/ApiManagementDeleteApiSchema.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SchemaIdParameter"
+ },
+ {
+ "name": "force",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "If true removes all references to the schema before deleting it."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the schema configuration at the API level."
+ },
+ "204": {
+ "description": "Successfully deleted the schema configuration at the API level."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/diagnostics": {
+ "get": {
+ "tags": [
+ "ApiDiagnostic"
+ ],
+ "operationId": "ApiDiagnostic_ListByService",
+ "description": "Lists all diagnostics of an API.",
+ "x-ms-examples": {
+ "ApiManagementListApiDiagnostics": {
+ "$ref": "./examples/ApiManagementListApiDiagnostics.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Paged Result response of diagnostics for an API.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DiagnosticCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/DiagnosticContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/diagnostics/{diagnosticId}": {
+ "head": {
+ "tags": [
+ "ApiDiagnostic"
+ ],
+ "operationId": "ApiDiagnostic_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the Diagnostic for an API specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadApiDiagnostic": {
+ "$ref": "./examples/ApiManagementHeadApiDiagnostic.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/DiagnosticIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Operation completed successfully.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApiDiagnostic"
+ ],
+ "operationId": "ApiDiagnostic_Get",
+ "description": "Gets the details of the Diagnostic for an API specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetApiDiagnostic": {
+ "$ref": "./examples/ApiManagementGetApiDiagnostic.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/DiagnosticIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Diagnostic entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DiagnosticContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApiDiagnostic"
+ ],
+ "operationId": "ApiDiagnostic_CreateOrUpdate",
+ "description": "Creates a new Diagnostic for an API or updates an existing one.",
+ "x-ms-examples": {
+ "ApiManagementCreateApiDiagnostic": {
+ "$ref": "./examples/ApiManagementCreateApiDiagnostic.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/DiagnosticIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DiagnosticContract"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Diagnostic was successfully created.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DiagnosticContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Diagnostic was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DiagnosticContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ApiDiagnostic"
+ ],
+ "operationId": "ApiDiagnostic_Update",
+ "description": "Updates the details of the Diagnostic for an API specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementUpdateApiDiagnostic": {
+ "$ref": "./examples/ApiManagementUpdateApiDiagnostic.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/DiagnosticIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DiagnosticContract"
+ },
+ "description": "Diagnostic Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Diagnostic was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DiagnosticContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApiDiagnostic"
+ ],
+ "operationId": "ApiDiagnostic_Delete",
+ "description": "Deletes the specified Diagnostic from an API.",
+ "x-ms-examples": {
+ "ApiManagementDeleteApiDiagnostic": {
+ "$ref": "./examples/ApiManagementDeleteApiDiagnostic.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/DiagnosticIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Diagnostic successfully removed"
+ },
+ "204": {
+ "description": "Diagnostic successfully removed by previous request or does not exist"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/issues": {
+ "get": {
+ "tags": [
+ "ApiIssue"
+ ],
+ "operationId": "ApiIssue_ListByService",
+ "description": "Lists all issues associated with the specified API.",
+ "x-ms-examples": {
+ "ApiManagementListApiIssues": {
+ "$ref": "./examples/ApiManagementListApiIssues.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || userId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || state | filter | eq | |"
+ },
+ {
+ "name": "expandCommentsAttachments",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Expand the comment attachments. "
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Paged Result response of issues for the API.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/IssueContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/issues/{issueId}": {
+ "head": {
+ "tags": [
+ "ApiIssue"
+ ],
+ "operationId": "ApiIssue_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the Issue for an API specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadApiIssue": {
+ "$ref": "./examples/ApiManagementHeadApiIssue.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Operation completed successfully.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApiIssue"
+ ],
+ "operationId": "ApiIssue_Get",
+ "description": "Gets the details of the Issue for an API specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetApiIssue": {
+ "$ref": "./examples/ApiManagementGetApiIssue.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "name": "expandCommentsAttachments",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Expand the comment attachments. "
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Issue entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApiIssue"
+ ],
+ "operationId": "ApiIssue_CreateOrUpdate",
+ "description": "Creates a new Issue for an API or updates an existing one.",
+ "x-ms-examples": {
+ "ApiManagementCreateApiIssue": {
+ "$ref": "./examples/ApiManagementCreateApiIssue.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueContract"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "New api issue successfully added",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Api issue successfully updated",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ApiIssue"
+ ],
+ "operationId": "ApiIssue_Update",
+ "description": "Updates an existing issue for an API.",
+ "x-ms-examples": {
+ "ApiManagementUpdateApiIssue": {
+ "$ref": "./examples/ApiManagementUpdateApiIssue.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueUpdateContract"
+ },
+ "description": "Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Api issue updated successfully.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApiIssue"
+ ],
+ "operationId": "ApiIssue_Delete",
+ "description": "Deletes the specified Issue from an API.",
+ "x-ms-examples": {
+ "ApiManagementDeleteApiIssue": {
+ "$ref": "./examples/ApiManagementDeleteApiIssue.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Issue successfully removed"
+ },
+ "204": {
+ "description": "Issue successfully removed by previous request or does not exist"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/issues/{issueId}/comments": {
+ "get": {
+ "tags": [
+ "ApiIssueComment"
+ ],
+ "operationId": "ApiIssueComment_ListByService",
+ "description": "Lists all comments for the Issue associated with the specified API.",
+ "x-ms-examples": {
+ "ApiManagementListApiIssueComments": {
+ "$ref": "./examples/ApiManagementListApiIssueComments.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || userId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Paged Result response of issue comments for the API.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueCommentCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/IssueCommentContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/issues/{issueId}/comments/{commentId}": {
+ "head": {
+ "tags": [
+ "ApiIssueComment"
+ ],
+ "operationId": "ApiIssueComment_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the issue Comment for an API specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadApiIssueComment": {
+ "$ref": "./examples/ApiManagementHeadApiIssueComment.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/CommentIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Operation completed successfully.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApiIssueComment"
+ ],
+ "operationId": "ApiIssueComment_Get",
+ "description": "Gets the details of the issue Comment for an API specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetApiIssueComment": {
+ "$ref": "./examples/ApiManagementGetApiIssueComment.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/CommentIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified issue Comment entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueCommentContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApiIssueComment"
+ ],
+ "operationId": "ApiIssueComment_CreateOrUpdate",
+ "description": "Creates a new Comment for the Issue in an API or updates an existing one.",
+ "x-ms-examples": {
+ "ApiManagementCreateApiIssueComment": {
+ "$ref": "./examples/ApiManagementCreateApiIssueComment.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/CommentIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueCommentContract"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "New api issue comment successfully added",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueCommentContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Api issue comment successfully updated",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueCommentContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApiIssueComment"
+ ],
+ "operationId": "ApiIssueComment_Delete",
+ "description": "Deletes the specified comment from an Issue.",
+ "x-ms-examples": {
+ "ApiManagementDeleteApiIssueComment": {
+ "$ref": "./examples/ApiManagementDeleteApiIssueComment.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/CommentIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Comment successfully removed"
+ },
+ "204": {
+ "description": "Comment successfully removed by previous request or does not exist"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/issues/{issueId}/attachments": {
+ "get": {
+ "tags": [
+ "ApiIssueAttachment"
+ ],
+ "operationId": "ApiIssueAttachment_ListByService",
+ "description": "Lists all attachments for the Issue associated with the specified API.",
+ "x-ms-examples": {
+ "ApiManagementListApiIssueAttachments": {
+ "$ref": "./examples/ApiManagementListApiIssueAttachments.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || userId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Paged Result response of issue attachments for the API.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueAttachmentCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/IssueAttachmentContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/issues/{issueId}/attachments/{attachmentId}": {
+ "head": {
+ "tags": [
+ "ApiIssueAttachment"
+ ],
+ "operationId": "ApiIssueAttachment_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the issue Attachment for an API specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadApiIssueAttachment": {
+ "$ref": "./examples/ApiManagementHeadApiIssueAttachment.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AttachmentIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Operation completed successfully.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApiIssueAttachment"
+ ],
+ "operationId": "ApiIssueAttachment_Get",
+ "description": "Gets the details of the issue Attachment for an API specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetApiIssueAttachment": {
+ "$ref": "./examples/ApiManagementGetApiIssueAttachment.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AttachmentIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified issue Attachment entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueAttachmentContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApiIssueAttachment"
+ ],
+ "operationId": "ApiIssueAttachment_CreateOrUpdate",
+ "description": "Creates a new Attachment for the Issue in an API or updates an existing one.",
+ "x-ms-examples": {
+ "ApiManagementCreateApiIssueAttachment": {
+ "$ref": "./examples/ApiManagementCreateApiIssueAttachment.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AttachmentIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueAttachmentContract"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "New api issue attachment successfully added",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueAttachmentContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Api issue attachment successfully updated",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueAttachmentContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApiIssueAttachment"
+ ],
+ "operationId": "ApiIssueAttachment_Delete",
+ "description": "Deletes the specified comment from an Issue.",
+ "x-ms-examples": {
+ "ApiManagementDeleteApiIssueAttachment": {
+ "$ref": "./examples/ApiManagementDeleteApiIssueAttachment.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AttachmentIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Attachment successfully removed"
+ },
+ "204": {
+ "description": "Attachment successfully removed by previous request or does not exist"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/tagDescriptions": {
+ "get": {
+ "tags": [
+ "ApiTagDescription"
+ ],
+ "operationId": "ApiTagDescription_ListByService",
+ "description": "Lists all Tags descriptions in scope of API. Model similar to swagger - tagDescription is defined on API level but tag may be assigned to the Operations",
+ "x-ms-examples": {
+ "ApiManagementListApiTagDescriptions": {
+ "$ref": "./examples/ApiManagementListApiTagDescriptions.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation returns a collection of tagDescriptions associated with the Api entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagDescriptionCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/TagDescriptionContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/tagDescriptions/{tagDescriptionId}": {
+ "head": {
+ "tags": [
+ "ApiTagDescription"
+ ],
+ "operationId": "ApiTagDescription_GetEntityTag",
+ "description": "Gets the entity state version of the tag specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadApiTagDescription": {
+ "$ref": "./examples/ApiManagementHeadApiTagDescription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagDescriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Empty response body, ETag header entity state version.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApiTagDescription"
+ ],
+ "operationId": "ApiTagDescription_Get",
+ "description": "Get Tag description in scope of API",
+ "x-ms-examples": {
+ "ApiManagementGetApiTagDescription": {
+ "$ref": "./examples/ApiManagementGetApiTagDescription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagDescriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Gets the description of the tag specified by its identifier in scope if the Api.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagDescriptionContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApiTagDescription"
+ ],
+ "operationId": "ApiTagDescription_CreateOrUpdate",
+ "description": "Create/Update tag description in scope of the Api.",
+ "x-ms-examples": {
+ "ApiManagementCreateApiTagDescription": {
+ "$ref": "./examples/ApiManagementCreateApiTagDescription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagDescriptionIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagDescriptionCreateParameters"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Tag Description was created for the Api.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagDescriptionContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Tag Description was updated for the Api.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagDescriptionContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApiTagDescription"
+ ],
+ "operationId": "ApiTagDescription_Delete",
+ "description": "Delete tag description for the Api.",
+ "x-ms-examples": {
+ "ApiManagementDeleteApiTagDescription": {
+ "$ref": "./examples/ApiManagementDeleteApiTagDescription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagDescriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Tag description successfully removed"
+ },
+ "204": {
+ "description": "Tag description successfully removed by previous request or does not exist"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/tags": {
+ "get": {
+ "tags": [
+ "ApiTag"
+ ],
+ "operationId": "Tag_ListByApi",
+ "description": "Lists all Tags associated with the API.",
+ "x-ms-examples": {
+ "ApiManagementListApiTags": {
+ "$ref": "./examples/ApiManagementListApiTags.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation returns a collection of tags associated with the Api entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/TagContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/tags/{tagId}": {
+ "head": {
+ "tags": [
+ "ApiTag"
+ ],
+ "operationId": "Tag_GetEntityStateByApi",
+ "description": "Gets the entity state version of the tag specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadApiTag": {
+ "$ref": "./examples/ApiManagementHeadApiTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Empty response body, ETag header entity state version.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApiTag"
+ ],
+ "operationId": "Tag_GetByApi",
+ "description": "Get tag associated with the API.",
+ "x-ms-examples": {
+ "ApiManagementGetApiTag": {
+ "$ref": "./examples/ApiManagementGetApiTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Gets the details of the tag specified by its identifier.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApiTag"
+ ],
+ "operationId": "Tag_AssignToApi",
+ "description": "Assign tag to the Api.",
+ "x-ms-examples": {
+ "ApiManagementCreateApiTag": {
+ "$ref": "./examples/ApiManagementCreateApiTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Tag was assigned to the Api.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Tag is already assigned to the Api.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApiTag"
+ ],
+ "operationId": "Tag_DetachFromApi",
+ "description": "Detach the tag from the Api.",
+ "x-ms-examples": {
+ "ApiManagementDeleteApiTag": {
+ "$ref": "./examples/ApiManagementDeleteApiTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "API/Tag association successfully removed"
+ },
+ "204": {
+ "description": "API/Tag association successfully removed by previous request or does not exist"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operationsByTags": {
+ "get": {
+ "tags": [
+ "ApiOperationsByTag"
+ ],
+ "operationId": "Operation_ListByTags",
+ "description": "Lists a collection of operations associated with tags.",
+ "x-ms-examples": {
+ "ApiManagementListApiOperationsByTags": {
+ "$ref": "./examples/ApiManagementListApiOperationsByTags.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || apiName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || method | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || urlTemplate | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "name": "includeNotTaggedOperations",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Include not tagged Operations."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of TagResource entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagResourceCollection"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/TagResourceContract"
+ }
+ }
+ },
+ "x-ms-paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}?export=true": {
+ "get": {
+ "tags": [
+ "Apis"
+ ],
+ "operationId": "ApiExport_Get",
+ "description": "Gets the details of the API specified by its identifier in the format specified to the Storage Blob with SAS Key valid for 5 minutes.",
+ "x-ms-examples": {
+ "ApiManagementGetApiExportInOpenApi2dot0": {
+ "$ref": "./examples/ApiManagementGetApiExportInOpenApi2dot0.json"
+ },
+ "ApiManagementGetApiExportInOpenApi3dot0": {
+ "$ref": "./examples/ApiManagementGetApiExportInOpenApi3dot0.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "name": "format",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "swagger-link",
+ "wadl-link",
+ "wsdl-link",
+ "openapi-link",
+ "openapi+json-link"
+ ],
+ "x-ms-enum": {
+ "name": "ExportFormat",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "swagger-link",
+ "description": "Export the Api Definition in OpenApi Specification 2.0 format to the Storage Blob.",
+ "name": "Swagger"
+ },
+ {
+ "value": "wsdl-link",
+ "description": "Export the Api Definition in WSDL Schema to Storage Blob. This is only supported for APIs of Type `soap`",
+ "name": "Wsdl"
+ },
+ {
+ "value": "wadl-link",
+ "description": "Export the Api Definition in WADL Schema to Storage Blob.",
+ "name": "Wadl"
+ },
+ {
+ "value": "openapi-link",
+ "description": "Export the Api Definition in OpenApi Specification 3.0 to Storage Blob.",
+ "name": "Openapi"
+ },
+ {
+ "value": "openapi+json-link",
+ "description": "Export the Api Definition in OpenApi Specification 3.0 as JSON document to Storage Blob.",
+ "name": "OpenapiJson"
+ }
+ ]
+ },
+ "description": "Format in which to export the Api Details to the Storage Blob with Sas Key valid for 5 minutes."
+ },
+ {
+ "name": "export",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "true"
+ ],
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "ExportApi"
+ },
+ "description": "Query parameter required to export the API details."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response contains a stream with a full set of API metadata and includes API entity with an embedded array of operation entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiExportResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimapisByTags.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimapisByTags.json
new file mode 100644
index 000000000000..218a30574d1b
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimapisByTags.json
@@ -0,0 +1,106 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing retrieve a collection of Apis associated with a tag in Azure API Management deployment.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/apisByTags": {
+ "get": {
+ "tags": [
+ "ApisByTag"
+ ],
+ "operationId": "Api_ListByTags",
+ "description": "Lists a collection of apis associated with tags.",
+ "x-ms-examples": {
+ "ApiManagementListApisByTags": {
+ "$ref": "./examples/ApiManagementListApisByTags.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || apiRevision | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || path | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || serviceUrl | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || isCurrent | filter | eq | |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "name": "includeNotTaggedApis",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Include not tagged APIs."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of TagResource entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagResourceCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/TagResourceContract"
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimapiversionsets.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimapiversionsets.json
new file mode 100644
index 000000000000..83bd0afd7008
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimapiversionsets.json
@@ -0,0 +1,376 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on the ApiVersionSet entity associated with your Azure API Management deployment. Using this entity you create and manage API Version Sets that are used to group APIs for consistent versioning.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/apiVersionSets": {
+ "get": {
+ "tags": [
+ "ApiVersionSet"
+ ],
+ "operationId": "ApiVersionSet_ListByService",
+ "description": "Lists a collection of API Version Sets in the specified service instance.",
+ "x-ms-examples": {
+ "ApiManagementListApiVersionSets": {
+ "$ref": "./examples/ApiManagementListApiVersionSets.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Api Version Set entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiVersionSetCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ApiVersionSetContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apiVersionSets/{versionSetId}": {
+ "head": {
+ "tags": [
+ "ApiVersionSet"
+ ],
+ "operationId": "ApiVersionSet_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the Api Version Set specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadApiVersionSet": {
+ "$ref": "./examples/ApiManagementHeadApiVersionSet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionSetIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified Api Version Set entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApiVersionSet"
+ ],
+ "operationId": "ApiVersionSet_Get",
+ "description": "Gets the details of the Api Version Set specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetApiVersionSet": {
+ "$ref": "./examples/ApiManagementGetApiVersionSet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionSetIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Gets the specified Api Version Set entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiVersionSetContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ApiVersionSet"
+ ],
+ "operationId": "ApiVersionSet_CreateOrUpdate",
+ "description": "Creates or Updates a Api Version Set.",
+ "x-ms-examples": {
+ "ApiManagementCreateApiVersionSet": {
+ "$ref": "./examples/ApiManagementCreateApiVersionSet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionSetIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiVersionSetContract"
+ },
+ "description": "Create or update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Api Version Set was successfully created.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiVersionSetContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Api Version Set was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiVersionSetContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ApiVersionSet"
+ ],
+ "operationId": "ApiVersionSet_Update",
+ "description": "Updates the details of the Api VersionSet specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementUpdateApiVersionSet": {
+ "$ref": "./examples/ApiManagementUpdateApiVersionSet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionSetIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiVersionSetUpdateParameters"
+ },
+ "description": "Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Api Version Set was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiVersionSetContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApiVersionSets"
+ ],
+ "operationId": "ApiVersionSet_Delete",
+ "description": "Deletes specific Api Version Set.",
+ "x-ms-examples": {
+ "ApiManagementDeleteApiVersionSet": {
+ "$ref": "./examples/ApiManagementDeleteApiVersionSet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionSetIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The ApiVersion Set details were successfully deleted."
+ },
+ "204": {
+ "description": "The ApiVersion Set details were successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimauthorizationservers.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimauthorizationservers.json
new file mode 100644
index 000000000000..32e766c4c6c2
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimauthorizationservers.json
@@ -0,0 +1,427 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for managing OAuth2 servers configuration in your Azure API Management deployment. OAuth 2.0 can be used to authorize developer accounts for Azure API Management. For more information refer to [How to OAuth2](https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-oauth2).",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/authorizationServers": {
+ "get": {
+ "tags": [
+ "AuthorizationServer"
+ ],
+ "operationId": "AuthorizationServer_ListByService",
+ "description": "Lists a collection of authorization servers defined within a service instance.",
+ "x-ms-examples": {
+ "ApiManagementListAuthorizationServers": {
+ "$ref": "./examples/ApiManagementListAuthorizationServers.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A Collection of the Authorization Server entities for the specified API Management service instance.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AuthorizationServerCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/AuthorizationServerContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/authorizationServers/{authsid}": {
+ "head": {
+ "tags": [
+ "AuthorizationServer"
+ ],
+ "operationId": "AuthorizationServer_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the authorizationServer specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadAuthorizationServer": {
+ "$ref": "./examples/ApiManagementHeadAuthorizationServer.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AuthenticationServerIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified authorization server entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "AuthorizationServer"
+ ],
+ "operationId": "AuthorizationServer_Get",
+ "description": "Gets the details of the authorization server specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetAuthorizationServer": {
+ "$ref": "./examples/ApiManagementGetAuthorizationServer.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AuthenticationServerIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Gets the details of the specified authorization server. No secrets included.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AuthorizationServerContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "AuthorizationServer"
+ ],
+ "operationId": "AuthorizationServer_CreateOrUpdate",
+ "description": "Creates new authorization server or updates an existing authorization server.",
+ "x-ms-examples": {
+ "ApiManagementCreateAuthorizationServer": {
+ "$ref": "./examples/ApiManagementCreateAuthorizationServer.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AuthenticationServerIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AuthorizationServerContract"
+ },
+ "description": "Create or update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Authorization server was successfully registered.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AuthorizationServerContract"
+ }
+ },
+ "200": {
+ "description": "Authorization server is already registered.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AuthorizationServerContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "AuthorizationServer"
+ ],
+ "operationId": "AuthorizationServer_Update",
+ "description": "Updates the details of the authorization server specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementUpdateAuthorizationServer": {
+ "$ref": "./examples/ApiManagementUpdateAuthorizationServer.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AuthenticationServerIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AuthorizationServerUpdateContract"
+ },
+ "description": "OAuth2 Server settings Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The authorization server settings were successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AuthorizationServerContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "AuthorizationServer"
+ ],
+ "operationId": "AuthorizationServer_Delete",
+ "description": "Deletes specific authorization server instance.",
+ "x-ms-examples": {
+ "ApiManagementDeleteAuthorizationServer": {
+ "$ref": "./examples/ApiManagementDeleteAuthorizationServer.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AuthenticationServerIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The authorization server settings were successfully deleted."
+ },
+ "204": {
+ "description": "The authorization server settings were successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/authorizationServers/{authsid}/listSecrets": {
+ "post": {
+ "tags": [
+ "AuthorizationServer"
+ ],
+ "operationId": "AuthorizationServer_ListSecrets",
+ "description": "Gets the client secret details of the authorization server.",
+ "x-ms-examples": {
+ "ApiManagementAuthorizationServerListSecrets": {
+ "$ref": "./examples/ApiManagementAuthorizationServerListSecrets.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AuthenticationServerIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Gets the secrets of the specified authorization server.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AuthorizationServerSecretsContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimbackends.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimbackends.json
new file mode 100644
index 000000000000..dbcf80837dc1
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimbackends.json
@@ -0,0 +1,430 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on Backend entity in Azure API Management deployment. The Backend entity in API Management represents a backend service that is configured to skip certification chain validation when using a self-signed certificate to test mutual certificate authentication.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/backends": {
+ "get": {
+ "tags": [
+ "Backend"
+ ],
+ "operationId": "Backend_ListByService",
+ "description": "Lists a collection of backends in the specified service instance.",
+ "x-ms-examples": {
+ "ApiManagementListBackends": {
+ "$ref": "./examples/ApiManagementListBackends.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || title | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || url | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Backend entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/BackendCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/BackendContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/backends/{backendId}": {
+ "head": {
+ "tags": [
+ "Backend"
+ ],
+ "operationId": "Backend_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the backend specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadBackend": {
+ "$ref": "./examples/ApiManagementHeadBackend.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/BackendIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified backend entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Backend"
+ ],
+ "operationId": "Backend_Get",
+ "description": "Gets the details of the backend specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetBackend": {
+ "$ref": "./examples/ApiManagementGetBackend.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/BackendIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Backend entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/BackendContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Backend"
+ ],
+ "operationId": "Backend_CreateOrUpdate",
+ "description": "Creates or Updates a backend.",
+ "x-ms-examples": {
+ "ApiManagementCreateBackendServiceFabric": {
+ "$ref": "./examples/ApiManagementCreateBackendServiceFabric.json"
+ },
+ "ApiManagementCreateBackendProxyBackend": {
+ "$ref": "./examples/ApiManagementCreateBackendProxyBackend.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/BackendIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/BackendContract"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Backend was successfully created.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/BackendContract"
+ }
+ },
+ "200": {
+ "description": "The existing backend was successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/BackendContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Backend"
+ ],
+ "operationId": "Backend_Update",
+ "description": "Updates an existing backend.",
+ "x-ms-examples": {
+ "ApiManagementUpdateBackend": {
+ "$ref": "./examples/ApiManagementUpdateBackend.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/BackendIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/BackendUpdateParameters"
+ },
+ "description": "Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The existing backend was successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/BackendContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Backend"
+ ],
+ "operationId": "Backend_Delete",
+ "description": "Deletes the specified backend.",
+ "x-ms-examples": {
+ "ApiManagementDeleteBackend": {
+ "$ref": "./examples/ApiManagementDeleteBackend.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/BackendIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The backend was successfully deleted."
+ },
+ "204": {
+ "description": "The backend was successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/backends/{backendId}/reconnect": {
+ "post": {
+ "tags": [
+ "BackendReconnect"
+ ],
+ "operationId": "Backend_Reconnect",
+ "description": "Notifies the APIM proxy to create a new connection to the backend after the specified timeout. If no timeout was specified, timeout of 2 minutes is used.",
+ "x-ms-examples": {
+ "ApiManagementBackendReconnect": {
+ "$ref": "./examples/ApiManagementBackendReconnect.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/BackendIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/BackendReconnectContract"
+ },
+ "description": "Reconnect request parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Reconnect request accepted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimcaches.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimcaches.json
new file mode 100644
index 000000000000..af87ef928dd6
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimcaches.json
@@ -0,0 +1,372 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on Cache entity in your Azure API Management deployment. Azure API Management also allows for caching responses in an external Azure Cache for Redis. For more information refer to [External Redis Cache in ApiManagement](https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-cache-external).",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/caches": {
+ "get": {
+ "tags": [
+ "Cache"
+ ],
+ "operationId": "Cache_ListByService",
+ "description": "Lists a collection of all external Caches in the specified service instance.",
+ "x-ms-examples": {
+ "ApiManagementListCaches": {
+ "$ref": "./examples/ApiManagementListCaches.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns a collection of Cache entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/CacheCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/caches/{cacheId}": {
+ "head": {
+ "tags": [
+ "Cache"
+ ],
+ "operationId": "Cache_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the Cache specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadCache": {
+ "$ref": "./examples/ApiManagementHeadCache.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/CacheIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified Cache entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Cache"
+ ],
+ "operationId": "Cache_Get",
+ "description": "Gets the details of the Cache specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetCache": {
+ "$ref": "./examples/ApiManagementGetCache.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/CacheIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Cache entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/CacheContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Cache"
+ ],
+ "operationId": "Cache_CreateOrUpdate",
+ "description": "Creates or updates an External Cache to be used in Api Management instance.",
+ "externalDocs": {
+ "description": "Use an external cache in Azure API Management",
+ "url": "https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-cache-external"
+ },
+ "x-ms-examples": {
+ "ApiManagementCreateCache": {
+ "$ref": "./examples/ApiManagementCreateCache.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/CacheIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/CacheContract"
+ },
+ "description": "Create or Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The new Cache was successfully added.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/CacheContract"
+ }
+ },
+ "200": {
+ "description": "The Cache details were successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/CacheContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Cache"
+ ],
+ "operationId": "Cache_Update",
+ "description": "Updates the details of the cache specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementUpdateCache": {
+ "$ref": "./examples/ApiManagementUpdateCache.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/CacheIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/CacheUpdateParameters"
+ },
+ "description": "Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Cache details were successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/CacheContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Cache"
+ ],
+ "operationId": "Cache_Delete",
+ "description": "Deletes specific Cache.",
+ "x-ms-examples": {
+ "ApiManagementDeleteCache": {
+ "$ref": "./examples/ApiManagementDeleteCache.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/CacheIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Cache was successfully deleted."
+ },
+ "204": {
+ "description": "The Cache was successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimcertificates.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimcertificates.json
new file mode 100644
index 000000000000..44928451f319
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimcertificates.json
@@ -0,0 +1,325 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on Certificate entity in your Azure API Management deployment. Certificates can be used to setup mutual authentication with your Backend in API Management. For more information refer to [How to secure backend using Mutual Auth Certificate](https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-mutual-certificates).",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/certificates": {
+ "get": {
+ "tags": [
+ "Certificate"
+ ],
+ "operationId": "Certificate_ListByService",
+ "description": "Lists a collection of all certificates in the specified service instance.",
+ "x-ms-examples": {
+ "ApiManagementListCertificates": {
+ "$ref": "./examples/ApiManagementListCertificates.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || subject | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || thumbprint | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || expirationDate | filter | ge, le, eq, ne, gt, lt | |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns a collection of Certificate entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/CertificateCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/CertificateContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/certificates/{certificateId}": {
+ "head": {
+ "tags": [
+ "Certificate"
+ ],
+ "operationId": "Certificate_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the certificate specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadCertificate": {
+ "$ref": "./examples/ApiManagementHeadCertificate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/CertificateIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified certificate entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Certificate"
+ ],
+ "operationId": "Certificate_Get",
+ "description": "Gets the details of the certificate specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetCertificate": {
+ "$ref": "./examples/ApiManagementGetCertificate.json"
+ },
+ "ApiManagementGetCertificateWithKeyVault": {
+ "$ref": "./examples/ApiManagementGetCertificateWithKeyVault.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/CertificateIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Certificate entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/CertificateContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Certificate"
+ ],
+ "operationId": "Certificate_CreateOrUpdate",
+ "description": "Creates or updates the certificate being used for authentication with the backend.",
+ "externalDocs": {
+ "description": "How to secure back-end services using client certificate authentication in Azure API Management",
+ "url": "https://azure.microsoft.com/en-us/documentation/articles/api-management-howto-mutual-certificates/"
+ },
+ "x-ms-examples": {
+ "ApiManagementCreateCertificate": {
+ "$ref": "./examples/ApiManagementCreateCertificate.json"
+ },
+ "ApiManagementCreateCertificateWithKeyVault": {
+ "$ref": "./examples/ApiManagementCreateCertificateWithKeyVault.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/CertificateIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/CertificateCreateOrUpdateParameters"
+ },
+ "description": "Create or Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The new certificate was successfully added.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/CertificateContract"
+ }
+ },
+ "200": {
+ "description": "The certificate details were successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/CertificateContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Certificate"
+ ],
+ "operationId": "Certificate_Delete",
+ "description": "Deletes specific certificate.",
+ "x-ms-examples": {
+ "ApiManagementDeleteCertificate": {
+ "$ref": "./examples/ApiManagementDeleteCertificate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/CertificateIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The certificate was successfully deleted."
+ },
+ "204": {
+ "description": "The certificate was successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
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
new file mode 100644
index 000000000000..838f24cdf8b4
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimcontenttypes.json
@@ -0,0 +1,513 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations in Azure API Management deployment.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/contentTypes": {
+ "get": {
+ "tags": [
+ "ContentType"
+ ],
+ "operationId": "ContentType_ListByService",
+ "description": "Returns list of content types",
+ "x-ms-examples": {
+ "ApiManagementListContentTypes": {
+ "$ref": "./examples/ApiManagementListContentTypes.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of content type entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ContentTypeCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/contentTypes/{contentTypeId}": {
+ "get": {
+ "tags": [
+ "ContentType"
+ ],
+ "operationId": "ContentType_Get",
+ "description": "Gets API Management content type details.",
+ "x-ms-examples": {
+ "ApiManagementGetContentType": {
+ "$ref": "./examples/ApiManagementGetContentType.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ContentTypeIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Get the details of the content type.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ContentTypeContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ContentType"
+ ],
+ "operationId": "ContentType_CreateOrUpdate",
+ "description": "Creates or updates an Content Type.",
+ "x-ms-examples": {
+ "ApiManagementCreateContentType": {
+ "$ref": "./examples/ApiManagementCreateContentType.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ContentTypeIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Content type was successfully created.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ContentTypeContract"
+ }
+ },
+ "200": {
+ "description": "The existing content type was successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ContentTypeContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ContentType"
+ ],
+ "operationId": "ContentType_Delete",
+ "description": "Removes specified content type.",
+ "x-ms-examples": {
+ "ApiManagementDeleteContentType": {
+ "$ref": "./examples/ApiManagementDeleteContentType.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ContentTypeIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The content type was successfully deleted."
+ },
+ "204": {
+ "description": "The content type was successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/contentTypes/{contentTypeId}/contentItems": {
+ "get": {
+ "tags": [
+ "ContentTypeContentItem"
+ ],
+ "operationId": "ContentItem_ListByService",
+ "description": "Returns list of content items",
+ "x-ms-examples": {
+ "ApiManagementListContentTypeContentItems": {
+ "$ref": "./examples/ApiManagementListContentTypeContentItems.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ContentTypeIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Content Type entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ContentItemCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/contentTypes/{contentTypeId}/contentItems/{contentItemId}": {
+ "head": {
+ "tags": [
+ "ContentTypeContentItem"
+ ],
+ "operationId": "ContentItem_GetEntityTag",
+ "description": "Returns content item metadata",
+ "x-ms-examples": {
+ "ApiManagementHeadContentTypeContentItem": {
+ "$ref": "./examples/ApiManagementHeadContentTypeContentItem.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ContentTypeIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ContentItemIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified content item entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ContentTypeContentItem"
+ ],
+ "operationId": "ContentItem_Get",
+ "description": "Returns content item details",
+ "x-ms-examples": {
+ "ApiManagementGetContentTypeContentItem": {
+ "$ref": "./examples/ApiManagementGetContentTypeContentItem.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ContentTypeIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ContentItemIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Get the details of the content item.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ContentItemContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ContentTypeContentItem"
+ ],
+ "operationId": "ContentItem_CreateOrUpdate",
+ "description": "Creates new content item",
+ "x-ms-examples": {
+ "ApiManagementCreateContentTypeContentItem": {
+ "$ref": "./examples/ApiManagementCreateContentTypeContentItem.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ContentTypeIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ContentItemIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Content item was successfully created.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ContentItemContract"
+ }
+ },
+ "200": {
+ "description": "The existing content item was successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ContentItemContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ContentTypeContentItem"
+ ],
+ "operationId": "ContentItem_Delete",
+ "description": "Removes specified content item.",
+ "x-ms-examples": {
+ "ApiManagementDeleteContentTypeContentItem": {
+ "$ref": "./examples/ApiManagementDeleteContentTypeContentItem.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ContentTypeIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ContentItemIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The content item was successfully deleted."
+ },
+ "204": {
+ "description": "The content item was successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimdeletedservices.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimdeletedservices.json
new file mode 100644
index 000000000000..4a9f7b9f3a3f
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimdeletedservices.json
@@ -0,0 +1,175 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations in Azure API Management deployment.",
+ "version": "2020-06-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}/providers/Microsoft.ApiManagement/deletedservices": {
+ "get": {
+ "tags": [
+ "DeletedService"
+ ],
+ "operationId": "DeletedServices_ListBySubscription",
+ "description": "Lists all soft-deleted services available for undelete for the given subscription.",
+ "x-ms-examples": {
+ "ApiManagementListRegions": {
+ "$ref": "./examples/ApiManagementDeletedServicesListBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of all soft-deleted services available for undelete for the given subscription.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DeletedServicesCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/locations/{location}/deletedservices/{serviceName}": {
+ "get": {
+ "tags": [
+ "DeletedService"
+ ],
+ "operationId": "DeletedServices_GetByName",
+ "description": "Get soft-deleted Api Management Service by name.",
+ "x-ms-examples": {
+ "ApiManagementListRegions": {
+ "$ref": "./examples/ApiManagementGetDeletedServiceByName.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location of the deleted API Management service."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Soft-deleted Api Management Service.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DeletedServiceContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DeletedService"
+ ],
+ "operationId": "DeletedServices_Purge",
+ "description": "Purges Api Management Service (deletes it with no option to undelete).",
+ "x-ms-examples": {
+ "ApiManagementListRegions": {
+ "$ref": "./examples/ApiManagementDeletedServicesPurge.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location of the deleted API Management service."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Api Service was successfully purged."
+ },
+ "202": {
+ "description": "Api Service purge started.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DeletedServiceContract"
+ }
+ },
+ "204": {
+ "description": "The service does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
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
new file mode 100644
index 000000000000..48547abde3df
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimdeployment.json
@@ -0,0 +1,1593 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs to manage Azure API Management deployment.",
+ "version": "2020-06-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": {
+ "/providers/Microsoft.ApiManagement/operations": {
+ "get": {
+ "tags": [
+ "ApiManagementOperations"
+ ],
+ "description": "Lists all of the available REST API operations of the Microsoft.ApiManagement provider.",
+ "operationId": "ApiManagementOperations_List",
+ "x-ms-examples": {
+ "ApiManagementListOperations": {
+ "$ref": "./examples/ApiManagementListOperations.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of operations.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/skus": {
+ "get": {
+ "tags": [
+ "ApiManagementServiceSkus"
+ ],
+ "summary": "Gets available SKUs for API Management service",
+ "description": "Gets all available SKU for a given API Management service",
+ "operationId": "ApiManagementServiceSkus_ListAvailableServiceSkus",
+ "x-ms-examples": {
+ "ApiManagementListSKUs-Dedicated": {
+ "$ref": "./examples/ApiManagementListSKUs-Dedicated.json"
+ },
+ "ApiManagementListSKUs-Consumption": {
+ "$ref": "./examples/ApiManagementListSKUs-Consumption.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of SKUs.",
+ "schema": {
+ "$ref": "#/definitions/ResourceSkuResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/restore": {
+ "post": {
+ "tags": [
+ "ApiManagementService"
+ ],
+ "operationId": "ApiManagementService_Restore",
+ "description": "Restores a backup of an API Management service created using the ApiManagementService_Backup operation on the current service. This is a long running operation and could take several minutes to complete.",
+ "x-ms-examples": {
+ "ApiManagementRestoreService": {
+ "$ref": "./examples/ApiManagementRestoreService.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceBackupRestoreParameters"
+ },
+ "description": "Parameters supplied to the Restore API Management service from backup operation."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully restored the backup onto the API Management service.",
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceResource"
+ }
+ },
+ "202": {
+ "description": "Accepted: Location header contains the URL where the status of the long running operation can be checked."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/backup": {
+ "post": {
+ "tags": [
+ "ApiManagementService"
+ ],
+ "operationId": "ApiManagementService_Backup",
+ "description": "Creates a backup of the API Management service to the given Azure Storage Account. This is long running operation and could take several minutes to complete.",
+ "x-ms-examples": {
+ "ApiManagementCreateBackup": {
+ "$ref": "./examples/ApiManagementCreateBackup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceBackupRestoreParameters"
+ },
+ "description": "Parameters supplied to the ApiManagementService_Backup operation."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully backed up the API Management service to the storage account.",
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceResource"
+ }
+ },
+ "202": {
+ "description": "Accepted: Location header contains the URL where the status of the long running operation can be checked."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}": {
+ "put": {
+ "tags": [
+ "ApiManagementService"
+ ],
+ "operationId": "ApiManagementService_CreateOrUpdate",
+ "description": "Creates or updates an API Management service. This is long running operation and could take several minutes to complete.",
+ "x-ms-examples": {
+ "ApiManagementCreateService": {
+ "$ref": "./examples/ApiManagementCreateService.json"
+ },
+ "ApiManagementCreateMultiRegionServiceWithCustomHostname": {
+ "$ref": "./examples/ApiManagementCreateMultiRegionServiceWithCustomHostname.json"
+ },
+ "ApiManagementCreateServiceHavingMsi": {
+ "$ref": "./examples/ApiManagementCreateServiceHavingMsi.json"
+ },
+ "ApiManagementCreateServiceWithSystemCertificates": {
+ "$ref": "./examples/ApiManagementCreateServiceWithSystemCertificates.json"
+ },
+ "ApiManagementCreateServiceWithUserAssignedIdentity": {
+ "$ref": "./examples/ApiManagementCreateServiceWithUserAssignedIdentity.json"
+ },
+ "ApiManagementCreateServiceInZones": {
+ "$ref": "./examples/ApiManagementCreateServiceInZones.json"
+ },
+ "ApiManagementUndelete": {
+ "$ref": "./examples/ApiManagementUndelete.json"
+ },
+ "ApiManagementCreateServiceWithCustomHostnameKeyVault": {
+ "$ref": "./examples/ApiManagementCreateServiceWithCustomHostnameKeyVault.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceResource"
+ },
+ "description": "Parameters supplied to the CreateOrUpdate API Management service operation."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The service was successfully set up.",
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceResource"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceResource"
+ }
+ },
+ "202": {
+ "description": "Accepted the configuration change when updating the service."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "ApiManagementService"
+ ],
+ "operationId": "ApiManagementService_Update",
+ "description": "Updates an existing API Management service.",
+ "x-ms-examples": {
+ "ApiManagementUpdateServiceDisableTls10": {
+ "$ref": "./examples/ApiManagementUpdateServiceDisableTls10.json"
+ },
+ "ApiManagementUpdateServicePublisherDetails": {
+ "$ref": "./examples/ApiManagementUpdateServicePublisherDetails.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceUpdateParameters"
+ },
+ "description": "Parameters supplied to the CreateOrUpdate API Management service operation."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The service was successfully updated.",
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceResource"
+ }
+ },
+ "202": {
+ "description": "The service update request was Accepted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "ApiManagementService"
+ ],
+ "operationId": "ApiManagementService_Get",
+ "description": "Gets an API Management service resource description.",
+ "x-ms-examples": {
+ "ApiManagementServiceGetService": {
+ "$ref": "./examples/ApiManagementServiceGetService.json"
+ },
+ "ApiManagementServiceGetServiceHavingMsi": {
+ "$ref": "./examples/ApiManagementServiceGetServiceHavingMsi.json"
+ },
+ "ApiManagementServiceGetMultiRegionInternalVnet": {
+ "$ref": "./examples/ApiManagementServiceGetMultiRegionInternalVnet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully got the API Management Service Resource.",
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApiManagementService"
+ ],
+ "operationId": "ApiManagementService_Delete",
+ "description": "Deletes an existing API Management service.",
+ "x-ms-examples": {
+ "ApiManagementServiceDeleteService": {
+ "$ref": "./examples/ApiManagementServiceDeleteService.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Service was successfully deleted."
+ },
+ "202": {
+ "description": "The service delete request was Accepted.",
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceResource"
+ }
+ },
+ "204": {
+ "description": "The service does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service": {
+ "get": {
+ "tags": [
+ "ApiManagementService"
+ ],
+ "operationId": "ApiManagementService_ListByResourceGroup",
+ "description": "List all API Management services within a resource group.",
+ "x-ms-examples": {
+ "ApiManagementListServiceBySubscriptionAndResourceGroup": {
+ "$ref": "./examples/ApiManagementListServiceBySubscriptionAndResourceGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The API Management service list.",
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/service": {
+ "get": {
+ "tags": [
+ "ApiManagementService"
+ ],
+ "operationId": "ApiManagementService_List",
+ "description": "Lists all API Management services within an Azure subscription.",
+ "x-ms-examples": {
+ "ApiManagementListServiceBySubscription": {
+ "$ref": "./examples/ApiManagementListServiceBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The API Management service list.",
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/getssotoken": {
+ "post": {
+ "tags": [
+ "ApiManagementService"
+ ],
+ "operationId": "ApiManagementService_GetSsoToken",
+ "description": "Gets the Single-Sign-On token for the API Management Service which is valid for 5 Minutes.",
+ "x-ms-examples": {
+ "ApiManagementServiceGetSsoToken": {
+ "$ref": "./examples/ApiManagementServiceGetSsoToken.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK if successful with the SSO Redirect URI.",
+ "schema": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApiManagementServiceGetSsoTokenResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "ApiManagementService"
+ ],
+ "operationId": "ApiManagementService_CheckNameAvailability",
+ "description": "Checks availability and correctness of a name for an API Management service.",
+ "x-ms-examples": {
+ "ApiManagementServiceCheckNameAvailability": {
+ "$ref": "./examples/ApiManagementServiceCheckNameAvailability.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceCheckNameAvailabilityParameters"
+ },
+ "description": "Parameters supplied to the CheckNameAvailability operation."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The result of check name availability.",
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceNameAvailabilityResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/applynetworkconfigurationupdates": {
+ "post": {
+ "tags": [
+ "ApiManagementService"
+ ],
+ "operationId": "ApiManagementService_ApplyNetworkConfigurationUpdates",
+ "description": "Updates the Microsoft.ApiManagement resource running in the Virtual network to pick the updated network settings.",
+ "x-ms-examples": {
+ "ApiManagementApplyNetworkConfigurationUpdates": {
+ "$ref": "./examples/ApiManagementApplyNetworkConfigurationUpdates.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceApplyNetworkConfigurationParameters"
+ },
+ "description": "Parameters supplied to the Apply Network Configuration operation. If the parameters are empty, all the regions in which the Api Management service is deployed will be updated sequentially without incurring downtime in the region."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted: Location header contains the URL where the status of the long running operation can be checked."
+ },
+ "200": {
+ "description": "Network configuration updates were successfully applied on the Api Management service.",
+ "schema": {
+ "$ref": "#/definitions/ApiManagementServiceResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ResourceSkuResults": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceSkuResult"
+ },
+ "description": "The list of skus available for the service."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of API Management service Skus."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The API Management service SKUs operation response."
+ },
+ "ResourceSkuResult": {
+ "properties": {
+ "resourceType": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The type of resource the SKU applies to."
+ },
+ "sku": {
+ "$ref": "#/definitions/ResourceSku",
+ "readOnly": true,
+ "description": "Specifies API Management SKU."
+ },
+ "capacity": {
+ "$ref": "#/definitions/ResourceSkuCapacity",
+ "readOnly": true,
+ "description": "Specifies the number of API Management units."
+ }
+ },
+ "description": "Describes an available API Management service SKU."
+ },
+ "ResourceSkuCapacity": {
+ "properties": {
+ "minimum": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The minimum capacity."
+ },
+ "maximum": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The maximum capacity that can be set."
+ },
+ "default": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The default capacity."
+ },
+ "scaleType": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The scale type applicable to the sku.",
+ "enum": [
+ "automatic",
+ "manual",
+ "none"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceSkuCapacityScaleType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "automatic",
+ "description": "Supported scale type automatic."
+ },
+ {
+ "value": "manual",
+ "description": "Supported scale type manual."
+ },
+ {
+ "value": "none",
+ "description": "Scaling not supported."
+ }
+ ]
+ }
+ }
+ },
+ "description": "Describes scaling information of a SKU."
+ },
+ "ResourceSku": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the Sku.",
+ "externalDocs": {
+ "url": "https://azure.microsoft.com/en-us/pricing/details/api-management/"
+ },
+ "enum": [
+ "Developer",
+ "Standard",
+ "Premium",
+ "Basic",
+ "Consumption",
+ "Isolated"
+ ],
+ "x-ms-enum": {
+ "name": "SkuType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Developer",
+ "description": "Developer SKU of Api Management."
+ },
+ {
+ "value": "Standard",
+ "description": "Standard SKU of Api Management."
+ },
+ {
+ "value": "Premium",
+ "description": "Premium SKU of Api Management."
+ },
+ {
+ "value": "Basic",
+ "description": "Basic SKU of Api Management."
+ },
+ {
+ "value": "Consumption",
+ "description": "Consumption SKU of Api Management."
+ },
+ {
+ "value": "Isolated",
+ "description": "Isolated SKU of Api Management."
+ }
+ ]
+ }
+ }
+ },
+ "description": "Describes an available API Management SKU."
+ },
+ "CertificateInformation": {
+ "properties": {
+ "expiry": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard."
+ },
+ "thumbprint": {
+ "type": "string",
+ "description": "Thumbprint of the certificate."
+ },
+ "subject": {
+ "type": "string",
+ "description": "Subject of the certificate."
+ }
+ },
+ "required": [
+ "expiry",
+ "thumbprint",
+ "subject"
+ ],
+ "description": "SSL certificate information."
+ },
+ "CertificateConfiguration": {
+ "properties": {
+ "encodedCertificate": {
+ "type": "string",
+ "description": "Base64 Encoded certificate."
+ },
+ "certificatePassword": {
+ "type": "string",
+ "description": "Certificate Password."
+ },
+ "storeName": {
+ "description": "The System.Security.Cryptography.x509certificates.StoreName certificate store location. Only Root and CertificateAuthority are valid locations.",
+ "type": "string",
+ "enum": [
+ "CertificateAuthority",
+ "Root"
+ ]
+ },
+ "certificate": {
+ "$ref": "#/definitions/CertificateInformation",
+ "description": "Certificate information."
+ }
+ },
+ "required": [
+ "storeName"
+ ],
+ "description": "Certificate configuration which consist of non-trusted intermediates and root certificates."
+ },
+ "HostnameConfiguration": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Hostname type.",
+ "enum": [
+ "Proxy",
+ "Portal",
+ "Management",
+ "Scm",
+ "DeveloperPortal"
+ ],
+ "x-ms-enum": {
+ "name": "HostnameType",
+ "modelAsString": true
+ }
+ },
+ "hostName": {
+ "type": "string",
+ "description": "Hostname to configure on the Api Management service."
+ },
+ "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*"
+ },
+ "identityClientId": {
+ "type": "string",
+ "description": "System or User Assigned Managed identity clientId as generated by Azure AD, which has GET access to the keyVault containing the SSL certificate."
+ },
+ "encodedCertificate": {
+ "type": "string",
+ "description": "Base64 Encoded certificate."
+ },
+ "certificatePassword": {
+ "type": "string",
+ "description": "Certificate Password."
+ },
+ "defaultSslBinding": {
+ "type": "boolean",
+ "description": "Specify true to setup the certificate associated with this Hostname as the Default SSL Certificate. If a client does not send the SNI header, then this will be the certificate that will be challenged. The property is useful if a service has multiple custom hostname enabled and it needs to decide on the default ssl certificate. The setting only applied to Proxy Hostname Type.",
+ "default": false
+ },
+ "negotiateClientCertificate": {
+ "type": "boolean",
+ "description": "Specify true to always negotiate client certificate on the hostname. Default Value is false.",
+ "default": false
+ },
+ "certificate": {
+ "$ref": "#/definitions/CertificateInformation",
+ "description": "Certificate information."
+ }
+ },
+ "required": [
+ "type",
+ "hostName"
+ ],
+ "description": "Custom hostname configuration."
+ },
+ "VirtualNetworkConfiguration": {
+ "properties": {
+ "vnetid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The virtual network ID. This is typically a GUID. Expect a null GUID by default."
+ },
+ "subnetname": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the subnet."
+ },
+ "subnetResourceId": {
+ "type": "string",
+ "pattern": "^/subscriptions/[^/]*/resourceGroups/[^/]*/providers/Microsoft.(ClassicNetwork|Network)/virtualNetworks/[^/]*/subnets/[^/]*$",
+ "description": "The full resource ID of a subnet in a virtual network to deploy the API Management service in."
+ }
+ },
+ "description": "Configuration of a virtual network to which API Management service is deployed."
+ },
+ "AdditionalLocation": {
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "The location name of the additional region among Azure Data center regions."
+ },
+ "sku": {
+ "$ref": "#/definitions/ApiManagementServiceSkuProperties",
+ "description": "SKU properties of the API Management service."
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of availability zones denoting where the resource needs to come from."
+ },
+ "publicIPAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true,
+ "description": "Public Static Load Balanced IP addresses of the API Management service in the additional location. Available only for Basic, Standard, Premium and Isolated SKU."
+ },
+ "privateIPAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true,
+ "description": "Private Static Load Balanced IP addresses of the API Management service which is deployed in an Internal Virtual Network in a particular additional location. Available only for Basic, Standard, Premium and Isolated SKU."
+ },
+ "virtualNetworkConfiguration": {
+ "$ref": "#/definitions/VirtualNetworkConfiguration",
+ "description": "Virtual network configuration for the location."
+ },
+ "gatewayRegionalUrl": {
+ "type": "string",
+ "description": "Gateway URL of the API Management service in the Region.",
+ "readOnly": true
+ },
+ "disableGateway": {
+ "type": "boolean",
+ "description": "Property only valid for an Api Management service deployed in multiple locations. This can be used to disable the gateway in this additional location.",
+ "default": false
+ }
+ },
+ "required": [
+ "location",
+ "sku"
+ ],
+ "description": "Description of an additional API Management resource location."
+ },
+ "ApiManagementServiceBackupRestoreParameters": {
+ "properties": {
+ "storageAccount": {
+ "type": "string",
+ "description": "Azure Cloud Storage account (used to place/retrieve the backup) name."
+ },
+ "accessKey": {
+ "type": "string",
+ "description": "Azure Cloud Storage account (used to place/retrieve the backup) access key."
+ },
+ "containerName": {
+ "type": "string",
+ "description": "Azure Cloud Storage blob container name used to place/retrieve the backup."
+ },
+ "backupName": {
+ "type": "string",
+ "description": "The name of the backup file to create."
+ }
+ },
+ "required": [
+ "storageAccount",
+ "accessKey",
+ "containerName",
+ "backupName"
+ ],
+ "description": "Parameters supplied to the Backup/Restore of an API Management service operation."
+ },
+ "ApiManagementServiceProperties": {
+ "properties": {
+ "publisherEmail": {
+ "type": "string",
+ "description": "Publisher email.",
+ "maxLength": 100
+ },
+ "publisherName": {
+ "type": "string",
+ "description": "Publisher name.",
+ "maxLength": 100
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApiManagementServiceBaseProperties"
+ }
+ ],
+ "required": [
+ "publisherEmail",
+ "publisherName"
+ ],
+ "description": "Properties of an API Management service resource description."
+ },
+ "ApiManagementServiceUpdateProperties": {
+ "properties": {
+ "publisherEmail": {
+ "type": "string",
+ "description": "Publisher email.",
+ "maxLength": 100
+ },
+ "publisherName": {
+ "type": "string",
+ "description": "Publisher name.",
+ "maxLength": 100
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApiManagementServiceBaseProperties"
+ }
+ ],
+ "description": "Properties of an API Management service resource description."
+ },
+ "ApiManagementServiceBaseProperties": {
+ "properties": {
+ "notificationSenderEmail": {
+ "type": "string",
+ "description": "Email address from which the notification will be sent.",
+ "maxLength": 100
+ },
+ "provisioningState": {
+ "type": "string",
+ "description": "The current provisioning state of the API Management service which can be one of the following: Created/Activating/Succeeded/Updating/Failed/Stopped/Terminating/TerminationFailed/Deleted.",
+ "readOnly": true
+ },
+ "targetProvisioningState": {
+ "type": "string",
+ "description": "The provisioning state of the API Management service, which is targeted by the long running operation started on the service.",
+ "readOnly": true
+ },
+ "createdAtUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Creation UTC date of the API Management service.The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.",
+ "readOnly": true
+ },
+ "gatewayUrl": {
+ "type": "string",
+ "description": "Gateway URL of the API Management service.",
+ "readOnly": true
+ },
+ "gatewayRegionalUrl": {
+ "type": "string",
+ "description": "Gateway URL of the API Management service in the Default Region.",
+ "readOnly": true
+ },
+ "portalUrl": {
+ "type": "string",
+ "description": "Publisher portal endpoint Url of the API Management service.",
+ "readOnly": true
+ },
+ "managementApiUrl": {
+ "type": "string",
+ "description": "Management API endpoint URL of the API Management service.",
+ "readOnly": true
+ },
+ "scmUrl": {
+ "type": "string",
+ "description": "SCM endpoint URL of the API Management service.",
+ "readOnly": true
+ },
+ "developerPortalUrl": {
+ "type": "string",
+ "description": "DEveloper Portal endpoint URL of the API Management service.",
+ "readOnly": true
+ },
+ "hostnameConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HostnameConfiguration"
+ },
+ "description": "Custom hostname configuration of the API Management service."
+ },
+ "publicIPAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true,
+ "description": "Public Static Load Balanced IP addresses of the API Management service in Primary region. Available only for Basic, Standard, Premium and Isolated SKU."
+ },
+ "privateIPAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true,
+ "description": "Private Static Load Balanced IP addresses of the API Management service in Primary region which is deployed in an Internal Virtual Network. Available only for Basic, Standard, Premium and Isolated SKU."
+ },
+ "virtualNetworkConfiguration": {
+ "$ref": "#/definitions/VirtualNetworkConfiguration",
+ "description": "Virtual network configuration of the API Management service."
+ },
+ "additionalLocations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AdditionalLocation"
+ },
+ "description": "Additional datacenter locations of the API Management service."
+ },
+ "customProperties": {
+ "type": "object",
+ "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"
+ },
+ "certificates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateConfiguration"
+ },
+ "description": "List of Certificates that need to be installed in the API Management service. Max supported certificates that can be installed is 10."
+ },
+ "enableClientCertificate": {
+ "type": "boolean",
+ "description": "Property only meant to be used for Consumption SKU Service. This enforces a client certificate to be presented on each request to the gateway. This also enables the ability to authenticate the certificate in the policy on the gateway.",
+ "default": false
+ },
+ "disableGateway": {
+ "type": "boolean",
+ "description": "Property only valid for an Api Management service deployed in multiple locations. This can be used to disable the gateway in master region.",
+ "default": false
+ },
+ "virtualNetworkType": {
+ "type": "string",
+ "description": "The type of VPN in which API Management service needs to be configured in. None (Default Value) means the API Management service is not part of any Virtual Network, External means the API Management deployment is set up inside a Virtual Network having an Internet Facing Endpoint, and Internal means that API Management deployment is setup inside a Virtual Network having an Intranet Facing Endpoint only.",
+ "default": "None",
+ "enum": [
+ "None",
+ "External",
+ "Internal"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualNetworkType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "None",
+ "description": "The service is not part of any Virtual Network."
+ },
+ {
+ "value": "External",
+ "description": "The service is part of Virtual Network and it is accessible from Internet."
+ },
+ {
+ "value": "Internal",
+ "description": "The service is part of Virtual Network and it is only accessible from within the virtual network."
+ }
+ ]
+ }
+ },
+ "apiVersionConstraint": {
+ "$ref": "#/definitions/ApiVersionConstraint",
+ "description": "Control Plane Apis version constraint for the API Management service."
+ },
+ "restore": {
+ "type": "boolean",
+ "description": "Undelete Api Management Service if it was previously soft-deleted. If this flag is specified and set to True all other properties will be ignored.",
+ "default": false
+ }
+ },
+ "description": "Base Properties of an API Management service resource description."
+ },
+ "ApiVersionConstraint": {
+ "properties": {
+ "minApiVersion": {
+ "type": "string",
+ "description": "Limit control plane API calls to API Management service with version equal to or newer than this value.",
+ "example": "2019-01-01"
+ }
+ },
+ "description": "Control Plane Apis version constraint for the API Management service."
+ },
+ "ApiManagementServiceSkuProperties": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the Sku.",
+ "externalDocs": {
+ "url": "https://azure.microsoft.com/en-us/pricing/details/api-management/"
+ },
+ "enum": [
+ "Developer",
+ "Standard",
+ "Premium",
+ "Basic",
+ "Consumption",
+ "Isolated"
+ ],
+ "x-ms-enum": {
+ "name": "SkuType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Developer",
+ "description": "Developer SKU of Api Management."
+ },
+ {
+ "value": "Standard",
+ "description": "Standard SKU of Api Management."
+ },
+ {
+ "value": "Premium",
+ "description": "Premium SKU of Api Management."
+ },
+ {
+ "value": "Basic",
+ "description": "Basic SKU of Api Management."
+ },
+ {
+ "value": "Consumption",
+ "description": "Consumption SKU of Api Management."
+ },
+ {
+ "value": "Isolated",
+ "description": "Isolated SKU of Api Management."
+ }
+ ]
+ }
+ },
+ "capacity": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0."
+ }
+ },
+ "required": [
+ "name",
+ "capacity"
+ ],
+ "description": "API Management service resource SKU properties."
+ },
+ "ApiManagementServiceResource": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApiManagementServiceProperties",
+ "description": "Properties of the API Management service."
+ },
+ "sku": {
+ "$ref": "#/definitions/ApiManagementServiceSkuProperties",
+ "description": "SKU properties of the API Management service."
+ },
+ "identity": {
+ "$ref": "#/definitions/ApiManagementServiceIdentity",
+ "description": "Managed service identity of the Api Management service."
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location.",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "etag": {
+ "type": "string",
+ "description": "ETag of the resource.",
+ "readOnly": true
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of availability zones denoting where the resource needs to come from."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApimResource"
+ }
+ ],
+ "required": [
+ "location",
+ "sku",
+ "properties"
+ ],
+ "description": "A single API Management service resource in List or Get response."
+ },
+ "ApimResource": {
+ "description": "The Resource definition.",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource ID."
+ },
+ "name": {
+ "type": "string",
+ "description": "Resource name.",
+ "readOnly": true
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type for API Management resource is set to Microsoft.ApiManagement."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "ApiManagementServiceUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApiManagementServiceUpdateProperties",
+ "description": "Properties of the API Management service."
+ },
+ "sku": {
+ "$ref": "#/definitions/ApiManagementServiceSkuProperties",
+ "description": "SKU properties of the API Management service."
+ },
+ "identity": {
+ "$ref": "#/definitions/ApiManagementServiceIdentity",
+ "description": "Managed service identity of the Api Management service."
+ },
+ "etag": {
+ "type": "string",
+ "description": "ETag of the resource.",
+ "readOnly": true
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApimResource"
+ }
+ ],
+ "description": "Parameter supplied to Update Api Management Service."
+ },
+ "ApiManagementServiceListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApiManagementServiceResource"
+ },
+ "description": "Result of the List API Management services operation."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Link to the next set of results. Not empty if Value contains incomplete list of API Management services."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The response of the List API Management services operation."
+ },
+ "ApiManagementServiceGetSsoTokenResult": {
+ "properties": {
+ "redirectUri": {
+ "type": "string",
+ "description": "Redirect URL to the Publisher Portal containing the SSO token."
+ }
+ },
+ "description": "The response of the GetSsoToken operation."
+ },
+ "ApiManagementServiceCheckNameAvailabilityParameters": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name to check for availability."
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "description": "Parameters supplied to the CheckNameAvailability operation."
+ },
+ "ApiManagementServiceNameAvailabilityResult": {
+ "properties": {
+ "nameAvailable": {
+ "type": "boolean",
+ "description": "True if the name is available and can be used to create a new API Management service; otherwise false.",
+ "readOnly": true
+ },
+ "message": {
+ "type": "string",
+ "description": "If reason == invalid, provide the user with the reason why the given name is invalid, and provide the resource naming requirements so that the user can select a valid name. If reason == AlreadyExists, explain that is already in use, and direct them to select a different name.",
+ "readOnly": true
+ },
+ "reason": {
+ "type": "string",
+ "description": "Invalid indicates the name provided does not match the resource provider’s naming requirements (incorrect length, unsupported characters, etc.) AlreadyExists indicates that the name is already in use and is therefore unavailable.",
+ "enum": [
+ "Valid",
+ "Invalid",
+ "AlreadyExists"
+ ],
+ "x-ms-enum": {
+ "name": "NameAvailabilityReason",
+ "modelAsString": false
+ }
+ }
+ },
+ "description": "Response of the CheckNameAvailability operation."
+ },
+ "ApiManagementServiceApplyNetworkConfigurationParameters": {
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Location of the Api Management service to update for a multi-region service. For a service deployed in a single region, this parameter is not required."
+ }
+ },
+ "description": "Parameter supplied to the Apply Network configuration operation."
+ },
+ "ApiManagementServiceIdentity": {
+ "description": "Identity properties of the Api Management service resource.",
+ "properties": {
+ "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 service.",
+ "enum": [
+ "SystemAssigned",
+ "UserAssigned",
+ "SystemAssigned, UserAssigned",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "ApimIdentityType",
+ "modelAsString": true
+ }
+ },
+ "principalId": {
+ "type": "string",
+ "format": "uuid",
+ "readOnly": true,
+ "description": "The principal id of the identity."
+ },
+ "tenantId": {
+ "type": "string",
+ "format": "uuid",
+ "readOnly": true,
+ "description": "The client tenant id of the identity."
+ },
+ "userAssignedIdentities": {
+ "description": "The list of user identities associated with the resource. The user identity \r\ndictionary key references will be ARM resource ids in the form: \r\n'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/\r\n providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/UserIdentityProperties"
+ }
+ }
+ },
+ "required": [
+ "type"
+ ]
+ },
+ "UserIdentityProperties": {
+ "type": "object",
+ "properties": {
+ "principalId": {
+ "description": "The principal id of user assigned identity.",
+ "type": "string"
+ },
+ "clientId": {
+ "description": "The client id of user assigned identity.",
+ "type": "string"
+ }
+ }
+ },
+ "Operation": {
+ "description": "REST API operation",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}",
+ "type": "string"
+ },
+ "display": {
+ "description": "The object that describes the operation.",
+ "properties": {
+ "provider": {
+ "description": "Friendly name of the resource provider",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Operation type: read, write, delete, listKeys/action, etc.",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource type on which the operation is performed.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Friendly name of the operation",
+ "type": "string"
+ }
+ }
+ },
+ "origin": {
+ "type": "string",
+ "description": "The operation origin."
+ },
+ "properties": {
+ "type": "object",
+ "x-ms-client-flatten": true,
+ "description": "The operation properties."
+ }
+ }
+ },
+ "OperationListResult": {
+ "description": "Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of operations supported by the resource provider."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ }
+ },
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimdiagnostics.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimdiagnostics.json
new file mode 100644
index 000000000000..a6bfde56707c
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimdiagnostics.json
@@ -0,0 +1,376 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on Diagnostic entity associated with your Azure API Management deployment. Diagnostics are used to log requests/responses in the APIM proxy.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/diagnostics": {
+ "get": {
+ "tags": [
+ "Diagnostic"
+ ],
+ "operationId": "Diagnostic_ListByService",
+ "description": "Lists all diagnostics of the API Management service instance.",
+ "x-ms-examples": {
+ "ApiManagementListDiagnostics": {
+ "$ref": "./examples/ApiManagementListDiagnostics.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Paged Result response of diagnostics.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DiagnosticCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/DiagnosticContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/diagnostics/{diagnosticId}": {
+ "head": {
+ "tags": [
+ "Diagnostic"
+ ],
+ "operationId": "Diagnostic_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the Diagnostic specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadDiagnostic": {
+ "$ref": "./examples/ApiManagementHeadDiagnostic.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/DiagnosticIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Gets the entity tag of the diagnostic",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Diagnostic"
+ ],
+ "operationId": "Diagnostic_Get",
+ "description": "Gets the details of the Diagnostic specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetDiagnostic": {
+ "$ref": "./examples/ApiManagementGetDiagnostic.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/DiagnosticIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Diagnostic entity.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DiagnosticContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Diagnostic"
+ ],
+ "operationId": "Diagnostic_CreateOrUpdate",
+ "description": "Creates a new Diagnostic or updates an existing one.",
+ "x-ms-examples": {
+ "ApiManagementCreateDiagnostic": {
+ "$ref": "./examples/ApiManagementCreateDiagnostic.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/DiagnosticIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DiagnosticContract"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Diagnostic was successfully created.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DiagnosticContract"
+ }
+ },
+ "200": {
+ "description": "Diagnostic successfully updated",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DiagnosticContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Diagnostic"
+ ],
+ "operationId": "Diagnostic_Update",
+ "description": "Updates the details of the Diagnostic specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementUpdateDiagnostic": {
+ "$ref": "./examples/ApiManagementUpdateDiagnostic.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/DiagnosticIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DiagnosticContract"
+ },
+ "description": "Diagnostic Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Diagnostic successfully updated",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DiagnosticContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Diagnostic"
+ ],
+ "operationId": "Diagnostic_Delete",
+ "description": "Deletes the specified Diagnostic.",
+ "x-ms-examples": {
+ "ApiManagementDeleteDiagnostic": {
+ "$ref": "./examples/ApiManagementDeleteDiagnostic.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/DiagnosticIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Diagnostic was successfully deleted."
+ },
+ "204": {
+ "description": "The Diagnostic was successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimemailtemplates.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimemailtemplates.json
new file mode 100644
index 000000000000..c643ef434679
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimemailtemplates.json
@@ -0,0 +1,363 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on Email Templates associated with your Azure API Management deployment.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/templates": {
+ "get": {
+ "tags": [
+ "EmailTemplate"
+ ],
+ "operationId": "EmailTemplate_ListByService",
+ "description": "Gets all email templates",
+ "x-ms-examples": {
+ "ApiManagementListTemplates": {
+ "$ref": "./examples/ApiManagementListTemplates.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A Collection of the Email Template for the specified API Management service instance.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/EmailTemplateCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/templates/{templateName}": {
+ "head": {
+ "tags": [
+ "EmailTemplates"
+ ],
+ "operationId": "EmailTemplate_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the email template specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadEmailTemplate": {
+ "$ref": "./examples/ApiManagementHeadEmailTemplate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TemplateNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified email template entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "EmailTemplates"
+ ],
+ "operationId": "EmailTemplate_Get",
+ "description": "Gets the details of the email template specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetTemplate": {
+ "$ref": "./examples/ApiManagementGetTemplate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TemplateNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Email template.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/EmailTemplateContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "EmailTemplates"
+ ],
+ "operationId": "EmailTemplate_CreateOrUpdate",
+ "description": "Updates an Email Template.",
+ "x-ms-examples": {
+ "ApiManagementCreateTemplate": {
+ "$ref": "./examples/ApiManagementCreateTemplate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TemplateNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/EmailTemplateUpdateParameters"
+ },
+ "description": "Email Template update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Email Template was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/EmailTemplateContract"
+ }
+ },
+ "200": {
+ "description": "Email Template was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/EmailTemplateContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "EmailTemplates"
+ ],
+ "operationId": "EmailTemplate_Update",
+ "description": "Updates API Management email template",
+ "x-ms-examples": {
+ "ApiManagementUpdateTemplate": {
+ "$ref": "./examples/ApiManagementUpdateTemplate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TemplateNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/EmailTemplateUpdateParameters"
+ },
+ "description": "Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "email template successfully updated",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/EmailTemplateContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "EmailTemplates"
+ ],
+ "operationId": "EmailTemplate_Delete",
+ "description": "Reset the Email Template to default template provided by the API Management service instance.",
+ "x-ms-examples": {
+ "ApiManagementDeleteTemplate": {
+ "$ref": "./examples/ApiManagementDeleteTemplate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TemplateNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Email Template was successfully reset to default."
+ },
+ "204": {
+ "description": "Email Template was successfully reset to default."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimgateways.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimgateways.json
new file mode 100644
index 000000000000..fcb04a5de2ef
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimgateways.json
@@ -0,0 +1,1036 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on Gateway entity in Azure API Management deployment.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/gateways": {
+ "get": {
+ "tags": [
+ "Gateway"
+ ],
+ "operationId": "Gateway_ListByService",
+ "description": "Lists a collection of gateways registered with service instance.",
+ "x-ms-examples": {
+ "ApiManagementListGateways": {
+ "$ref": "./examples/ApiManagementListGateways.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || region | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Gateway entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/GatewayContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/gateways/{gatewayId}": {
+ "head": {
+ "tags": [
+ "Gateway"
+ ],
+ "operationId": "Gateway_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the Gateway specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadGateway": {
+ "$ref": "./examples/ApiManagementHeadGateway.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified Gateway entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Gateway"
+ ],
+ "operationId": "Gateway_Get",
+ "description": "Gets the details of the Gateway specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetGateway": {
+ "$ref": "./examples/ApiManagementGetGateway.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Gateway entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Gateway"
+ ],
+ "operationId": "Gateway_CreateOrUpdate",
+ "description": "Creates or updates a Gateway to be used in Api Management instance.",
+ "x-ms-examples": {
+ "ApiManagementCreateGateway": {
+ "$ref": "./examples/ApiManagementCreateGateway.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayContract"
+ }
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The new Gateway was successfully added.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayContract"
+ }
+ },
+ "200": {
+ "description": "The Gateway details were successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Gateway"
+ ],
+ "operationId": "Gateway_Update",
+ "description": "Updates the details of the gateway specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementUpdateGateway": {
+ "$ref": "./examples/ApiManagementUpdateGateway.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayContract"
+ }
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Gateway details were successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Gateway"
+ ],
+ "operationId": "Gateway_Delete",
+ "description": "Deletes specific Gateway.",
+ "x-ms-examples": {
+ "ApiManagementDeleteGateway": {
+ "$ref": "./examples/ApiManagementDeleteGateway.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Gateway was successfully deleted."
+ },
+ "204": {
+ "description": "The Gateway was successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/gateways/{gatewayId}/listKeys": {
+ "post": {
+ "tags": [
+ "GatewayListKeys"
+ ],
+ "operationId": "Gateway_ListKeys",
+ "description": "Retrieves gateway keys.",
+ "x-ms-examples": {
+ "ApiManagementGatewayListKeys": {
+ "$ref": "./examples/ApiManagementGatewayListKeys.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Gateway keys.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayKeysContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/gateways/{gatewayId}/regenerateKey": {
+ "post": {
+ "tags": [
+ "GatewayRegenerateKey"
+ ],
+ "operationId": "Gateway_RegenerateKey",
+ "description": "Regenerates specified gateway key invalidating any tokens created with it.",
+ "x-ms-examples": {
+ "ApiManagementGatewayRegenerateKey": {
+ "$ref": "./examples/ApiManagementGatewayRegenerateKey.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayKeyRegenerationRequestContract"
+ }
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Key successfully regenerated"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/gateways/{gatewayId}/generateToken": {
+ "post": {
+ "tags": [
+ "GatewayGenerateToken"
+ ],
+ "operationId": "Gateway_GenerateToken",
+ "description": "Gets the Shared Access Authorization Token for the gateway.",
+ "x-ms-examples": {
+ "ApiManagementGatewayGenerateToken": {
+ "$ref": "./examples/ApiManagementGatewayGenerateToken.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayTokenRequestContract"
+ }
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the authorization token for the gateway.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayTokenContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/gateways/{gatewayId}/hostnameConfigurations": {
+ "get": {
+ "tags": [
+ "GatewayHostnameConfiguration"
+ ],
+ "operationId": "GatewayHostnameConfiguration_ListByService",
+ "description": "Lists the collection of hostname configurations for the specified gateway.",
+ "x-ms-examples": {
+ "ApiManagementListGatewayHostnameConfigurations": {
+ "$ref": "./examples/ApiManagementListGatewayHostnameConfigurations.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || hostname | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Collection of hostname configuration entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayHostnameConfigurationCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/GatewayHostnameConfigurationContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/gateways/{gatewayId}/hostnameConfigurations/{hcId}": {
+ "head": {
+ "tags": [
+ "GatewayHostnameConfiguration"
+ ],
+ "operationId": "GatewayHostnameConfiguration_GetEntityTag",
+ "description": "Checks that hostname configuration entity specified by identifier exists for specified Gateway entity.",
+ "x-ms-examples": {
+ "ApiManagementHeadGatewayHostnameConfiguration": {
+ "$ref": "./examples/ApiManagementHeadGatewayHostnameConfiguration.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayHostnameConfigurationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified Gateway entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "GatewayHostnameConfiguration"
+ ],
+ "operationId": "GatewayHostnameConfiguration_Get",
+ "description": "Get details of a hostname configuration",
+ "x-ms-examples": {
+ "ApiManagementGetGatewayHostnameConfiguration": {
+ "$ref": "./examples/ApiManagementGetGatewayHostnameConfiguration.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayHostnameConfigurationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Gateway entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayHostnameConfigurationContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "GatewayHostnameConfiguration"
+ ],
+ "operationId": "GatewayHostnameConfiguration_CreateOrUpdate",
+ "description": "Creates of updates hostname configuration for a Gateway.",
+ "x-ms-examples": {
+ "ApiManagementCreateGatewayHostnameConfiguration": {
+ "$ref": "./examples/ApiManagementCreateGatewayHostnameConfiguration.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayHostnameConfigurationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayHostnameConfigurationContract"
+ }
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The new Gateway hostname configuration was successfully created.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayHostnameConfigurationContract"
+ }
+ },
+ "200": {
+ "description": "The Gateway hostname configuration details were successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GatewayHostnameConfigurationContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "GatewayHostnameConfiguration"
+ ],
+ "operationId": "GatewayHostnameConfiguration_Delete",
+ "description": "Deletes the specified hostname configuration from the specified Gateway.",
+ "x-ms-examples": {
+ "ApiManagementDeleteGatewayHostnameConfiguration": {
+ "$ref": "./examples/ApiManagementDeleteGatewayHostnameConfiguration.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayHostnameConfigurationIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Hostname configuration was successfully removed from Gateway."
+ },
+ "204": {
+ "description": "Hostname configuration successfully removed by previous request or does not exist in Gateway."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/gateways/{gatewayId}/apis": {
+ "get": {
+ "tags": [
+ "GatewayApi"
+ ],
+ "operationId": "GatewayApi_ListByService",
+ "description": "Lists a collection of the APIs associated with a gateway.",
+ "x-ms-examples": {
+ "ApiManagementListGatewayApis": {
+ "$ref": "./examples/ApiManagementListGatewayApis.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains a collection of Api entities in the gateway.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ApiContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/gateways/{gatewayId}/apis/{apiId}": {
+ "head": {
+ "tags": [
+ "GatewayApi"
+ ],
+ "operationId": "GatewayApi_GetEntityTag",
+ "description": "Checks that API entity specified by identifier is associated with the Gateway entity.",
+ "x-ms-examples": {
+ "ApiManagementHeadGatewayApi": {
+ "$ref": "./examples/ApiManagementHeadGatewayApi.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified Gateway entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "GatewayApi"
+ ],
+ "operationId": "GatewayApi_CreateOrUpdate",
+ "description": "Adds an API to the specified Gateway.",
+ "x-ms-examples": {
+ "ApiManagementCreateGatewayApi": {
+ "$ref": "./examples/ApiManagementCreateGatewayApi.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AssociationContract"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The API was successfully added to the Gateway.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiContract"
+ }
+ },
+ "200": {
+ "description": "The specified API is already added to the Gateway.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "GatewayApi"
+ ],
+ "operationId": "GatewayApi_Delete",
+ "description": "Deletes the specified API from the specified Gateway.",
+ "x-ms-examples": {
+ "ApiManagementDeleteGatewayApi": {
+ "$ref": "./examples/ApiManagementDeleteGatewayApi.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GatewayIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "API was successfully removed from Gateway"
+ },
+ "204": {
+ "description": "API successfully removed by previous request or does not exist in Gateway"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimgroups.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimgroups.json
new file mode 100644
index 000000000000..91cd3c56c573
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimgroups.json
@@ -0,0 +1,590 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on Group entity in your Azure API Management deployment. Groups are used to manage the visibility of products to developers. Each API Management service instance comes with the following immutable system groups whose membership is automatically managed by API Management. - **Administrators** - Azure subscription administrators are members of this group. - **Developers** - Authenticated developer portal users fall into this group. - **Guests** - Unauthenticated developer portal users are placed into this group. In addition to these system groups, administrators can create custom groups or [leverage external groups in associated Azure Active Directory tenants](https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-aad#how-to-add-an-external-azure-active-directory-group). Custom and external groups can be used alongside system groups in giving developers visibility and access to API products. For example, you could create one custom group for developers affiliated with a specific partner organization and allow them access to the APIs from a product containing relevant APIs only. A user can be a member of more than one group.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/groups": {
+ "get": {
+ "tags": [
+ "Group"
+ ],
+ "operationId": "Group_ListByService",
+ "description": "Lists a collection of groups defined within a service instance.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-create-groups"
+ },
+ "x-ms-examples": {
+ "ApiManagementListGroups": {
+ "$ref": "./examples/ApiManagementListGroups.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || externalId | filter | eq | |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Group entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GroupCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/GroupContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups/{groupId}": {
+ "head": {
+ "tags": [
+ "Group"
+ ],
+ "operationId": "Group_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the group specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadGroup": {
+ "$ref": "./examples/ApiManagementHeadGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GroupIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified group entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Group"
+ ],
+ "operationId": "Group_Get",
+ "description": "Gets the details of the group specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetGroup": {
+ "$ref": "./examples/ApiManagementGetGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GroupIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Group entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GroupContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Group"
+ ],
+ "operationId": "Group_CreateOrUpdate",
+ "description": "Creates or Updates a group.",
+ "x-ms-examples": {
+ "ApiManagementCreateGroup": {
+ "$ref": "./examples/ApiManagementCreateGroup.json"
+ },
+ "ApiManagementCreateGroupExternal": {
+ "$ref": "./examples/ApiManagementCreateGroupExternal.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GroupIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GroupCreateParameters"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Group was created successfully.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GroupContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Group already exists.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GroupContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Group"
+ ],
+ "operationId": "Group_Update",
+ "description": "Updates the details of the group specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementUpdateGroup": {
+ "$ref": "./examples/ApiManagementUpdateGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GroupIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GroupUpdateParameters"
+ },
+ "description": "Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The group details were successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GroupContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Group"
+ ],
+ "operationId": "Group_Delete",
+ "description": "Deletes specific group of the API Management service instance.",
+ "x-ms-examples": {
+ "ApiManagementDeleteGroup": {
+ "$ref": "./examples/ApiManagementDeleteGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GroupIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The group was successfully deleted."
+ },
+ "204": {
+ "description": "The group was successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups/{groupId}/users": {
+ "get": {
+ "tags": [
+ "GroupUser"
+ ],
+ "operationId": "GroupUser_List",
+ "description": "Lists a collection of user entities associated with the group.",
+ "x-ms-examples": {
+ "ApiManagementListGroupUsers": {
+ "$ref": "./examples/ApiManagementListGroupUsers.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GroupIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || firstName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || lastName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || email | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || registrationDate | filter | ge, le, eq, ne, gt, lt | || note | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of user entities associated with the group.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/UserCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/UserContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups/{groupId}/users/{userId}": {
+ "head": {
+ "tags": [
+ "GroupUser"
+ ],
+ "operationId": "GroupUser_CheckEntityExists",
+ "description": "Checks that user entity specified by identifier is associated with the group entity.",
+ "x-ms-examples": {
+ "ApiManagementHeadGroupUser": {
+ "$ref": "./examples/ApiManagementHeadGroupUser.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GroupIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Entity exists"
+ },
+ "404": {
+ "description": "Entity does not exists."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "GroupUser"
+ ],
+ "operationId": "GroupUser_Create",
+ "description": "Add existing user to existing group",
+ "x-ms-examples": {
+ "ApiManagementCreateGroupUser": {
+ "$ref": "./examples/ApiManagementCreateGroupUser.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GroupIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The user was successfully added to the group.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/UserContract"
+ }
+ },
+ "200": {
+ "description": "The specified user is already a member of the specified group.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/UserContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "GroupUser"
+ ],
+ "operationId": "GroupUser_Delete",
+ "description": "Remove existing user from existing group.",
+ "x-ms-examples": {
+ "ApiManagementDeleteGroupUser": {
+ "$ref": "./examples/ApiManagementDeleteGroupUser.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GroupIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The user was successfully removed from the group."
+ },
+ "204": {
+ "description": "The user was successfully removed from the group."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimidentityprovider.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimidentityprovider.json
new file mode 100644
index 000000000000..3f4e1575f017
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimidentityprovider.json
@@ -0,0 +1,416 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on Identity Provider entity associated with your Azure API Management deployment. Setting up an external Identity Provider for authentication can help you manage the developer portal logins using the OAuth2 flow.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/identityProviders": {
+ "get": {
+ "tags": [
+ "IdentityProvider"
+ ],
+ "operationId": "IdentityProvider_ListByService",
+ "description": "Lists a collection of Identity Provider configured in the specified service instance.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-aad#how-to-authorize-developer-accounts-using-azure-active-directory"
+ },
+ "x-ms-examples": {
+ "ApiManagementListIdentityProviders": {
+ "$ref": "./examples/ApiManagementListIdentityProviders.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Identity Providers.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IdentityProviderList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/identityProviders/{identityProviderName}": {
+ "head": {
+ "tags": [
+ "IdentityProvider"
+ ],
+ "operationId": "IdentityProvider_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the identityProvider specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadIdentityProvider": {
+ "$ref": "./examples/ApiManagementHeadIdentityProvider.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IdentityProviderNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified identity provider entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "IdentityProvider"
+ ],
+ "operationId": "IdentityProvider_Get",
+ "description": "Gets the configuration details of the identity Provider configured in specified service instance.",
+ "x-ms-examples": {
+ "ApiManagementGetIdentityProvider": {
+ "$ref": "./examples/ApiManagementGetIdentityProvider.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IdentityProviderNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified IdentityProvider entity configuration details.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IdentityProviderContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "IdentityProvider"
+ ],
+ "operationId": "IdentityProvider_CreateOrUpdate",
+ "description": "Creates or Updates the IdentityProvider configuration.",
+ "x-ms-examples": {
+ "ApiManagementCreateIdentityProvider": {
+ "$ref": "./examples/ApiManagementCreateIdentityProvider.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IdentityProviderNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IdentityProviderCreateContract"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "IdentityProvider configuration were successfully created.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IdentityProviderContract"
+ }
+ },
+ "200": {
+ "description": "The existing Identity Provider was successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IdentityProviderContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "IdentityProvider"
+ ],
+ "operationId": "IdentityProvider_Update",
+ "description": "Updates an existing IdentityProvider configuration.",
+ "x-ms-examples": {
+ "ApiManagementUpdateIdentityProvider": {
+ "$ref": "./examples/ApiManagementUpdateIdentityProvider.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IdentityProviderNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IdentityProviderUpdateParameters"
+ },
+ "description": "Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The existing Identity Provider was successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IdentityProviderContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "IdentityProvider"
+ ],
+ "operationId": "IdentityProvider_Delete",
+ "description": "Deletes the specified identity provider configuration.",
+ "x-ms-examples": {
+ "ApiManagementDeleteIdentityProvider": {
+ "$ref": "./examples/ApiManagementDeleteIdentityProvider.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IdentityProviderNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The identity provider configuration was successfully deleted."
+ },
+ "204": {
+ "description": "The identity provider configuration was successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/identityProviders/{identityProviderName}/listSecrets": {
+ "post": {
+ "tags": [
+ "IdentityProvider"
+ ],
+ "operationId": "IdentityProvider_ListSecrets",
+ "description": "Gets the client secret details of the Identity Provider.",
+ "x-ms-examples": {
+ "ApiManagementIdentityProviderListSecrets": {
+ "$ref": "./examples/ApiManagementIdentityProviderListSecrets.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IdentityProviderNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the client secret.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ClientSecretContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimissues.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimissues.json
new file mode 100644
index 000000000000..fd1c939cc300
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimissues.json
@@ -0,0 +1,150 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use this REST API to get all the issues across an Azure Api Management service.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/issues": {
+ "get": {
+ "tags": [
+ "Issue"
+ ],
+ "operationId": "Issue_ListByService",
+ "description": "Lists a collection of issues in the specified service instance.",
+ "x-ms-examples": {
+ "ApiManagementListIssues": {
+ "$ref": "./examples/ApiManagementListIssues.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || apiId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || title | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || authorName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || state | filter | eq | |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Issue entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/IssueContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/issues/{issueId}": {
+ "get": {
+ "tags": [
+ "Issue"
+ ],
+ "operationId": "Issue_Get",
+ "description": "Gets API Management issue details",
+ "x-ms-examples": {
+ "ApiManagementGetIssue": {
+ "$ref": "./examples/ApiManagementGetIssue.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IssueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Get the details of the issue.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/IssueContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimloggers.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimloggers.json
new file mode 100644
index 000000000000..a12f9b4e8a01
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimloggers.json
@@ -0,0 +1,382 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on logger entity Azure API Management deployment.The Logger entity in API Management represents an event sink that you can use to log API Management events. Currently the Logger entity supports logging API Management events to Azure EventHub.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/loggers": {
+ "get": {
+ "tags": [
+ "Logger"
+ ],
+ "operationId": "Logger_ListByService",
+ "description": "Lists a collection of loggers in the specified service instance.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-log-event-hubs"
+ },
+ "x-ms-examples": {
+ "ApiManagementListLoggers": {
+ "$ref": "./examples/ApiManagementListLoggers.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || loggerType | filter | eq | || resourceId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Logger entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/LoggerCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/LoggerContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/loggers/{loggerId}": {
+ "head": {
+ "tags": [
+ "Logger"
+ ],
+ "operationId": "Logger_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the logger specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadLogger": {
+ "$ref": "./examples/ApiManagementHeadLogger.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/LoggerIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified logger entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Logger"
+ ],
+ "operationId": "Logger_Get",
+ "description": "Gets the details of the logger specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetLogger": {
+ "$ref": "./examples/ApiManagementGetLogger.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/LoggerIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Logger entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/LoggerContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Logger"
+ ],
+ "operationId": "Logger_CreateOrUpdate",
+ "description": "Creates or Updates a logger.",
+ "x-ms-examples": {
+ "ApiManagementCreateEHLogger": {
+ "$ref": "./examples/ApiManagementCreateEHLogger.json"
+ },
+ "ApiManagementCreateAILogger": {
+ "$ref": "./examples/ApiManagementCreateAILogger.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/LoggerIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/LoggerContract"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Logger was successfully created.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/LoggerContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "The existing logger was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/LoggerContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Logger"
+ ],
+ "operationId": "Logger_Update",
+ "description": "Updates an existing logger.",
+ "x-ms-examples": {
+ "ApiManagementUpdateLogger": {
+ "$ref": "./examples/ApiManagementUpdateLogger.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/LoggerIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/LoggerUpdateContract"
+ },
+ "description": "Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The existing logger was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/LoggerContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Logger"
+ ],
+ "operationId": "Logger_Delete",
+ "description": "Deletes the specified logger.",
+ "x-ms-examples": {
+ "ApiManagementDeleteLogger": {
+ "$ref": "./examples/ApiManagementDeleteLogger.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/LoggerIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The logger was successfully deleted."
+ },
+ "204": {
+ "description": "The logger was successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimnamedvalues.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimnamedvalues.json
new file mode 100644
index 000000000000..f2963834eab4
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimnamedvalues.json
@@ -0,0 +1,450 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on NamedValue entity associated with your Azure API Management deployment. API Management policies are a powerful capability of the system that allow the publisher to change the behavior of the API through configuration. Policies are a collection of statements that are executed sequentially on the request or response of an API. Policy statements can be constructed using literal text values, policy expressions, and NamedValues. Each API Management service instance has a NamedValues collection of key/value pairs that are global to the service instance. These NamedValues can be used to manage constant string values across all API configuration and policies.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/namedValues": {
+ "get": {
+ "tags": [
+ "NamedValue"
+ ],
+ "operationId": "NamedValue_ListByService",
+ "description": "Lists a collection of named values defined within a service instance.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-properties"
+ },
+ "x-ms-examples": {
+ "ApiManagementListNamedValues": {
+ "$ref": "./examples/ApiManagementListNamedValues.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| tags | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith, any, all || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A Collection of the named value entities for the specified API Management service instance.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/NamedValueCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/NamedValueContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/namedValues/{namedValueId}": {
+ "head": {
+ "tags": [
+ "NamedValue"
+ ],
+ "operationId": "NamedValue_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the named value specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadNamedValue": {
+ "$ref": "./examples/ApiManagementHeadNamedValue.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NamedValueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified named value entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "NamedValue"
+ ],
+ "operationId": "NamedValue_Get",
+ "description": "Gets the details of the named value specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetNamedValue": {
+ "$ref": "./examples/ApiManagementGetNamedValue.json"
+ },
+ "ApiManagementGetNamedValueWithKeyVault": {
+ "$ref": "./examples/ApiManagementGetNamedValueWithKeyVault.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NamedValueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified named value entity. No secrets included",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/NamedValueContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "NamedValue"
+ ],
+ "operationId": "NamedValue_CreateOrUpdate",
+ "description": "Creates or updates named value.",
+ "x-ms-examples": {
+ "ApiManagementCreateNamedValue": {
+ "$ref": "./examples/ApiManagementCreateNamedValue.json"
+ },
+ "ApiManagementCreateNamedValueWithKeyVault": {
+ "$ref": "./examples/ApiManagementCreateNamedValueWithKeyVault.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NamedValueIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/NamedValueCreateContract"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Request to create or update named value was accepted."
+ },
+ "201": {
+ "description": "Named value was successfully created.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/NamedValueContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Named value was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/NamedValueContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "patch": {
+ "tags": [
+ "NamedValue"
+ ],
+ "operationId": "NamedValue_Update",
+ "description": "Updates the specific named value.",
+ "x-ms-examples": {
+ "ApiManagementUpdateNamedValue": {
+ "$ref": "./examples/ApiManagementUpdateNamedValue.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NamedValueIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/NamedValueUpdateParameters"
+ },
+ "description": "Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Request to create or update named value was accepted."
+ },
+ "200": {
+ "description": "Named value was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/NamedValueContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "delete": {
+ "tags": [
+ "NamedValue"
+ ],
+ "operationId": "NamedValue_Delete",
+ "description": "Deletes specific named value from the API Management service instance.",
+ "x-ms-examples": {
+ "ApiManagementDeleteNamedValue": {
+ "$ref": "./examples/ApiManagementDeleteNamedValue.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NamedValueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Named value was successfully deleted."
+ },
+ "204": {
+ "description": "Named value was successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/namedValues/{namedValueId}/listValue": {
+ "post": {
+ "tags": [
+ "NamedValue"
+ ],
+ "operationId": "NamedValue_ListValue",
+ "description": "Gets the secret of the named value specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementNamedValueListValue": {
+ "$ref": "./examples/ApiManagementNamedValueListValue.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NamedValueIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified named value secret.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/NamedValueSecretContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimnetworkstatus.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimnetworkstatus.json
new file mode 100644
index 000000000000..564fe2ae3006
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimnetworkstatus.json
@@ -0,0 +1,222 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for getting the network connectivity status of your Azure API Management deployment. When the API Management service is deployed inside a Virtual Network, it needs to have access to other Azure resources it depends on. This also gives details about the DNS Servers visible to Azure API Management deployment.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/networkstatus": {
+ "get": {
+ "tags": [
+ "NetworkStatus"
+ ],
+ "operationId": "NetworkStatus_ListByService",
+ "description": "Gets the Connectivity Status to the external resources on which the Api Management service depends from inside the Cloud Service. This also returns the DNS Servers as visible to the CloudService.",
+ "x-ms-examples": {
+ "ApiManagementServiceGetNetworkStatus": {
+ "$ref": "./examples/ApiManagementServiceGetNetworkStatus.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Gets the list Network status details for all regions in which service is deployed.",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkStatusContractByLocation"
+ },
+ "description": "List of Network Status values."
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/locations/{locationName}/networkstatus": {
+ "get": {
+ "tags": [
+ "NetworkStatus"
+ ],
+ "operationId": "NetworkStatus_ListByLocation",
+ "description": "Gets the Connectivity Status to the external resources on which the Api Management service depends from inside the Cloud Service. This also returns the DNS Servers as visible to the CloudService.",
+ "x-ms-examples": {
+ "ApiManagementServiceGetNetworkStatusByLocation": {
+ "$ref": "./examples/ApiManagementServiceGetNetworkStatusByLocation.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/LocationNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Gets the Network status details.",
+ "schema": {
+ "$ref": "#/definitions/NetworkStatusContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ConnectivityStatusContract": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The hostname of the resource which the service depends on. This can be the database, storage or any other azure resource on which the service depends upon.",
+ "minLength": 1
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "initializing",
+ "success",
+ "failure"
+ ],
+ "x-ms-enum": {
+ "name": "ConnectivityStatusType",
+ "modelAsString": true
+ },
+ "description": "Resource Connectivity Status Type identifier."
+ },
+ "error": {
+ "type": "string",
+ "description": "Error details of the connectivity to the resource."
+ },
+ "lastUpdated": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The date when the resource connectivity status was last updated. This status should be updated every 15 minutes. If this status has not been updated, then it means that the service has lost network connectivity to the resource, from inside the Virtual Network.The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "lastStatusChange": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The date when the resource connectivity status last Changed from success to failure or vice-versa. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "resourceType": {
+ "type": "string",
+ "description": "Resource Type."
+ },
+ "isOptional": {
+ "type": "boolean",
+ "description": "Whether this is optional."
+ }
+ },
+ "required": [
+ "name",
+ "status",
+ "lastUpdated",
+ "lastStatusChange",
+ "resourceType",
+ "isOptional"
+ ],
+ "description": "Details about connectivity to a resource."
+ },
+ "NetworkStatusContractByLocation": {
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Location of service",
+ "minLength": 1
+ },
+ "networkStatus": {
+ "$ref": "#/definitions/NetworkStatusContract",
+ "description": "Network status in Location"
+ }
+ },
+ "description": "Network Status in the Location"
+ },
+ "NetworkStatusContract": {
+ "properties": {
+ "dnsServers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Gets the list of DNS servers IPV4 addresses."
+ },
+ "connectivityStatus": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ConnectivityStatusContract"
+ },
+ "description": "Gets the list of Connectivity Status to the Resources on which the service depends upon."
+ }
+ },
+ "required": [
+ "dnsServers",
+ "connectivityStatus"
+ ],
+ "description": "Network Status details."
+ }
+ },
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimnotifications.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimnotifications.json
new file mode 100644
index 000000000000..fc5b13c4987a
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimnotifications.json
@@ -0,0 +1,564 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on who is going to receive notifications associated with your Azure API Management deployment.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/notifications": {
+ "get": {
+ "tags": [
+ "Notification"
+ ],
+ "operationId": "Notification_ListByService",
+ "description": "Lists a collection of properties defined within a service instance.",
+ "x-ms-examples": {
+ "ApiManagementListNotifications": {
+ "$ref": "./examples/ApiManagementListNotifications.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A Collection of the Notification for the specified API Management service instance.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/NotificationCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/notifications/{notificationName}": {
+ "get": {
+ "tags": [
+ "Notification"
+ ],
+ "operationId": "Notification_Get",
+ "description": "Gets the details of the Notification specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetNotification": {
+ "$ref": "./examples/ApiManagementGetNotification.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NotificationNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Notification.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/NotificationContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Notification"
+ ],
+ "operationId": "Notification_CreateOrUpdate",
+ "description": "Create or Update API Management publisher notification.",
+ "x-ms-examples": {
+ "ApiManagementCreateNotification": {
+ "$ref": "./examples/ApiManagementCreateNotification.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NotificationNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Notification was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/NotificationContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/notifications/{notificationName}/recipientUsers": {
+ "get": {
+ "tags": [
+ "NotificationRecipientUser"
+ ],
+ "operationId": "NotificationRecipientUser_ListByNotification",
+ "description": "Gets the list of the Notification Recipient User subscribed to the notification.",
+ "x-ms-examples": {
+ "ApiManagementListNotificationRecipientUsers": {
+ "$ref": "./examples/ApiManagementListNotificationRecipientUsers.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NotificationNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the Recipient User collection for the notification.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/RecipientUserCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/notifications/{notificationName}/recipientUsers/{userId}": {
+ "head": {
+ "tags": [
+ "NotificationRecipientUser"
+ ],
+ "operationId": "NotificationRecipientUser_CheckEntityExists",
+ "description": "Determine if the Notification Recipient User is subscribed to the notification.",
+ "x-ms-examples": {
+ "ApiManagementHeadNotificationRecipientUser": {
+ "$ref": "./examples/ApiManagementHeadNotificationRecipientUser.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NotificationNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "The User is subscribed to receive the notification."
+ },
+ "404": {
+ "description": "Entity does not exists."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "NotificationRecipientUser"
+ ],
+ "operationId": "NotificationRecipientUser_CreateOrUpdate",
+ "description": "Adds the API Management User to the list of Recipients for the Notification.",
+ "x-ms-examples": {
+ "ApiManagementCreateNotificationRecipientUser": {
+ "$ref": "./examples/ApiManagementCreateNotificationRecipientUser.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NotificationNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Recipient User was successfully added to the notification list.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/RecipientUserContract"
+ }
+ },
+ "200": {
+ "description": "Recipient User is already part of the notification list.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/RecipientUserContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "NotificationRecipientUser"
+ ],
+ "operationId": "NotificationRecipientUser_Delete",
+ "description": "Removes the API Management user from the list of Notification.",
+ "x-ms-examples": {
+ "ApiManagementDeleteNotificationRecipientUser": {
+ "$ref": "./examples/ApiManagementDeleteNotificationRecipientUser.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NotificationNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Recipient User was successfully removed from the notification list."
+ },
+ "204": {
+ "description": "Recipient User was successfully removed from the notification list."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/notifications/{notificationName}/recipientEmails": {
+ "get": {
+ "tags": [
+ "NotificationRecipientEmail"
+ ],
+ "operationId": "NotificationRecipientEmail_ListByNotification",
+ "description": "Gets the list of the Notification Recipient Emails subscribed to a notification.",
+ "x-ms-examples": {
+ "ApiManagementListNotificationRecipientEmails": {
+ "$ref": "./examples/ApiManagementListNotificationRecipientEmails.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NotificationNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the Recipient Email collection subscribed to the notification.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/RecipientEmailCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/notifications/{notificationName}/recipientEmails/{email}": {
+ "head": {
+ "tags": [
+ "NotificationRecipientEmail"
+ ],
+ "operationId": "NotificationRecipientEmail_CheckEntityExists",
+ "description": "Determine if Notification Recipient Email subscribed to the notification.",
+ "x-ms-examples": {
+ "ApiManagementHeadNotificationRecipientEmail": {
+ "$ref": "./examples/ApiManagementHeadNotificationRecipientEmail.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NotificationNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/EmailParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "The Users is subscribed to receive the notification."
+ },
+ "404": {
+ "description": "The Users is not subscribed to receive the notification."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "NotificationRecipientEmail"
+ ],
+ "operationId": "NotificationRecipientEmail_CreateOrUpdate",
+ "description": "Adds the Email address to the list of Recipients for the Notification.",
+ "x-ms-examples": {
+ "ApiManagementCreateNotificationRecipientEmail": {
+ "$ref": "./examples/ApiManagementCreateNotificationRecipientEmail.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NotificationNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/EmailParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Recipient Email was successfully added to the notification list.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/RecipientEmailContract"
+ }
+ },
+ "200": {
+ "description": "Recipient Email is already part of the notification list.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/RecipientEmailContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "NotificationRecipientEmail"
+ ],
+ "operationId": "NotificationRecipientEmail_Delete",
+ "description": "Removes the email from the list of Notification.",
+ "x-ms-examples": {
+ "ApiManagementDeleteNotificationRecipientEmail": {
+ "$ref": "./examples/ApiManagementDeleteNotificationRecipientEmail.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NotificationNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/EmailParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Recipient Email was successfully removed to the notification list."
+ },
+ "204": {
+ "description": "Recipient Email was successfully removed to the notification list."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimopenidconnectproviders.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimopenidconnectproviders.json
new file mode 100644
index 000000000000..aabb08d6082c
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimopenidconnectproviders.json
@@ -0,0 +1,427 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on OpenId Connect Provider entity associated with your Azure API Management deployment. API Management allows you to access APIs secured with token from [OpenID Connect Provider ](http://openid.net/connect/) to be accessed from the Developer Console.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/openidConnectProviders": {
+ "get": {
+ "tags": [
+ "OpenidConnectProvider"
+ ],
+ "operationId": "OpenIdConnectProvider_ListByService",
+ "description": "Lists of all the OpenId Connect Providers.",
+ "x-ms-examples": {
+ "ApiManagementListOpenIdConnectProviders": {
+ "$ref": "./examples/ApiManagementListOpenIdConnectProviders.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists of all the OpenId Connect Providers.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OpenIdConnectProviderCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/OpenidConnectProviderContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/openidConnectProviders/{opid}": {
+ "head": {
+ "tags": [
+ "OpenidConnectProvider"
+ ],
+ "operationId": "OpenIdConnectProvider_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the openIdConnectProvider specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadOpenIdConnectProvider": {
+ "$ref": "./examples/ApiManagementHeadOpenIdConnectProvider.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OpenIdConnectIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified openidConnectProvider entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "OpenidConnectProvider"
+ ],
+ "operationId": "OpenIdConnectProvider_Get",
+ "description": "Gets specific OpenID Connect Provider without secrets.",
+ "x-ms-examples": {
+ "ApiManagementGetOpenIdConnectProvider": {
+ "$ref": "./examples/ApiManagementGetOpenIdConnectProvider.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OpenIdConnectIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified OpenId Connect Provider entity without secrets.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OpenidConnectProviderContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "OpenidConnectProvider"
+ ],
+ "operationId": "OpenIdConnectProvider_CreateOrUpdate",
+ "description": "Creates or updates the OpenID Connect Provider.",
+ "x-ms-examples": {
+ "ApiManagementCreateOpenIdConnectProvider": {
+ "$ref": "./examples/ApiManagementCreateOpenIdConnectProvider.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OpenIdConnectIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OpenidConnectProviderContract"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "OpenIdConnect Provider was successfully created.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OpenidConnectProviderContract"
+ }
+ },
+ "200": {
+ "description": "OpenIdConnect Provider was successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OpenidConnectProviderContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "OpenidConnectProvider"
+ ],
+ "operationId": "OpenIdConnectProvider_Update",
+ "description": "Updates the specific OpenID Connect Provider.",
+ "x-ms-examples": {
+ "ApiManagementUpdateOpenIdConnectProvider": {
+ "$ref": "./examples/ApiManagementUpdateOpenIdConnectProvider.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OpenIdConnectIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OpenidConnectProviderUpdateContract"
+ },
+ "description": "Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OpenIdConnect Provider was successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OpenidConnectProviderContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "OpenidConnectProvider"
+ ],
+ "operationId": "OpenIdConnectProvider_Delete",
+ "description": "Deletes specific OpenID Connect Provider of the API Management service instance.",
+ "x-ms-examples": {
+ "ApiManagementDeleteOpenIdConnectProvider": {
+ "$ref": "./examples/ApiManagementDeleteOpenIdConnectProvider.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OpenIdConnectIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OpenId Connect Provider was successfully deleted."
+ },
+ "204": {
+ "description": "OpenId Connect Provider was successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/openidConnectProviders/{opid}/listSecrets": {
+ "post": {
+ "tags": [
+ "OpenidConnectProvider"
+ ],
+ "operationId": "OpenIdConnectProvider_ListSecrets",
+ "description": "Gets the client secret details of the OpenID Connect Provider.",
+ "x-ms-examples": {
+ "ApiManagementOpenidConnectProviderListSecrets": {
+ "$ref": "./examples/ApiManagementOpenidConnectProviderListSecrets.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/OpenIdConnectIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified OpenId Connect Provider secrets.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ClientSecretContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimpolicies.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimpolicies.json
new file mode 100644
index 000000000000..003e1d0c1dfc
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimpolicies.json
@@ -0,0 +1,304 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on Global Policies in Azure API Management deployment.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/policies": {
+ "get": {
+ "tags": [
+ "Policy"
+ ],
+ "operationId": "Policy_ListByService",
+ "description": "Lists all the Global Policy definitions of the Api Management service.",
+ "x-ms-examples": {
+ "ApiManagementListPolicies": {
+ "$ref": "./examples/ApiManagementListPolicies.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns an array of Policy Contracts.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/policies/{policyId}": {
+ "head": {
+ "tags": [
+ "Policy"
+ ],
+ "operationId": "Policy_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the Global policy definition in the Api Management service.",
+ "x-ms-examples": {
+ "ApiManagementHeadPolicy": {
+ "$ref": "./examples/ApiManagementHeadPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Policy"
+ ],
+ "operationId": "Policy_Get",
+ "description": "Get the Global policy definition of the Api Management service.",
+ "x-ms-examples": {
+ "ApiManagementGetPolicy": {
+ "$ref": "./examples/ApiManagementGetPolicy.json"
+ },
+ "ApiManagementGetPolicyFormat": {
+ "$ref": "./examples/ApiManagementGetPolicyFormat.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyExportFormat"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Get the Global policy definition of the Api Management service.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Policy"
+ ],
+ "operationId": "Policy_CreateOrUpdate",
+ "description": "Creates or updates the global policy configuration of the Api Management service.",
+ "x-ms-examples": {
+ "ApiManagementCreatePolicy": {
+ "$ref": "./examples/ApiManagementCreatePolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "description": "The policy contents to apply."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Global policy configuration was successfully created.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Global policy configuration of the Api Management service was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Policy"
+ ],
+ "operationId": "Policy_Delete",
+ "description": "Deletes the global policy configuration of the Api Management Service.",
+ "x-ms-examples": {
+ "ApiManagementDeletePolicy": {
+ "$ref": "./examples/ApiManagementDeletePolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Policy was successfully removed"
+ },
+ "204": {
+ "description": "Policy successfully removed by previous request or does not exist"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimpolicydescriptions.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimpolicydescriptions.json
new file mode 100644
index 000000000000..f785606df60c
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimpolicydescriptions.json
@@ -0,0 +1,100 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing retrieving a collection of policy snippets available in Azure API Management deployment.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/policyDescriptions": {
+ "get": {
+ "tags": [
+ "PolicyDescription"
+ ],
+ "operationId": "PolicyDescription_ListByService",
+ "description": "Lists all policy descriptions.",
+ "x-ms-examples": {
+ "ApiManagementListPolicyDescriptions": {
+ "$ref": "./examples/ApiManagementListPolicyDescriptions.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "scope",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Policy scope.",
+ "enum": [
+ "Tenant",
+ "Product",
+ "Api",
+ "Operation",
+ "All"
+ ],
+ "x-ms-enum": {
+ "name": "PolicyScopeContract",
+ "modelAsString": false
+ }
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns an array of policy descriptions.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyDescriptionCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimportalsettings.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimportalsettings.json
new file mode 100644
index 000000000000..39535195bb23
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimportalsettings.json
@@ -0,0 +1,657 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on PortalSettings entity associated with your Azure API Management deployment. Using this entity you can manage settings for a Developer Portal.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/portalsettings/signin": {
+ "head": {
+ "tags": [
+ "SignInSettings"
+ ],
+ "operationId": "SignInSettings_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the SignInSettings.",
+ "x-ms-examples": {
+ "ApiManagementHeadSignInSettings": {
+ "$ref": "./examples/ApiManagementHeadSignInSettings.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Operation completed successfully.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "SignInSettings"
+ ],
+ "operationId": "SignInSettings_Get",
+ "description": "Get Sign In Settings for the Portal",
+ "x-ms-examples": {
+ "ApiManagementPortalSettingsGetSignIn": {
+ "$ref": "./examples/ApiManagementPortalSettingsGetSignIn.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Sign-In settings.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PortalSigninSettings"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "SignInSettings"
+ ],
+ "operationId": "SignInSettings_Update",
+ "description": "Update Sign-In settings.",
+ "x-ms-examples": {
+ "ApiManagementPortalSettingsUpdateSignIn": {
+ "$ref": "./examples/ApiManagementPortalSettingsUpdateSignIn.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PortalSigninSettings"
+ },
+ "description": "Update Sign-In settings."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Sign-In settings was updated successfully."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "SignInSettings"
+ ],
+ "operationId": "SignInSettings_CreateOrUpdate",
+ "description": "Create or Update Sign-In settings.",
+ "x-ms-examples": {
+ "ApiManagementPortalSettingsUpdateSignIn": {
+ "$ref": "./examples/ApiManagementPortalSettingsPutSignIn.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PortalSigninSettings"
+ },
+ "description": "Create or update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Sign-In settings was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PortalSigninSettings"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/portalsettings/signup": {
+ "head": {
+ "tags": [
+ "SignUpSettings"
+ ],
+ "operationId": "SignUpSettings_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the SignUpSettings.",
+ "x-ms-examples": {
+ "ApiManagementHeadSignUpSettings": {
+ "$ref": "./examples/ApiManagementHeadSignUpSettings.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Operation completed successfully.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "SignUpSettings"
+ ],
+ "operationId": "SignUpSettings_Get",
+ "description": "Get Sign Up Settings for the Portal",
+ "x-ms-examples": {
+ "ApiManagementPortalSettingsGetSignUp": {
+ "$ref": "./examples/ApiManagementPortalSettingsGetSignUp.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Sign-Up settings.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PortalSignupSettings"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "SignUpSettings"
+ ],
+ "operationId": "SignUpSettings_Update",
+ "description": "Update Sign-Up settings.",
+ "x-ms-examples": {
+ "ApiManagementPortalSettingsUpdateSignUp": {
+ "$ref": "./examples/ApiManagementPortalSettingsUpdateSignUp.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PortalSignupSettings"
+ },
+ "description": "Update Sign-Up settings."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Sign-Up settings was updated successfully."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "SignUpSettings"
+ ],
+ "operationId": "SignUpSettings_CreateOrUpdate",
+ "description": "Create or Update Sign-Up settings.",
+ "x-ms-examples": {
+ "ApiManagementPortalSettingsUpdateSignUp": {
+ "$ref": "./examples/ApiManagementPortalSettingsPutSignUp.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PortalSignupSettings"
+ },
+ "description": "Create or update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Sign-Up settings was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PortalSignupSettings"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/portalsettings/delegation": {
+ "head": {
+ "tags": [
+ "DelegationSettings"
+ ],
+ "operationId": "DelegationSettings_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the DelegationSettings.",
+ "x-ms-examples": {
+ "ApiManagementHeadDelegationSettings": {
+ "$ref": "./examples/ApiManagementHeadDelegationSettings.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Operation completed successfully.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "DelegationSettings"
+ ],
+ "operationId": "DelegationSettings_Get",
+ "description": "Get Delegation Settings for the Portal.",
+ "x-ms-examples": {
+ "ApiManagementPortalSettingsGetDelegation": {
+ "$ref": "./examples/ApiManagementPortalSettingsGetDelegation.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delegation settings.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PortalDelegationSettings"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "DelegationSettings"
+ ],
+ "operationId": "DelegationSettings_Update",
+ "description": "Update Delegation settings.",
+ "x-ms-examples": {
+ "ApiManagementPortalSettingsUpdateDelegation": {
+ "$ref": "./examples/ApiManagementPortalSettingsUpdateDelegation.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PortalDelegationSettings"
+ },
+ "description": "Update Delegation settings."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Delegation settings was updated successfully."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "DelegationSettings"
+ ],
+ "operationId": "DelegationSettings_CreateOrUpdate",
+ "description": "Create or Update Delegation settings.",
+ "x-ms-examples": {
+ "ApiManagementPortalSettingsUpdateDelegation": {
+ "$ref": "./examples/ApiManagementPortalSettingsPutDelegation.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PortalDelegationSettings"
+ },
+ "description": "Create or update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Delegation settings was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PortalDelegationSettings"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/portalsettings/delegation/listSecrets": {
+ "post": {
+ "tags": [
+ "DelegationSettings"
+ ],
+ "operationId": "DelegationSettings_ListSecrets",
+ "description": "Gets the secret validation key of the DelegationSettings.",
+ "x-ms-examples": {
+ "ApiManagementListSecretsPortalSettings": {
+ "$ref": "./examples/ApiManagementListSecretsPortalSettingsValidationKey.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the validation key.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PortalSettingValidationKeyContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimproducts.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimproducts.json
new file mode 100644
index 000000000000..52d37b190db9
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimproducts.json
@@ -0,0 +1,1408 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on Product entity associated with your Azure API Management deployment. The Product entity represents a product in API Management. Products include one or more APIs and their associated terms of use. Once a product is published, developers can subscribe to the product and begin to use the product’s APIs.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/products": {
+ "get": {
+ "tags": [
+ "Product"
+ ],
+ "operationId": "Product_ListByService",
+ "description": "Lists a collection of products in the specified service instance.",
+ "x-ms-examples": {
+ "ApiManagementListProducts": {
+ "$ref": "./examples/ApiManagementListProducts.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || terms | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || state | filter | eq | || groups | expand | | |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "name": "expandGroups",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "When set to true, the response contains an array of groups that have visibility to the product. The default is false."
+ },
+ {
+ "name": "tags",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Products which are part of a specific tag."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A Collection of the Product entities for the specified API Management service instance.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ProductCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ProductContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}": {
+ "head": {
+ "tags": [
+ "Product"
+ ],
+ "operationId": "Product_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the product specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadProduct": {
+ "$ref": "./examples/ApiManagementHeadProduct.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified Product entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Product"
+ ],
+ "operationId": "Product_Get",
+ "description": "Gets the details of the product specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetProduct": {
+ "$ref": "./examples/ApiManagementGetProduct.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Product entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ProductContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Product"
+ ],
+ "operationId": "Product_CreateOrUpdate",
+ "description": "Creates or Updates a product.",
+ "x-ms-examples": {
+ "ApiManagementCreateProduct": {
+ "$ref": "./examples/ApiManagementCreateProduct.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ProductContract"
+ },
+ "description": "Create or update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Product was successfully created.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ProductContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Product was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ProductContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Product"
+ ],
+ "operationId": "Product_Update",
+ "description": "Update existing product details.",
+ "x-ms-examples": {
+ "ApiManagementUpdateProduct": {
+ "$ref": "./examples/ApiManagementUpdateProduct.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ProductUpdateParameters"
+ },
+ "description": "Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Product was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ProductContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Product"
+ ],
+ "operationId": "Product_Delete",
+ "description": "Delete product.",
+ "x-ms-examples": {
+ "ApiManagementDeleteProduct": {
+ "$ref": "./examples/ApiManagementDeleteProduct.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "name": "deleteSubscriptions",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Delete existing subscriptions associated with the product or not."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Product was successfully removed."
+ },
+ "204": {
+ "description": "Product was successfully removed by previous request or does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/apis": {
+ "get": {
+ "tags": [
+ "ProductApi"
+ ],
+ "operationId": "ProductApi_ListByProduct",
+ "description": "Lists a collection of the APIs associated with a product.",
+ "x-ms-examples": {
+ "ApiManagementListProductApis": {
+ "$ref": "./examples/ApiManagementListProductApis.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || serviceUrl | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || path | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains a collection of Api entities in the product.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ApiContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/apis/{apiId}": {
+ "head": {
+ "tags": [
+ "ProductApi"
+ ],
+ "operationId": "ProductApi_CheckEntityExists",
+ "description": "Checks that API entity specified by identifier is associated with the Product entity.",
+ "x-ms-examples": {
+ "ApiManagementHeadProductApi": {
+ "$ref": "./examples/ApiManagementHeadProductApi.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Entity exists"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ProductApi"
+ ],
+ "operationId": "ProductApi_CreateOrUpdate",
+ "description": "Adds an API to the specified product.",
+ "x-ms-examples": {
+ "ApiManagementCreateProductApi": {
+ "$ref": "./examples/ApiManagementCreateProductApi.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The API was successfully added to the product.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiContract"
+ }
+ },
+ "200": {
+ "description": "The specified API is already added to the product.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ApiContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ProductApi"
+ ],
+ "operationId": "ProductApi_Delete",
+ "description": "Deletes the specified API from the specified product.",
+ "x-ms-examples": {
+ "ApiManagementDeleteProductApi": {
+ "$ref": "./examples/ApiManagementDeleteProductApi.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiIdRevParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "API was successfully removed from product"
+ },
+ "204": {
+ "description": "API successfully removed by previous request or does not exist in product"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/groups": {
+ "get": {
+ "tags": [
+ "ProductGroup"
+ ],
+ "operationId": "ProductGroup_ListByProduct",
+ "description": "Lists the collection of developer groups associated with the specified product.",
+ "x-ms-examples": {
+ "ApiManagementListProductGroups": {
+ "$ref": "./examples/ApiManagementListProductGroups.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | || displayName | filter | eq, ne | || description | filter | eq, ne | |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Group entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GroupCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/GroupContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/groups/{groupId}": {
+ "head": {
+ "tags": [
+ "ProductGroup"
+ ],
+ "operationId": "ProductGroup_CheckEntityExists",
+ "description": "Checks that Group entity specified by identifier is associated with the Product entity.",
+ "x-ms-examples": {
+ "ApiManagementHeadProductGroup": {
+ "$ref": "./examples/ApiManagementHeadProductGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GroupIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "The Group is associated with the Product."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ProductGroup"
+ ],
+ "operationId": "ProductGroup_CreateOrUpdate",
+ "description": "Adds the association between the specified developer group with the specified product.",
+ "x-ms-examples": {
+ "ApiManagementCreateProductGroup": {
+ "$ref": "./examples/ApiManagementCreateProductGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GroupIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The group was successfully associated with the product.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GroupContract"
+ }
+ },
+ "200": {
+ "description": "The specified group is already associated with the product.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GroupContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ProductGroup"
+ ],
+ "operationId": "ProductGroup_Delete",
+ "description": "Deletes the association between the specified group and product.",
+ "x-ms-examples": {
+ "ApiManagementDeleteProductGroup": {
+ "$ref": "./examples/ApiManagementDeleteProductGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/GroupIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The group was successfully disassociated with the product."
+ },
+ "204": {
+ "description": "The group was successfully disassociated with the product."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/subscriptions": {
+ "get": {
+ "tags": [
+ "ProductSubscription"
+ ],
+ "operationId": "ProductSubscriptions_List",
+ "description": "Lists the collection of subscriptions to the specified product.",
+ "x-ms-examples": {
+ "ApiManagementListProductSubscriptions": {
+ "$ref": "./examples/ApiManagementListProductSubscriptions.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || stateComment | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || ownerId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || scope | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || userId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || productId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || state | filter | eq | || user | expand | | |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of subscription entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SubscriptionCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/SubscriptionContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/policies": {
+ "get": {
+ "tags": [
+ "ProductPolicy"
+ ],
+ "operationId": "ProductPolicy_ListByProduct",
+ "description": "Get the policy configuration at the Product level.",
+ "x-ms-examples": {
+ "ApiManagementListProductPolicies": {
+ "$ref": "./examples/ApiManagementListProductPolicies.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Product Policy information.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/policies/{policyId}": {
+ "head": {
+ "tags": [
+ "ProductPolicy"
+ ],
+ "operationId": "ProductPolicy_GetEntityTag",
+ "description": "Get the ETag of the policy configuration at the Product level.",
+ "x-ms-examples": {
+ "ApiManagementHeadProductPolicy": {
+ "$ref": "./examples/ApiManagementHeadProductPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Product Policy Etag information.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ProductPolicy"
+ ],
+ "operationId": "ProductPolicy_Get",
+ "description": "Get the policy configuration at the Product level.",
+ "x-ms-examples": {
+ "ApiManagementGetProductPolicy": {
+ "$ref": "./examples/ApiManagementGetProductPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyExportFormat"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Product Policy information.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ProductPolicy"
+ ],
+ "operationId": "ProductPolicy_CreateOrUpdate",
+ "description": "Creates or updates policy configuration for the Product.",
+ "x-ms-examples": {
+ "ApiManagementCreateProductPolicy": {
+ "$ref": "./examples/ApiManagementCreateProductPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "description": "The policy contents to apply."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Product policy configuration was successfully created.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "Product policy configuration of the tenant was successfully updated.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/PolicyContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ProductPolicy"
+ ],
+ "operationId": "ProductPolicy_Delete",
+ "description": "Deletes the policy configuration at the Product.",
+ "x-ms-examples": {
+ "ApiManagementDeleteProductPolicy": {
+ "$ref": "./examples/ApiManagementDeleteProductPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/PolicyIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the policy configuration at the Product level."
+ },
+ "204": {
+ "description": "Successfully deleted the policy configuration at the Product level."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/tags": {
+ "get": {
+ "tags": [
+ "ProductTag"
+ ],
+ "operationId": "Tag_ListByProduct",
+ "description": "Lists all Tags associated with the Product.",
+ "x-ms-examples": {
+ "ApiManagementListProductTags": {
+ "$ref": "./examples/ApiManagementListProductTags.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation returns a collection of tags associated with the Product entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/TagContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/tags/{tagId}": {
+ "head": {
+ "tags": [
+ "ProductTag"
+ ],
+ "operationId": "Tag_GetEntityStateByProduct",
+ "description": "Gets the entity state version of the tag specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadProductTag": {
+ "$ref": "./examples/ApiManagementHeadProductTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Empty response body, ETag header entity state version.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ProductTag"
+ ],
+ "operationId": "Tag_GetByProduct",
+ "description": "Get tag associated with the Product.",
+ "x-ms-examples": {
+ "ApiManagementGetProductTag": {
+ "$ref": "./examples/ApiManagementGetProductTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Gets the details of the tag specified by its identifier.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ProductTag"
+ ],
+ "operationId": "Tag_AssignToProduct",
+ "description": "Assign tag to the Product.",
+ "x-ms-examples": {
+ "ApiManagementCreateProductTag": {
+ "$ref": "./examples/ApiManagementCreateProductTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Tag was assigned to the Product.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagContract"
+ }
+ },
+ "200": {
+ "description": "Tag is already assigned to the Product.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ProductTag"
+ ],
+ "operationId": "Tag_DetachFromProduct",
+ "description": "Detach the tag from the Product.",
+ "x-ms-examples": {
+ "ApiManagementDeleteProductTag": {
+ "$ref": "./examples/ApiManagementDeleteProductTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ProductIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully detached the tag from the Product."
+ },
+ "204": {
+ "description": "Successfully detached the tag from the Product."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimproductsByTags.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimproductsByTags.json
new file mode 100644
index 000000000000..1a78d2509c88
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimproductsByTags.json
@@ -0,0 +1,106 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations to retrieve Products by Tags in Azure API Management deployment.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/productsByTags": {
+ "get": {
+ "tags": [
+ "ProductsByTag"
+ ],
+ "operationId": "Product_ListByTags",
+ "description": "Lists a collection of products associated with tags.",
+ "x-ms-examples": {
+ "ApiManagementListProductsByTags": {
+ "$ref": "./examples/ApiManagementListProductsByTags.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || terms | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || state | filter | eq | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "name": "includeNotTaggedProducts",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Include not tagged Products."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of TagResource entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagResourceCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/TagResourceContract"
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimquotas.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimquotas.json
new file mode 100644
index 000000000000..8844236eb58f
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimquotas.json
@@ -0,0 +1,248 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on Quota entity associated with your Azure API Management deployment. To configure call rate limit and quota policies refer to [how to configure call rate limit and quota](https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-product-with-rules#a-namepolicies-ato-configure-call-rate-limit-and-quota-policies).",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/quotas/{quotaCounterKey}": {
+ "get": {
+ "tags": [
+ "QuotaByCounterKeys"
+ ],
+ "operationId": "QuotaByCounterKeys_ListByService",
+ "description": "Lists a collection of current quota counter periods associated with the counter-key configured in the policy on the specified service instance. The api does not support paging yet.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-product-with-rules#a-namepolicies-ato-configure-call-rate-limit-and-quota-policies",
+ "description": "Document describing how to configure the quota policies."
+ },
+ "x-ms-examples": {
+ "ApiManagementGetQuotaCounterKeys": {
+ "$ref": "./examples/ApiManagementGetQuotaCounterKeys.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/QuotaCounterKeyParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of the quota counter values.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/QuotaCounterCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "QuotaByCounterKeys"
+ ],
+ "operationId": "QuotaByCounterKeys_Update",
+ "description": "Updates all the quota counter values specified with the existing quota counter key to a value in the specified service instance. This should be used for reset of the quota counter values.",
+ "x-ms-examples": {
+ "ApiManagementUpdateQuotaCounterKey": {
+ "$ref": "./examples/ApiManagementUpdateQuotaCounterKey.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/QuotaCounterKeyParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/QuotaCounterValueUpdateContract"
+ },
+ "description": "The value of the quota counter to be applied to all quota counter periods."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Updated Quota Counter Values.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/QuotaCounterCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/quotas/{quotaCounterKey}/periods/{quotaPeriodKey}": {
+ "get": {
+ "tags": [
+ "QuotaByPeriodKeys"
+ ],
+ "operationId": "QuotaByPeriodKeys_Get",
+ "description": "Gets the value of the quota counter associated with the counter-key in the policy for the specific period in service instance.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-product-with-rules#a-namepolicies-ato-configure-call-rate-limit-and-quota-policies",
+ "description": "Document describing how to configure the quota policies."
+ },
+ "x-ms-examples": {
+ "ApiManagementGetQuotaCounterKeysByQuotaPeriod": {
+ "$ref": "./examples/ApiManagementGetQuotaCounterKeysByQuotaPeriod.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/QuotaCounterKeyParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/QuotaPeriodKeyParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the Quota counter details for the specified period.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/QuotaCounterContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "QuotaByPeriodKeys"
+ ],
+ "operationId": "QuotaByPeriodKeys_Update",
+ "description": "Updates an existing quota counter value in the specified service instance.",
+ "x-ms-examples": {
+ "ApiManagementUpdateQuotaCounterKeyByQuotaPeriod": {
+ "$ref": "./examples/ApiManagementUpdateQuotaCounterKeyByQuotaPeriod.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/QuotaCounterKeyParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/QuotaPeriodKeyParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/QuotaCounterValueUpdateContract"
+ },
+ "description": "The value of the Quota counter to be applied on the specified period."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the Quota counter details for the specified period.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/QuotaCounterContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimregions.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimregions.json
new file mode 100644
index 000000000000..bb56f128de08
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimregions.json
@@ -0,0 +1,85 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations in Azure API Management deployment.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/regions": {
+ "get": {
+ "tags": [
+ "Region"
+ ],
+ "operationId": "Region_ListByService",
+ "description": "Lists all azure regions in which the service exists.",
+ "x-ms-examples": {
+ "ApiManagementListRegions": {
+ "$ref": "./examples/ApiManagementListRegions.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists of Regions in which the service is deployed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/RegionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimreports.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimreports.json
new file mode 100644
index 000000000000..b354bcfddf3c
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimreports.json
@@ -0,0 +1,514 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs to get the analytics reports associated with your Azure API Management deployment.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/reports/byApi": {
+ "get": {
+ "tags": [
+ "Reports"
+ ],
+ "operationId": "Reports_ListByApi",
+ "description": "Lists report records by API.",
+ "x-ms-examples": {
+ "ApiManagementGetReportsByApi": {
+ "$ref": "./examples/ApiManagementGetReportsByApi.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "The filter to apply on the operation."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData order by query option."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Report record.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ReportCollection"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ReportRecordContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/reports/byUser": {
+ "get": {
+ "tags": [
+ "Reports"
+ ],
+ "operationId": "Reports_ListByUser",
+ "description": "Lists report records by User.",
+ "x-ms-examples": {
+ "ApiManagementGetReportsByUser": {
+ "$ref": "./examples/ApiManagementGetReportsByUser.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| timestamp | filter | ge, le | | | displayName | select, orderBy | | | | userId | select, filter | eq | | | apiRegion | filter | eq | | | productId | filter | eq | | | subscriptionId | filter | eq | | | apiId | filter | eq | | | operationId | filter | eq | | | callCountSuccess | select, orderBy | | | | callCountBlocked | select, orderBy | | | | callCountFailed | select, orderBy | | | | callCountOther | select, orderBy | | | | callCountTotal | select, orderBy | | | | bandwidth | select, orderBy | | | | cacheHitsCount | select | | | | cacheMissCount | select | | | | apiTimeAvg | select, orderBy | | | | apiTimeMin | select | | | | apiTimeMax | select | | | | serviceTimeAvg | select | | | | serviceTimeMin | select | | | | serviceTimeMax | select | | | "
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData order by query option."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Report record.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ReportCollection"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ReportRecordContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/reports/byOperation": {
+ "get": {
+ "tags": [
+ "Reports"
+ ],
+ "operationId": "Reports_ListByOperation",
+ "description": "Lists report records by API Operations.",
+ "x-ms-examples": {
+ "ApiManagementGetReportsByOperation": {
+ "$ref": "./examples/ApiManagementGetReportsByOperation.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| timestamp | filter | ge, le | | | displayName | select, orderBy | | | | apiRegion | filter | eq | | | userId | filter | eq | | | productId | filter | eq | | | subscriptionId | filter | eq | | | apiId | filter | eq | | | operationId | select, filter | eq | | | callCountSuccess | select, orderBy | | | | callCountBlocked | select, orderBy | | | | callCountFailed | select, orderBy | | | | callCountOther | select, orderBy | | | | callCountTotal | select, orderBy | | | | bandwidth | select, orderBy | | | | cacheHitsCount | select | | | | cacheMissCount | select | | | | apiTimeAvg | select, orderBy | | | | apiTimeMin | select | | | | apiTimeMax | select | | | | serviceTimeAvg | select | | | | serviceTimeMin | select | | | | serviceTimeMax | select | | | "
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData order by query option."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Report record.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ReportCollection"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ReportRecordContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/reports/byProduct": {
+ "get": {
+ "tags": [
+ "Reports"
+ ],
+ "operationId": "Reports_ListByProduct",
+ "description": "Lists report records by Product.",
+ "x-ms-examples": {
+ "ApiManagementGetReportsByProduct": {
+ "$ref": "./examples/ApiManagementGetReportsByProduct.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| timestamp | filter | ge, le | | | displayName | select, orderBy | | | | apiRegion | filter | eq | | | userId | filter | eq | | | productId | select, filter | eq | | | subscriptionId | filter | eq | | | callCountSuccess | select, orderBy | | | | callCountBlocked | select, orderBy | | | | callCountFailed | select, orderBy | | | | callCountOther | select, orderBy | | | | callCountTotal | select, orderBy | | | | bandwidth | select, orderBy | | | | cacheHitsCount | select | | | | cacheMissCount | select | | | | apiTimeAvg | select, orderBy | | | | apiTimeMin | select | | | | apiTimeMax | select | | | | serviceTimeAvg | select | | | | serviceTimeMin | select | | | | serviceTimeMax | select | | | "
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData order by query option."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Report record.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ReportCollection"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ReportRecordContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/reports/byGeo": {
+ "get": {
+ "tags": [
+ "Reports"
+ ],
+ "operationId": "Reports_ListByGeo",
+ "description": "Lists report records by geography.",
+ "x-ms-examples": {
+ "ApiManagementGetReportsByGeo": {
+ "$ref": "./examples/ApiManagementGetReportsByGeo.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| timestamp | filter | ge, le | | | country | select | | | | region | select | | | | zip | select | | | | apiRegion | filter | eq | | | userId | filter | eq | | | productId | filter | eq | | | subscriptionId | filter | eq | | | apiId | filter | eq | | | operationId | filter | eq | | | callCountSuccess | select | | | | callCountBlocked | select | | | | callCountFailed | select | | | | callCountOther | select | | | | bandwidth | select, orderBy | | | | cacheHitsCount | select | | | | cacheMissCount | select | | | | apiTimeAvg | select | | | | apiTimeMin | select | | | | apiTimeMax | select | | | | serviceTimeAvg | select | | | | serviceTimeMin | select | | | | serviceTimeMax | select | | | "
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Report record.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ReportCollection"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ReportRecordContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/reports/bySubscription": {
+ "get": {
+ "tags": [
+ "Reports"
+ ],
+ "operationId": "Reports_ListBySubscription",
+ "description": "Lists report records by subscription.",
+ "x-ms-examples": {
+ "ApiManagementGetReportsBySubscription": {
+ "$ref": "./examples/ApiManagementGetReportsBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| timestamp | filter | ge, le | | | displayName | select, orderBy | | | | apiRegion | filter | eq | | | userId | select, filter | eq | | | productId | select, filter | eq | | | subscriptionId | select, filter | eq | | | callCountSuccess | select, orderBy | | | | callCountBlocked | select, orderBy | | | | callCountFailed | select, orderBy | | | | callCountOther | select, orderBy | | | | callCountTotal | select, orderBy | | | | bandwidth | select, orderBy | | | | cacheHitsCount | select | | | | cacheMissCount | select | | | | apiTimeAvg | select, orderBy | | | | apiTimeMin | select | | | | apiTimeMax | select | | | | serviceTimeAvg | select | | | | serviceTimeMin | select | | | | serviceTimeMax | select | | | "
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData order by query option."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Report record.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ReportCollection"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ReportRecordContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/reports/byTime": {
+ "get": {
+ "tags": [
+ "Reports"
+ ],
+ "operationId": "Reports_ListByTime",
+ "description": "Lists report records by Time.",
+ "x-ms-examples": {
+ "ApiManagementGetReportsByTime": {
+ "$ref": "./examples/ApiManagementGetReportsByTime.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| timestamp | filter, select | ge, le | | | interval | select | | | | apiRegion | filter | eq | | | userId | filter | eq | | | productId | filter | eq | | | subscriptionId | filter | eq | | | apiId | filter | eq | | | operationId | filter | eq | | | callCountSuccess | select | | | | callCountBlocked | select | | | | callCountFailed | select | | | | callCountOther | select | | | | bandwidth | select, orderBy | | | | cacheHitsCount | select | | | | cacheMissCount | select | | | | apiTimeAvg | select | | | | apiTimeMin | select | | | | apiTimeMax | select | | | | serviceTimeAvg | select | | | | serviceTimeMin | select | | | | serviceTimeMax | select | | | "
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData order by query option."
+ },
+ {
+ "name": "interval",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "format": "duration",
+ "description": "By time interval. Interval must be multiple of 15 minutes and may not be zero. The value should be in ISO 8601 format (http://en.wikipedia.org/wiki/ISO_8601#Durations).This code can be used to convert TimeSpan to a valid interval string: XmlConvert.ToString(new TimeSpan(hours, minutes, seconds))."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Report record.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/ReportCollection"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/ReportRecordContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/reports/byRequest": {
+ "get": {
+ "tags": [
+ "Reports"
+ ],
+ "operationId": "Reports_ListByRequest",
+ "description": "Lists report records by Request.",
+ "x-ms-examples": {
+ "ApiManagementGetReportsByRequest": {
+ "$ref": "./examples/ApiManagementGetReportsByRequest.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| timestamp | filter | ge, le | | | apiId | filter | eq | | | operationId | filter | eq | | | productId | filter | eq | | | userId | filter | eq | | | apiRegion | filter | eq | | | subscriptionId | filter | eq | | "
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Report record.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/RequestReportCollection"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-odata": "./definitions.json#/definitions/RequestReportRecordContract"
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimsubscriptions.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimsubscriptions.json
new file mode 100644
index 000000000000..977d3c9f4b3a
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimsubscriptions.json
@@ -0,0 +1,523 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on Subscription entity associated with your Azure API Management deployment. The Subscription entity represents the association between a user and a product in API Management. Products contain one or more APIs, and once a product is published, developers can subscribe to the product and begin to use the product’s APIs.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/subscriptions": {
+ "get": {
+ "tags": [
+ "Subscription"
+ ],
+ "operationId": "Subscription_List",
+ "description": "Lists all subscriptions of the API Management service instance.",
+ "x-ms-examples": {
+ "ApiManagementListSubscriptions": {
+ "$ref": "./examples/ApiManagementListSubscriptions.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || stateComment | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || ownerId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || scope | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || userId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || productId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || state | filter | eq | || user | expand | | |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A collection of the Subscription entities for the specified API Management service instance.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SubscriptionCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/SubscriptionContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/subscriptions/{sid}": {
+ "head": {
+ "tags": [
+ "Subscription"
+ ],
+ "operationId": "Subscription_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the apimanagement subscription specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadSubscription": {
+ "$ref": "./examples/ApiManagementHeadSubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionEntityIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified apimanagement subscription entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Subscription"
+ ],
+ "operationId": "Subscription_Get",
+ "description": "Gets the specified Subscription entity.",
+ "x-ms-examples": {
+ "ApiManagementGetSubscription": {
+ "$ref": "./examples/ApiManagementGetSubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionEntityIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Subscription entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SubscriptionContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Subscription"
+ ],
+ "operationId": "Subscription_CreateOrUpdate",
+ "description": "Creates or updates the subscription of specified user to the specified product.",
+ "x-ms-examples": {
+ "ApiManagementCreateSubscription": {
+ "$ref": "./examples/ApiManagementCreateSubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionEntityIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SubscriptionCreateParameters"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NotifySubscriptionStateChangeParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AppTypeParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The user was successfully subscribed to the product.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SubscriptionContract"
+ }
+ },
+ "200": {
+ "description": "The user already subscribed to the product.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SubscriptionContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Subscription"
+ ],
+ "operationId": "Subscription_Update",
+ "description": "Updates the details of a subscription specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementUpdateSubscription": {
+ "$ref": "./examples/ApiManagementUpdateSubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionEntityIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SubscriptionUpdateParameters"
+ },
+ "description": "Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/NotifySubscriptionStateChangeParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AppTypeParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The subscription details were successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SubscriptionContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Subscription"
+ ],
+ "operationId": "Subscription_Delete",
+ "description": "Deletes the specified subscription.",
+ "x-ms-examples": {
+ "ApiManagementDeleteSubscription": {
+ "$ref": "./examples/ApiManagementDeleteSubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionEntityIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The subscription details were successfully deleted."
+ },
+ "204": {
+ "description": "The subscription details were successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/subscriptions/{sid}/regeneratePrimaryKey": {
+ "post": {
+ "tags": [
+ "Subscription"
+ ],
+ "operationId": "Subscription_RegeneratePrimaryKey",
+ "description": "Regenerates primary key of existing subscription of the API Management service instance.",
+ "x-ms-examples": {
+ "ApiManagementSubscriptionRegeneratePrimaryKey": {
+ "$ref": "./examples/ApiManagementSubscriptionRegeneratePrimaryKey.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionEntityIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "The primary key was successfully regenerated."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/subscriptions/{sid}/regenerateSecondaryKey": {
+ "post": {
+ "tags": [
+ "Subscription"
+ ],
+ "operationId": "Subscription_RegenerateSecondaryKey",
+ "description": "Regenerates secondary key of existing subscription of the API Management service instance.",
+ "x-ms-examples": {
+ "ApiManagementSubscriptionRegenerateSecondaryKey": {
+ "$ref": "./examples/ApiManagementSubscriptionRegenerateSecondaryKey.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionEntityIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "The secondary key was successfully regenerated."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/subscriptions/{sid}/listSecrets": {
+ "post": {
+ "tags": [
+ "Subscription"
+ ],
+ "operationId": "Subscription_ListSecrets",
+ "description": "Gets the specified Subscription keys.",
+ "x-ms-examples": {
+ "ApiManagementSubscriptionListSecrets": {
+ "$ref": "./examples/ApiManagementSubscriptionListSecrets.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionEntityIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains subscription keys.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SubscriptionKeysContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimtagresources.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimtagresources.json
new file mode 100644
index 000000000000..af73144bc8fc
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimtagresources.json
@@ -0,0 +1,99 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for querying APIs. Operations and Products by tags in your Azure API Management deployment.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/tagResources": {
+ "get": {
+ "tags": [
+ "TagResource"
+ ],
+ "operationId": "TagResource_ListByService",
+ "description": "Lists a collection of resources associated with tags.",
+ "x-ms-examples": {
+ "ApiManagementListTagResources": {
+ "$ref": "./examples/ApiManagementListTagResources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| aid | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || apiName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || apiRevision | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || path | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || serviceUrl | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || method | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || urlTemplate | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || terms | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || state | filter | eq | || isCurrent | filter | eq | |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of TagResource entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagResourceCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/TagResourceContract"
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimtags.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimtags.json
new file mode 100644
index 000000000000..d40b87031061
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimtags.json
@@ -0,0 +1,383 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on Tag entity in your Azure API Management deployment. Tags can be assigned to APIs, Operations and Products.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/tags": {
+ "get": {
+ "tags": [
+ "Tag"
+ ],
+ "operationId": "Tag_ListByService",
+ "description": "Lists a collection of tags defined within a service instance.",
+ "x-ms-examples": {
+ "ApiManagementListTags": {
+ "$ref": "./examples/ApiManagementListTags.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "name": "scope",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Scope like 'apis', 'products' or 'apis/{apiId}"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Tag entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/TagContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tags/{tagId}": {
+ "head": {
+ "tags": [
+ "Tag"
+ ],
+ "operationId": "Tag_GetEntityState",
+ "description": "Gets the entity state version of the tag specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadTag": {
+ "$ref": "./examples/ApiManagementHeadTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Empty response body, ETag header entity state version.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Tag"
+ ],
+ "operationId": "Tag_Get",
+ "description": "Gets the details of the tag specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetTag": {
+ "$ref": "./examples/ApiManagementGetTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the specified Tag entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Tag"
+ ],
+ "operationId": "Tag_CreateOrUpdate",
+ "description": "Creates a tag.",
+ "x-ms-examples": {
+ "ApiManagementCreateTag": {
+ "$ref": "./examples/ApiManagementCreateTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagCreateUpdateParameters"
+ },
+ "description": "Create parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Tag was created successfully.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagContract"
+ }
+ },
+ "200": {
+ "description": "Tag already exists.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Tag"
+ ],
+ "operationId": "Tag_Update",
+ "description": "Updates the details of the tag specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementUpdateTag": {
+ "$ref": "./examples/ApiManagementUpdateTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagCreateUpdateParameters"
+ },
+ "description": "Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The tag details were successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TagContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Tag"
+ ],
+ "operationId": "Tag_Delete",
+ "description": "Deletes specific tag of the API Management service instance.",
+ "x-ms-examples": {
+ "ApiManagementDeleteTag": {
+ "$ref": "./examples/ApiManagementDeleteTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TagIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Tag successfully removed"
+ },
+ "204": {
+ "description": "Tag successfully removed by previous request or does not exist"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimtenant.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimtenant.json
new file mode 100644
index 000000000000..9450224bdf04
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimtenant.json
@@ -0,0 +1,749 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on tenant entity associated with your Azure API Management deployment. Using this entity you can manage properties and configuration that apply to the entire API Management service instance.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/tenant/{accessName}": {
+ "head": {
+ "tags": [
+ "TenantAccess"
+ ],
+ "operationId": "TenantAccess_GetEntityTag",
+ "description": "Tenant access metadata",
+ "x-ms-examples": {
+ "ApiManagementHeadTenantAccess": {
+ "$ref": "./examples/ApiManagementHeadTenantAccess.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AccessParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Operation completed successfully.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "TenantAccess"
+ ],
+ "operationId": "TenantAccess_Get",
+ "description": "Get tenant access information details without secrets.",
+ "x-ms-examples": {
+ "ApiManagementGetTenantAccess": {
+ "$ref": "./examples/ApiManagementGetTenantAccess.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AccessParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Tenant Access information.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AccessInformationContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "TenantAccess"
+ ],
+ "operationId": "TenantAccess_Update",
+ "description": "Update tenant access information details.",
+ "x-ms-examples": {
+ "ApiManagementUpdateTenantAccess": {
+ "$ref": "./examples/ApiManagementUpdateTenantAccess.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AccessInformationUpdateParameters"
+ },
+ "description": "Parameters supplied to retrieve the Tenant Access Information."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AccessParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Tenant Access information was updated successfully.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AccessInformationContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/{accessName}/regeneratePrimaryKey": {
+ "post": {
+ "tags": [
+ "TenantAccess"
+ ],
+ "operationId": "TenantAccess_RegeneratePrimaryKey",
+ "description": "Regenerate primary access key",
+ "x-ms-examples": {
+ "ApiManagementTenantAccessRegenerateKey": {
+ "$ref": "./examples/ApiManagementTenantAccessRegenerateKey.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AccessParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "The primary key was successfully regenerated."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/{accessName}/regenerateSecondaryKey": {
+ "post": {
+ "tags": [
+ "TenantAccess"
+ ],
+ "operationId": "TenantAccess_RegenerateSecondaryKey",
+ "description": "Regenerate secondary access key",
+ "x-ms-examples": {
+ "ApiManagementTenantAccessRegenerateKey": {
+ "$ref": "./examples/ApiManagementTenantAccessRegenerateKey.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AccessParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "The secondary key was successfully regenerated."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/{accessName}/listSecrets": {
+ "post": {
+ "tags": [
+ "TenantAccess"
+ ],
+ "operationId": "TenantAccess_ListSecrets",
+ "description": "Get tenant access information details.",
+ "x-ms-examples": {
+ "ApiManagementListSecretsTenantAccess": {
+ "$ref": "./examples/ApiManagementListSecretsTenantAccess.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AccessParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Tenant Access information.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AccessInformationContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/{accessName}/git": {
+ "get": {
+ "tags": [
+ "TenantAccessGit"
+ ],
+ "operationId": "TenantAccessGit_Get",
+ "description": "Gets the Git access configuration for the tenant. Without secrets.",
+ "x-ms-examples": {
+ "ApiManagementGetTenantAccess": {
+ "$ref": "./examples/ApiManagementGetTenantAccess.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AccessParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Git Access Information for the Service.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AccessInformationContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/{accessName}/git/regeneratePrimaryKey": {
+ "post": {
+ "tags": [
+ "TenantAccessGit"
+ ],
+ "operationId": "TenantAccessGit_RegeneratePrimaryKey",
+ "description": "Regenerate primary access key for GIT.",
+ "x-ms-examples": {
+ "ApiManagementTenantAccessRegenerateKey": {
+ "$ref": "./examples/ApiManagementTenantAccessRegenerateKey.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AccessParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "The primary key was successfully regenerated."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/{accessName}/git/regenerateSecondaryKey": {
+ "post": {
+ "tags": [
+ "TenantAccessGit"
+ ],
+ "operationId": "TenantAccessGit_RegenerateSecondaryKey",
+ "description": "Regenerate secondary access key for GIT.",
+ "x-ms-examples": {
+ "ApiManagementTenantAccessRegenerateKey": {
+ "$ref": "./examples/ApiManagementTenantAccessRegenerateKey.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AccessParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "The secondary key was successfully regenerated."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/{accessName}/git/listSecrets": {
+ "post": {
+ "tags": [
+ "TenantAccessGit"
+ ],
+ "operationId": "TenantAccessGit_ListSecrets",
+ "description": "Gets the Git access configuration for the tenant.",
+ "x-ms-examples": {
+ "ApiManagementListSecretsTenantAccess": {
+ "$ref": "./examples/ApiManagementListSecretsTenantAccess.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AccessParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Git Access Information for the Service.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/AccessInformationContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/{configurationName}/deploy": {
+ "post": {
+ "tags": [
+ "TenantConfiguration"
+ ],
+ "operationId": "TenantConfiguration_Deploy",
+ "description": "This operation applies changes from the specified Git branch to the configuration database. This is a long running operation and could take several minutes to complete.",
+ "externalDocs": {
+ "description": "To deploy any service configuration changes to the API Management service instance",
+ "url": "https://azure.microsoft.com/en-us/documentation/articles/api-management-configuration-repository-git/#to-deploy-any-service-configuration-changes-to-the-api-management-service-instance"
+ },
+ "x-ms-examples": {
+ "ApiManagementTenantConfigurationDeploy": {
+ "$ref": "./examples/ApiManagementTenantConfigurationDeploy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DeployConfigurationParameters"
+ },
+ "description": "Deploy Configuration parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ConfigurationParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted: Location header contains the URL where the status of the long running operation can be checked."
+ },
+ "200": {
+ "description": "Result of applying changes from Git branch to database.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OperationResultContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/{configurationName}/save": {
+ "post": {
+ "tags": [
+ "TenantConfiguration"
+ ],
+ "operationId": "TenantConfiguration_Save",
+ "description": "This operation creates a commit with the current configuration snapshot to the specified branch in the repository. This is a long running operation and could take several minutes to complete.",
+ "externalDocs": {
+ "description": "To save the service configuration to the Git repository",
+ "url": "https://azure.microsoft.com/en-us/documentation/articles/api-management-configuration-repository-git/#to-save-the-service-configuration-to-the-git-repository"
+ },
+ "x-ms-examples": {
+ "ApiManagementTenantConfigurationSave": {
+ "$ref": "./examples/ApiManagementTenantConfigurationSave.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SaveConfigurationParameter"
+ },
+ "description": "Save Configuration parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ConfigurationParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted: Location header contains the URL where the status of the long running operation can be checked."
+ },
+ "200": {
+ "description": "Result of creating a commit in the repository.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OperationResultContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/{configurationName}/validate": {
+ "post": {
+ "tags": [
+ "TenantConfiguration"
+ ],
+ "operationId": "TenantConfiguration_Validate",
+ "description": "This operation validates the changes in the specified Git branch. This is a long running operation and could take several minutes to complete.",
+ "x-ms-examples": {
+ "ApiManagementTenantConfigurationValidate": {
+ "$ref": "./examples/ApiManagementTenantConfigurationValidate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/DeployConfigurationParameters"
+ },
+ "description": "Validate Configuration parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ConfigurationParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted: Location header contains the URL where the status of the long running operation can be checked."
+ },
+ "200": {
+ "description": "Result of validating the changes in the specified Git branch.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/OperationResultContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/{configurationName}/syncState": {
+ "get": {
+ "tags": [
+ "TenantConfigurationSyncState"
+ ],
+ "operationId": "TenantConfiguration_GetSyncState",
+ "description": "Gets the status of the most recent synchronization between the configuration database and the Git repository.",
+ "x-ms-examples": {
+ "ApiManagementTenantAccessSyncState": {
+ "$ref": "./examples/ApiManagementTenantAccessSyncState.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ConfigurationParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Sync state result.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/TenantConfigurationSyncStateContract"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimusers.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimusers.json
new file mode 100644
index 000000000000..e3898d921ce7
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/apimusers.json
@@ -0,0 +1,724 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApiManagementClient",
+ "description": "Use these REST APIs for performing operations on User entity in Azure API Management deployment. The User entity in API Management represents the developers that call the APIs of the products to which they are subscribed.",
+ "version": "2020-06-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.ApiManagement/service/{serviceName}/users": {
+ "get": {
+ "tags": [
+ "User"
+ ],
+ "operationId": "User_ListByService",
+ "description": "Lists a collection of registered users in the specified service instance.",
+ "x-ms-examples": {
+ "ApiManagementListUsers": {
+ "$ref": "./examples/ApiManagementListUsers.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || firstName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || lastName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || email | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || state | filter | eq | || registrationDate | filter | ge, le, eq, ne, gt, lt | || note | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || groups | expand | | |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "name": "expandGroups",
+ "in": "query",
+ "type": "boolean",
+ "description": "Detailed Group in response."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of User entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/UserCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/UserContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users/{userId}": {
+ "head": {
+ "tags": [
+ "User"
+ ],
+ "operationId": "User_GetEntityTag",
+ "description": "Gets the entity state (Etag) version of the user specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementHeadUser": {
+ "$ref": "./examples/ApiManagementHeadUser.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Specified user entity exists and current entity state version is present in the ETag header.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "User"
+ ],
+ "operationId": "User_Get",
+ "description": "Gets the details of the user specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementGetUser": {
+ "$ref": "./examples/ApiManagementGetUser.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Gets the specified user entity.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/UserContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "User"
+ ],
+ "operationId": "User_CreateOrUpdate",
+ "description": "Creates or Updates a user.",
+ "x-ms-examples": {
+ "ApiManagementCreateUser": {
+ "$ref": "./examples/ApiManagementCreateUser.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/UserCreateParameters"
+ },
+ "description": "Create or update parameters."
+ },
+ {
+ "name": "notify",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Send an Email notification to the User."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "User was successfully created.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/UserContract"
+ },
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "User was successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/UserContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "User"
+ ],
+ "operationId": "User_Update",
+ "description": "Updates the details of the user specified by its identifier.",
+ "x-ms-examples": {
+ "ApiManagementUpdateUser": {
+ "$ref": "./examples/ApiManagementUpdateUser.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/UserUpdateParameters"
+ },
+ "description": "Update parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "User was successfully updated.",
+ "headers": {
+ "ETag": {
+ "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "./definitions.json#/definitions/UserContract"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "User"
+ ],
+ "operationId": "User_Delete",
+ "description": "Deletes specific user.",
+ "x-ms-examples": {
+ "ApiManagementDeleteUser": {
+ "$ref": "./examples/ApiManagementDeleteUser.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "name": "deleteSubscriptions",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether to delete user's subscription or not."
+ },
+ {
+ "name": "notify",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Send an Account Closed Email notification to the User."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/IfMatchRequiredParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AppTypeParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The user details were successfully deleted."
+ },
+ "204": {
+ "description": "The user details were successfully deleted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users/{userId}/generateSsoUrl": {
+ "post": {
+ "tags": [
+ "Users"
+ ],
+ "operationId": "User_GenerateSsoUrl",
+ "description": "Retrieves a redirection URL containing an authentication token for signing a given user into the developer portal.",
+ "x-ms-examples": {
+ "ApiManagementUserGenerateSsoUrl": {
+ "$ref": "./examples/ApiManagementUserGenerateSsoUrl.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the single sign-on URL.",
+ "schema": {
+ "x-ms-client-flatten": true,
+ "$ref": "./definitions.json#/definitions/GenerateSsoUrlResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users/{userId}/groups": {
+ "get": {
+ "tags": [
+ "UserGroup"
+ ],
+ "operationId": "UserGroup_List",
+ "description": "Lists all user groups.",
+ "x-ms-examples": {
+ "ApiManagementListUserGroups": {
+ "$ref": "./examples/ApiManagementListUserGroups.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|------------------------|-----------------------------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith || description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Group entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/GroupCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/GroupContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users/{userId}/subscriptions": {
+ "get": {
+ "tags": [
+ "UserSubscription"
+ ],
+ "operationId": "UserSubscription_List",
+ "description": "Lists the collection of subscriptions of the specified user.",
+ "x-ms-examples": {
+ "ApiManagementListUserSubscriptions": {
+ "$ref": "./examples/ApiManagementListUserSubscriptions.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "| Field | Usage | Supported operators | Supported functions ||-------------|------------------------|-----------------------------------||name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith ||displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith ||stateComment | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith ||ownerId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith ||scope | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith ||userId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith ||productId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/TopQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SkipQueryParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists a collection of Subscription entities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/SubscriptionCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "./definitions.json#/definitions/SubscriptionContract"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users/{userId}/identities": {
+ "get": {
+ "tags": [
+ "UserIdentity"
+ ],
+ "operationId": "UserIdentities_List",
+ "description": "List of all user identities.",
+ "x-ms-examples": {
+ "ApiManagementListUserIdentities": {
+ "$ref": "./examples/ApiManagementListUserIdentities.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists of User Identities.",
+ "schema": {
+ "$ref": "./definitions.json#/definitions/UserIdentityCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users/{userId}/token": {
+ "post": {
+ "tags": [
+ "UserToken"
+ ],
+ "operationId": "User_GetSharedAccessToken",
+ "description": "Gets the Shared Access Authorization Token for the User.",
+ "x-ms-examples": {
+ "ApiManagementUserToken": {
+ "$ref": "./examples/ApiManagementUserToken.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./definitions.json#/definitions/UserTokenParameters"
+ },
+ "description": "Create Authorization Token parameters."
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response body contains the authorization token for the user.",
+ "schema": {
+ "x-ms-client-flatten": true,
+ "$ref": "./definitions.json#/definitions/UserTokenResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users/{userId}/confirmations/password/send": {
+ "post": {
+ "tags": [
+ "UserConfirmationPasswordSend"
+ ],
+ "operationId": "UserConfirmationPassword_Send",
+ "description": "Sends confirmation",
+ "x-ms-examples": {
+ "ApiManagementUserConfirmationPasswordSend": {
+ "$ref": "./examples/ApiManagementUserConfirmationPasswordSend.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "./apimanagement.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/UserIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "./apimanagement.json#/parameters/AppTypeParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Notification successfully sent"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {},
+ "parameters": {}
+}
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
new file mode 100644
index 000000000000..5e8dd300c1d9
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/definitions.json
@@ -0,0 +1,5907 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-06-01-preview",
+ "description": "A spec file containing all the definitions",
+ "title": "Definitions file"
+ },
+ "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": {
+ "AccessInformationContract": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identifier."
+ },
+ "primaryKey": {
+ "type": "string",
+ "description": "Primary access key. This property will not be filled on 'GET' operations! Use '/listSecrets' POST request to get the value."
+ },
+ "secondaryKey": {
+ "type": "string",
+ "description": "Secondary access key. This property will not be filled on 'GET' operations! Use '/listSecrets' POST request to get the value."
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "Determines whether direct access is enabled."
+ }
+ },
+ "description": "Tenant access information contract of the API Management service."
+ },
+ "AccessInformationUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AccessInformationUpdateParameterProperties",
+ "description": "Tenant access information update parameter properties."
+ }
+ },
+ "description": "Tenant access information update parameters."
+ },
+ "AccessInformationUpdateParameterProperties": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Determines whether direct access is enabled."
+ }
+ },
+ "description": "Tenant access information update parameters of the API Management service"
+ },
+ "ApiCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApiContract"
+ },
+ "description": "Page values.",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any.",
+ "readOnly": true
+ }
+ },
+ "description": "Paged Api list representation."
+ },
+ "ApiContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApiContractProperties",
+ "description": "Api entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Api details."
+ },
+ "ApiContractProperties": {
+ "properties": {
+ "sourceApiId": {
+ "type": "string",
+ "description": "API identifier of the source API."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "API name. Must be 1 to 300 characters long.",
+ "minLength": 1,
+ "maxLength": 300
+ },
+ "serviceUrl": {
+ "type": "string",
+ "description": "Absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.",
+ "minLength": 0,
+ "maxLength": 2000
+ },
+ "path": {
+ "type": "string",
+ "description": "Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.",
+ "minLength": 0,
+ "maxLength": 400
+ },
+ "protocols": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "http",
+ "https"
+ ],
+ "x-ms-enum": {
+ "name": "Protocol",
+ "modelAsString": false
+ }
+ },
+ "description": "Describes on which protocols the operations in this API can be invoked."
+ },
+ "apiVersionSet": {
+ "description": "Version set details",
+ "$ref": "#/definitions/ApiVersionSetContractDetails"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApiEntityBaseContract"
+ }
+ ],
+ "required": [
+ "path"
+ ],
+ "description": "Api Entity Properties"
+ },
+ "ApiCreateOrUpdateParameter": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApiCreateOrUpdateProperties",
+ "description": "Api entity create of update properties."
+ }
+ },
+ "description": "API Create or Update Parameters."
+ },
+ "ApiCreateOrUpdateProperties": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "Content value when Importing an API."
+ },
+ "format": {
+ "type": "string",
+ "description": "Format of the Content in which the API is getting imported.",
+ "enum": [
+ "wadl-xml",
+ "wadl-link-json",
+ "swagger-json",
+ "swagger-link-json",
+ "wsdl",
+ "wsdl-link",
+ "openapi",
+ "openapi+json",
+ "openapi-link",
+ "openapi+json-link"
+ ],
+ "x-ms-enum": {
+ "name": "ContentFormat",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "wadl-xml",
+ "description": "The contents are inline and Content type is a WADL document."
+ },
+ {
+ "value": "wadl-link-json",
+ "description": "The WADL document is hosted on a publicly accessible internet address."
+ },
+ {
+ "value": "swagger-json",
+ "description": "The contents are inline and Content Type is a OpenApi 2.0 Document."
+ },
+ {
+ "value": "swagger-link-json",
+ "description": "The Open Api 2.0 document is hosted on a publicly accessible internet address."
+ },
+ {
+ "value": "wsdl",
+ "description": "The contents are inline and the document is a WSDL/Soap document."
+ },
+ {
+ "value": "wsdl-link",
+ "description": "The WSDL document is hosted on a publicly accessible internet address."
+ },
+ {
+ "value": "openapi",
+ "description": "The contents are inline and Content Type is a OpenApi 3.0 Document in YAML format."
+ },
+ {
+ "value": "openapi+json",
+ "description": "The contents are inline and Content Type is a OpenApi 3.0 Document in JSON format."
+ },
+ {
+ "value": "openapi-link",
+ "description": "The Open Api 3.0 document is hosted on a publicly accessible internet address."
+ },
+ {
+ "value": "openapi+json-link",
+ "description": "The Open Api 3.0 Json document is hosted on a publicly accessible internet address."
+ }
+ ]
+ }
+ },
+ "wsdlSelector": {
+ "type": "object",
+ "description": "Criteria to limit import of WSDL to a subset of the document.",
+ "properties": {
+ "wsdlServiceName": {
+ "type": "string",
+ "description": "Name of service to import from WSDL"
+ },
+ "wsdlEndpointName": {
+ "type": "string",
+ "description": "Name of endpoint(port) to import from WSDL"
+ }
+ }
+ },
+ "apiType": {
+ "type": "string",
+ "description": "Type of Api to create. \n * `http` creates a SOAP to REST API \n * `soap` creates a SOAP pass-through API .",
+ "enum": [
+ "http",
+ "soap"
+ ],
+ "x-ms-client-name": "SoapApiType",
+ "x-ms-enum": {
+ "name": "SoapApiType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "http",
+ "description": "Imports a SOAP API having a RESTful front end.",
+ "name": "SoapToRest"
+ },
+ {
+ "value": "soap",
+ "description": "Imports the Soap API having a SOAP front end.",
+ "name": "SoapPassThrough"
+ }
+ ]
+ }
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApiContractProperties"
+ }
+ ],
+ "description": "Api Create or Update Properties."
+ },
+ "ApiEntityBaseContract": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of the API. May include HTML formatting tags."
+ },
+ "authenticationSettings": {
+ "$ref": "#/definitions/AuthenticationSettingsContract",
+ "description": "Collection of authentication settings included into this API."
+ },
+ "subscriptionKeyParameterNames": {
+ "$ref": "#/definitions/SubscriptionKeyParameterNamesContract",
+ "description": "Protocols over which API is made available."
+ },
+ "type": {
+ "type": "string",
+ "description": "Type of API.",
+ "enum": [
+ "http",
+ "soap"
+ ],
+ "x-ms-client-name": "ApiType",
+ "x-ms-enum": {
+ "name": "ApiType",
+ "modelAsString": true
+ }
+ },
+ "apiRevision": {
+ "type": "string",
+ "description": "Describes the Revision of the Api. If no value is provided, default revision 1 is created",
+ "minLength": 1,
+ "maxLength": 100
+ },
+ "apiVersion": {
+ "type": "string",
+ "description": "Indicates the Version identifier of the API if the API is versioned",
+ "maxLength": 100
+ },
+ "isCurrent": {
+ "type": "boolean",
+ "description": "Indicates if API revision is current api revision."
+ },
+ "isOnline": {
+ "type": "boolean",
+ "description": "Indicates if API revision is accessible via the gateway.",
+ "readOnly": true
+ },
+ "apiRevisionDescription": {
+ "type": "string",
+ "description": "Description of the Api Revision.",
+ "maxLength": 256
+ },
+ "apiVersionDescription": {
+ "type": "string",
+ "description": "Description of the Api Version.",
+ "maxLength": 256
+ },
+ "apiVersionSetId": {
+ "type": "string",
+ "description": "A resource identifier for the related ApiVersionSet."
+ },
+ "subscriptionRequired": {
+ "type": "boolean",
+ "description": "Specifies whether an API or Product subscription is required for accessing the API."
+ }
+ },
+ "description": "API base contract details."
+ },
+ "ApiExportResult": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "ResourceId of the API which was exported."
+ },
+ "format": {
+ "type": "string",
+ "enum": [
+ "swagger-link-json",
+ "wadl-link-json",
+ "wsdl-link+xml",
+ "openapi-link"
+ ],
+ "x-ms-client-name": "ExportResultFormat",
+ "x-ms-enum": {
+ "name": "ExportResultFormat",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "swagger-link-json",
+ "description": "The Api Definition is exported in OpenApi Specification 2.0 format to the Storage Blob.",
+ "name": "Swagger"
+ },
+ {
+ "value": "wsdl-link+xml",
+ "description": "The Api Definition is exported in WSDL Schema to Storage Blob. This is only supported for APIs of Type `soap`",
+ "name": "Wsdl"
+ },
+ {
+ "value": "wadl-link-json",
+ "description": "Export the Api Definition in WADL Schema to Storage Blob.",
+ "name": "Wadl"
+ },
+ {
+ "value": "openapi-link",
+ "description": "Export the Api Definition in OpenApi Specification 3.0 to Storage Blob.",
+ "name": "OpenApi"
+ }
+ ]
+ },
+ "description": "Format in which the Api Details are exported to the Storage Blob with Sas Key valid for 5 minutes."
+ },
+ "value": {
+ "type": "object",
+ "description": "The object defining the schema of the exported Api Detail",
+ "properties": {
+ "link": {
+ "type": "string",
+ "description": "Link to the Storage Blob containing the result of the export operation. The Blob Uri is only valid for 5 minutes."
+ }
+ }
+ }
+ },
+ "description": "API Export result."
+ },
+ "ApiReleaseCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApiReleaseContract"
+ },
+ "description": "Page values.",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any.",
+ "readOnly": true
+ }
+ },
+ "description": "Paged ApiRelease list representation."
+ },
+ "ApiReleaseContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApiReleaseContractProperties",
+ "description": "ApiRelease entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "ApiRelease details."
+ },
+ "ApiReleaseContractProperties": {
+ "properties": {
+ "apiId": {
+ "type": "string",
+ "description": "Identifier of the API the release belongs to."
+ },
+ "createdDateTime": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The time the API was released. The date conforms to the following format: yyyy-MM-ddTHH:mm:ssZ as specified by the ISO 8601 standard."
+ },
+ "updatedDateTime": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The time the API release was updated."
+ },
+ "notes": {
+ "type": "string",
+ "description": "Release Notes"
+ }
+ },
+ "description": "API Release details"
+ },
+ "ApiRevisionCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApiRevisionContract"
+ },
+ "description": "Page values.",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any.",
+ "readOnly": true
+ }
+ },
+ "description": "Paged Api Revision list representation."
+ },
+ "ApiRevisionContract": {
+ "properties": {
+ "apiId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Identifier of the API Revision."
+ },
+ "apiRevision": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 100,
+ "readOnly": true,
+ "description": "Revision number of API."
+ },
+ "createdDateTime": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The time the API Revision was created. The date conforms to the following format: yyyy-MM-ddTHH:mm:ssZ as specified by the ISO 8601 standard."
+ },
+ "updatedDateTime": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The time the API Revision were updated. The date conforms to the following format: yyyy-MM-ddTHH:mm:ssZ as specified by the ISO 8601 standard."
+ },
+ "description": {
+ "type": "string",
+ "readOnly": true,
+ "maxLength": 256,
+ "description": "Description of the API Revision."
+ },
+ "privateUrl": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Gateway URL for accessing the non-current API Revision."
+ },
+ "isOnline": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "Indicates if API revision is the current api revision."
+ },
+ "isCurrent": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "Indicates if API revision is accessible via the gateway."
+ }
+ },
+ "description": "Summary of revision metadata."
+ },
+ "ApiRevisionInfoContract": {
+ "description": "Object used to create an API Revision or Version based on an existing API Revision",
+ "properties": {
+ "sourceApiId": {
+ "type": "string",
+ "description": "Resource identifier of API to be used to create the revision from."
+ },
+ "apiVersionName": {
+ "type": "string",
+ "maxLength": 100,
+ "description": "Version identifier for the new API Version."
+ },
+ "apiRevisionDescription": {
+ "type": "string",
+ "maxLength": 256,
+ "description": "Description of new API Revision."
+ },
+ "apiVersionSet": {
+ "description": "Version set details",
+ "$ref": "#/definitions/ApiVersionSetContractDetails"
+ }
+ }
+ },
+ "ApiTagResourceContractProperties": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "API identifier in the form /apis/{apiId}."
+ },
+ "name": {
+ "type": "string",
+ "description": "API name.",
+ "minLength": 1,
+ "maxLength": 300
+ },
+ "serviceUrl": {
+ "type": "string",
+ "description": "Absolute URL of the backend service implementing this API.",
+ "minLength": 1,
+ "maxLength": 2000
+ },
+ "path": {
+ "type": "string",
+ "description": "Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.",
+ "minLength": 0,
+ "maxLength": 400
+ },
+ "protocols": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "http",
+ "https"
+ ],
+ "x-ms-enum": {
+ "name": "Protocol",
+ "modelAsString": false
+ }
+ },
+ "description": "Describes on which protocols the operations in this API can be invoked."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./definitions.json#/definitions/ApiEntityBaseContract"
+ }
+ ],
+ "description": "API contract properties for the Tag Resources."
+ },
+ "ApiUpdateContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApiContractUpdateProperties",
+ "description": "Properties of the API entity that can be updated."
+ }
+ },
+ "description": "API update contract details."
+ },
+ "ApiContractUpdateProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "API name.",
+ "minLength": 1,
+ "maxLength": 300
+ },
+ "serviceUrl": {
+ "type": "string",
+ "description": "Absolute URL of the backend service implementing this API.",
+ "minLength": 1,
+ "maxLength": 2000
+ },
+ "path": {
+ "type": "string",
+ "description": "Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.",
+ "minLength": 0,
+ "maxLength": 400
+ },
+ "protocols": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "http",
+ "https"
+ ],
+ "x-ms-enum": {
+ "name": "Protocol",
+ "modelAsString": false
+ }
+ },
+ "description": "Describes on which protocols the operations in this API can be invoked."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApiEntityBaseContract"
+ }
+ ],
+ "description": "API update contract properties."
+ },
+ "ApiVersionSetCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApiVersionSetContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Api Version Set list representation."
+ },
+ "ApiVersionSetContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApiVersionSetContractProperties",
+ "description": "Api VersionSet contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Api Version Set Contract details."
+ },
+ "ApiVersionSetContractDetails": {
+ "description": "An API Version Set contains the common configuration for a set of API Versions relating ",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identifier for existing API Version Set. Omit this value to create a new Version Set."
+ },
+ "name": {
+ "type": "string",
+ "description": "The display Name of the API Version Set."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of API Version Set."
+ },
+ "versioningScheme": {
+ "type": "string",
+ "description": "An value that determines where the API Version identifer will be located in a HTTP request.",
+ "enum": [
+ "Segment",
+ "Query",
+ "Header"
+ ]
+ },
+ "versionQueryName": {
+ "type": "string",
+ "description": "Name of query parameter that indicates the API Version if versioningScheme is set to `query`."
+ },
+ "versionHeaderName": {
+ "type": "string",
+ "description": "Name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`."
+ }
+ }
+ },
+ "ApiVersionSetContractProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Name of API Version Set",
+ "minLength": 1,
+ "maxLength": 100
+ },
+ "versioningScheme": {
+ "type": "string",
+ "description": "An value that determines where the API Version identifer will be located in a HTTP request.",
+ "enum": [
+ "Segment",
+ "Query",
+ "Header"
+ ],
+ "x-ms-enum": {
+ "name": "versioningScheme",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Segment",
+ "description": "The API Version is passed in a path segment."
+ },
+ {
+ "value": "Query",
+ "description": "The API Version is passed in a query parameter."
+ },
+ {
+ "value": "Header",
+ "description": "The API Version is passed in a HTTP header."
+ }
+ ]
+ }
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApiVersionSetEntityBase"
+ }
+ ],
+ "required": [
+ "displayName",
+ "versioningScheme"
+ ],
+ "description": "Properties of an API Version Set."
+ },
+ "ApiVersionSetEntityBase": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of API Version Set."
+ },
+ "versionQueryName": {
+ "type": "string",
+ "description": "Name of query parameter that indicates the API Version if versioningScheme is set to `query`.",
+ "minLength": 1,
+ "maxLength": 100
+ },
+ "versionHeaderName": {
+ "type": "string",
+ "description": "Name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`.",
+ "minLength": 1,
+ "maxLength": 100
+ }
+ },
+ "description": "Api Version set base parameters"
+ },
+ "ApiVersionSetUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApiVersionSetUpdateParametersProperties",
+ "description": "Parameters to update or create an Api Version Set Contract."
+ }
+ },
+ "description": "Parameters to update or create an Api Version Set Contract."
+ },
+ "ApiVersionSetUpdateParametersProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Name of API Version Set",
+ "minLength": 1,
+ "maxLength": 100
+ },
+ "versioningScheme": {
+ "type": "string",
+ "description": "An value that determines where the API Version identifer will be located in a HTTP request.",
+ "enum": [
+ "Segment",
+ "Query",
+ "Header"
+ ],
+ "x-ms-enum": {
+ "name": "versioningScheme",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Segment",
+ "description": "The API Version is passed in a path segment."
+ },
+ {
+ "value": "Query",
+ "description": "The API Version is passed in a query parameter."
+ },
+ {
+ "value": "Header",
+ "description": "The API Version is passed in a HTTP header."
+ }
+ ]
+ }
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApiVersionSetEntityBase"
+ }
+ ],
+ "description": "Properties used to create or update an API Version Set."
+ },
+ "AuthenticationSettingsContract": {
+ "properties": {
+ "oAuth2": {
+ "$ref": "#/definitions/OAuth2AuthenticationSettingsContract",
+ "description": "OAuth2 Authentication settings"
+ },
+ "openid": {
+ "$ref": "#/definitions/OpenIdAuthenticationSettingsContract",
+ "description": "OpenID Connect Authentication Settings"
+ }
+ },
+ "description": "API Authentication Settings."
+ },
+ "AuthorizationServerCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AuthorizationServerContract"
+ },
+ "description": "Page values."
+ },
+ "count": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total record count number across all pages."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged OAuth2 Authorization Servers list representation."
+ },
+ "AuthorizationServerContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AuthorizationServerContractProperties",
+ "description": "Properties of the External OAuth authorization server Contract."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "External OAuth authorization server settings."
+ },
+ "AuthorizationServerContractBaseProperties": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of the authorization server. Can contain HTML formatting tags."
+ },
+ "authorizationMethods": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "HEAD",
+ "OPTIONS",
+ "TRACE",
+ "GET",
+ "POST",
+ "PUT",
+ "PATCH",
+ "DELETE"
+ ],
+ "x-ms-enum": {
+ "name": "AuthorizationMethod",
+ "modelAsString": false
+ }
+ },
+ "description": "HTTP verbs supported by the authorization endpoint. GET must be always present. POST is optional."
+ },
+ "clientAuthenticationMethod": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "Basic",
+ "Body"
+ ],
+ "x-ms-enum": {
+ "name": "ClientAuthenticationMethod",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Basic",
+ "description": "Basic Client Authentication method."
+ },
+ {
+ "value": "Body",
+ "description": "Body based Authentication method."
+ }
+ ]
+ }
+ },
+ "description": "Method of authentication supported by the token endpoint of this authorization server. Possible values are Basic and/or Body. When Body is specified, client credentials and other parameters are passed within the request body in the application/x-www-form-urlencoded format."
+ },
+ "tokenBodyParameters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TokenBodyParameterContract"
+ },
+ "description": "Additional parameters required by the token endpoint of this authorization server represented as an array of JSON objects with name and value string properties, i.e. {\"name\" : \"name value\", \"value\": \"a value\"}."
+ },
+ "tokenEndpoint": {
+ "type": "string",
+ "description": "OAuth token endpoint. Contains absolute URI to entity being referenced.",
+ "externalDocs": {
+ "url": "http://tools.ietf.org/html/rfc6749#section-3.1"
+ }
+ },
+ "supportState": {
+ "type": "boolean",
+ "description": "If true, authorization server will include state parameter from the authorization request to its response. Client may use state parameter to raise protocol security.",
+ "externalDocs": {
+ "url": "http://tools.ietf.org/html/rfc6749#section-3.1"
+ }
+ },
+ "defaultScope": {
+ "type": "string",
+ "description": "Access token scope that is going to be requested by default. Can be overridden at the API level. Should be provided in the form of a string containing space-delimited values.",
+ "externalDocs": {
+ "url": "http://tools.ietf.org/html/rfc6749#section-3.3"
+ }
+ },
+ "bearerTokenSendingMethods": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "authorizationHeader",
+ "query"
+ ],
+ "x-ms-enum": {
+ "name": "BearerTokenSendingMethod",
+ "modelAsString": true
+ }
+ },
+ "description": "Specifies the mechanism by which access token is passed to the API. ",
+ "externalDocs": {
+ "url": "http://tools.ietf.org/html/rfc6749#section-4"
+ }
+ },
+ "resourceOwnerUsername": {
+ "type": "string",
+ "description": "Can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner username."
+ },
+ "resourceOwnerPassword": {
+ "type": "string",
+ "description": "Can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner password."
+ }
+ },
+ "description": "External OAuth authorization server Update settings contract."
+ },
+ "AuthorizationServerContractProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "User-friendly authorization server name.",
+ "minLength": 1,
+ "maxLength": 50
+ },
+ "clientRegistrationEndpoint": {
+ "type": "string",
+ "description": "Optional reference to a page where client or app registration for this authorization server is performed. Contains absolute URL to entity being referenced."
+ },
+ "authorizationEndpoint": {
+ "type": "string",
+ "description": "OAuth authorization endpoint. See http://tools.ietf.org/html/rfc6749#section-3.2."
+ },
+ "grantTypes": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "authorizationCode",
+ "implicit",
+ "resourceOwnerPassword",
+ "clientCredentials"
+ ],
+ "x-ms-enum": {
+ "name": "GrantType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "authorizationCode",
+ "description": "Authorization Code Grant flow as described https://tools.ietf.org/html/rfc6749#section-4.1."
+ },
+ {
+ "value": "implicit",
+ "description": "Implicit Code Grant flow as described https://tools.ietf.org/html/rfc6749#section-4.2."
+ },
+ {
+ "value": "resourceOwnerPassword",
+ "description": "Resource Owner Password Grant flow as described https://tools.ietf.org/html/rfc6749#section-4.3."
+ },
+ {
+ "value": "clientCredentials",
+ "description": "Client Credentials Grant flow as described https://tools.ietf.org/html/rfc6749#section-4.4."
+ }
+ ]
+ }
+ },
+ "description": "Form of an authorization grant, which the client uses to request the access token.",
+ "externalDocs": {
+ "url": "http://tools.ietf.org/html/rfc6749#section-4"
+ }
+ },
+ "clientId": {
+ "type": "string",
+ "description": "Client or app id registered with this authorization server."
+ },
+ "clientSecret": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "Client or app secret registered with this authorization server. This property will not be filled on 'GET' operations! Use '/listSecrets' POST request to get the value."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/AuthorizationServerContractBaseProperties"
+ }
+ ],
+ "required": [
+ "displayName",
+ "clientRegistrationEndpoint",
+ "authorizationEndpoint",
+ "clientId",
+ "grantTypes"
+ ],
+ "description": "External OAuth authorization server settings Properties."
+ },
+ "AuthorizationServerUpdateContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AuthorizationServerUpdateContractProperties",
+ "description": "Properties of the External OAuth authorization server update Contract."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "External OAuth authorization server settings."
+ },
+ "AuthorizationServerUpdateContractProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "User-friendly authorization server name.",
+ "minLength": 1,
+ "maxLength": 50
+ },
+ "clientRegistrationEndpoint": {
+ "type": "string",
+ "description": "Optional reference to a page where client or app registration for this authorization server is performed. Contains absolute URL to entity being referenced."
+ },
+ "authorizationEndpoint": {
+ "type": "string",
+ "description": "OAuth authorization endpoint. See http://tools.ietf.org/html/rfc6749#section-3.2."
+ },
+ "grantTypes": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "authorizationCode",
+ "implicit",
+ "resourceOwnerPassword",
+ "clientCredentials"
+ ],
+ "x-ms-enum": {
+ "name": "GrantType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "authorizationCode",
+ "description": "Authorization Code Grant flow as described https://tools.ietf.org/html/rfc6749#section-4.1."
+ },
+ {
+ "value": "implicit",
+ "description": "Implicit Code Grant flow as described https://tools.ietf.org/html/rfc6749#section-4.2."
+ },
+ {
+ "value": "resourceOwnerPassword",
+ "description": "Resource Owner Password Grant flow as described https://tools.ietf.org/html/rfc6749#section-4.3."
+ },
+ {
+ "value": "clientCredentials",
+ "description": "Client Credentials Grant flow as described https://tools.ietf.org/html/rfc6749#section-4.4."
+ }
+ ]
+ }
+ },
+ "description": "Form of an authorization grant, which the client uses to request the access token.",
+ "externalDocs": {
+ "url": "http://tools.ietf.org/html/rfc6749#section-4"
+ }
+ },
+ "clientId": {
+ "type": "string",
+ "description": "Client or app id registered with this authorization server."
+ },
+ "clientSecret": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "Client or app secret registered with this authorization server. This property will not be filled on 'GET' operations! Use '/listSecrets' POST request to get the value."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/AuthorizationServerContractBaseProperties"
+ }
+ ],
+ "description": "External OAuth authorization server Update settings contract."
+ },
+ "AuthorizationServerSecretsContract": {
+ "properties": {
+ "clientSecret": {
+ "type": "string",
+ "description": "oAuth Authorization Server Secrets."
+ },
+ "resourceOwnerUsername": {
+ "type": "string",
+ "description": "Can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner username."
+ },
+ "resourceOwnerPassword": {
+ "type": "string",
+ "description": "Can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner password."
+ }
+ },
+ "description": "OAuth Server Secrets Contract."
+ },
+ "BackendAuthorizationHeaderCredentials": {
+ "properties": {
+ "scheme": {
+ "type": "string",
+ "description": "Authentication Scheme name.",
+ "minLength": 1,
+ "maxLength": 100
+ },
+ "parameter": {
+ "type": "string",
+ "description": "Authentication Parameter value.",
+ "minLength": 1,
+ "maxLength": 300
+ }
+ },
+ "required": [
+ "scheme",
+ "parameter"
+ ],
+ "description": "Authorization header information."
+ },
+ "BackendBaseParameters": {
+ "properties": {
+ "title": {
+ "type": "string",
+ "description": "Backend Title.",
+ "minLength": 1,
+ "maxLength": 300
+ },
+ "description": {
+ "type": "string",
+ "description": "Backend Description.",
+ "minLength": 1,
+ "maxLength": 2000
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "Management Uri of the Resource in External System. This url can be the Arm Resource Id of Logic Apps, Function Apps or Api Apps.",
+ "minLength": 1,
+ "maxLength": 2000
+ },
+ "properties": {
+ "$ref": "#/definitions/BackendProperties",
+ "description": "Backend Properties contract"
+ },
+ "credentials": {
+ "$ref": "#/definitions/BackendCredentialsContract",
+ "description": "Backend Credentials Contract Properties"
+ },
+ "proxy": {
+ "$ref": "#/definitions/BackendProxyContract",
+ "description": "Backend Proxy Contract Properties"
+ },
+ "tls": {
+ "$ref": "#/definitions/BackendTlsProperties",
+ "description": "Backend TLS Properties"
+ }
+ },
+ "description": "Backend entity base Parameter set."
+ },
+ "BackendCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BackendContract"
+ },
+ "description": "Backend values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Backend list representation."
+ },
+ "BackendContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/BackendContractProperties",
+ "description": "Backend entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Backend details."
+ },
+ "BackendContractProperties": {
+ "properties": {
+ "url": {
+ "type": "string",
+ "description": "Runtime Url of the Backend.",
+ "minLength": 1,
+ "maxLength": 2000
+ },
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "http",
+ "soap"
+ ],
+ "x-ms-enum": {
+ "name": "BackendProtocol",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "http",
+ "description": "The Backend is a RESTful service."
+ },
+ {
+ "value": "soap",
+ "description": "The Backend is a SOAP service."
+ }
+ ]
+ },
+ "description": "Backend communication protocol."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/BackendBaseParameters"
+ }
+ ],
+ "required": [
+ "url",
+ "protocol"
+ ],
+ "description": "Parameters supplied to the Create Backend operation."
+ },
+ "BackendCredentialsContract": {
+ "properties": {
+ "certificate": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 32,
+ "description": "List of Client Certificate Thumbprint."
+ },
+ "query": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "description": "Query Parameter description."
+ },
+ "header": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "description": "Header Parameter description."
+ },
+ "authorization": {
+ "description": "Authorization header authentication",
+ "$ref": "#/definitions/BackendAuthorizationHeaderCredentials"
+ }
+ },
+ "description": "Details of the Credentials used to connect to Backend."
+ },
+ "BackendProperties": {
+ "properties": {
+ "serviceFabricCluster": {
+ "$ref": "#/definitions/BackendServiceFabricClusterProperties",
+ "description": "Backend Service Fabric Cluster Properties"
+ }
+ },
+ "description": "Properties specific to the Backend Type."
+ },
+ "BackendProxyContract": {
+ "externalDocs": {
+ "url": "https://msdn.microsoft.com/en-us/library/system.net.webproxy(v=vs.110).aspx",
+ "description": "Backend entity uses these details to connect to a WebProxy."
+ },
+ "properties": {
+ "url": {
+ "type": "string",
+ "description": "WebProxy Server AbsoluteUri property which includes the entire URI stored in the Uri instance, including all fragments and query strings.",
+ "minLength": 1,
+ "maxLength": 2000
+ },
+ "username": {
+ "type": "string",
+ "description": "Username to connect to the WebProxy server"
+ },
+ "password": {
+ "type": "string",
+ "description": "Password to connect to the WebProxy Server"
+ }
+ },
+ "required": [
+ "url"
+ ],
+ "description": "Details of the Backend WebProxy Server to use in the Request to Backend."
+ },
+ "BackendReconnectContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/BackendReconnectProperties",
+ "description": "Reconnect request properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Reconnect request parameters."
+ },
+ "BackendReconnectProperties": {
+ "properties": {
+ "after": {
+ "type": "string",
+ "format": "duration",
+ "description": "Duration in ISO8601 format after which reconnect will be initiated. Minimum duration of the Reconnect is PT2M."
+ }
+ },
+ "description": "Properties to control reconnect requests."
+ },
+ "BackendServiceFabricClusterProperties": {
+ "properties": {
+ "clientCertificatethumbprint": {
+ "description": "The client certificate thumbprint for the management endpoint.",
+ "type": "string"
+ },
+ "maxPartitionResolutionRetries": {
+ "description": "Maximum number of retries while attempting resolve the partition.",
+ "format": "int32",
+ "type": "integer"
+ },
+ "managementEndpoints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The cluster management endpoint."
+ },
+ "serverCertificateThumbprints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Thumbprints of certificates cluster management service uses for tls communication"
+ },
+ "serverX509Names": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/X509CertificateName"
+ },
+ "description": "Server X509 Certificate Names Collection"
+ }
+ },
+ "required": [
+ "managementEndpoints",
+ "clientCertificatethumbprint"
+ ],
+ "description": "Properties of the Service Fabric Type Backend."
+ },
+ "BackendTlsProperties": {
+ "properties": {
+ "validateCertificateChain": {
+ "description": "Flag indicating whether SSL certificate chain validation should be done when using self-signed certificates for this backend host.",
+ "type": "boolean",
+ "default": true
+ },
+ "validateCertificateName": {
+ "description": "Flag indicating whether SSL certificate name validation should be done when using self-signed certificates for this backend host.",
+ "type": "boolean",
+ "default": true
+ }
+ },
+ "description": "Properties controlling TLS Certificate Validation."
+ },
+ "BackendUpdateParameterProperties": {
+ "properties": {
+ "url": {
+ "type": "string",
+ "description": "Runtime Url of the Backend.",
+ "minLength": 1,
+ "maxLength": 2000
+ },
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "http",
+ "soap"
+ ],
+ "x-ms-enum": {
+ "name": "BackendProtocol",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "http",
+ "description": "The Backend is a RESTful service."
+ },
+ {
+ "value": "soap",
+ "description": "The Backend is a SOAP service."
+ }
+ ]
+ },
+ "description": "Backend communication protocol."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/BackendBaseParameters"
+ }
+ ],
+ "description": "Parameters supplied to the Update Backend operation."
+ },
+ "BackendUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/BackendUpdateParameterProperties",
+ "description": "Backend entity update contract properties."
+ }
+ },
+ "description": "Backend update parameters."
+ },
+ "BearerTokenSendingMethodsContract": {
+ "type": "string",
+ "description": "Form of an authorization grant, which the client uses to request the access token.",
+ "enum": [
+ "authorizationHeader",
+ "query"
+ ],
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "bearerTokenSendingMethods",
+ "values": [
+ {
+ "value": "authorizationHeader",
+ "description": "Access token will be transmitted in the Authorization header using Bearer schema"
+ },
+ {
+ "value": "query",
+ "description": "Access token will be transmitted as query parameters."
+ }
+ ]
+ }
+ },
+ "BodyDiagnosticSettings": {
+ "properties": {
+ "bytes": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 8192,
+ "description": "Number of request body bytes to log."
+ }
+ },
+ "description": "Body logging settings."
+ },
+ "CacheCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CacheContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Caches list representation."
+ },
+ "CacheContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/CacheContractProperties",
+ "description": "Cache properties details."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Cache details."
+ },
+ "CacheContractProperties": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Cache description",
+ "maxLength": 2000
+ },
+ "connectionString": {
+ "type": "string",
+ "description": "Runtime connection string to cache",
+ "maxLength": 300
+ },
+ "useFromLocation": {
+ "type": "string",
+ "description": "Location identifier to use cache from (should be either 'default' or valid Azure region identifier)",
+ "maxLength": 256
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "Original uri of entity in external system cache points to",
+ "maxLength": 2000
+ }
+ },
+ "required": [
+ "connectionString",
+ "useFromLocation"
+ ],
+ "description": "Properties of the Cache contract."
+ },
+ "CacheUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/CacheUpdateProperties",
+ "description": "Cache update properties details."
+ }
+ },
+ "description": "Cache update details."
+ },
+ "CacheUpdateProperties": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Cache description",
+ "maxLength": 2000
+ },
+ "connectionString": {
+ "type": "string",
+ "description": "Runtime connection string to cache",
+ "maxLength": 300
+ },
+ "useFromLocation": {
+ "type": "string",
+ "description": "Location identifier to use cache from (should be either 'default' or valid Azure region identifier)",
+ "maxLength": 256
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "Original uri of entity in external system cache points to",
+ "maxLength": 2000
+ }
+ },
+ "description": "Parameters supplied to the Update Cache operation."
+ },
+ "CertificateCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Certificates list representation."
+ },
+ "CertificateContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/CertificateContractProperties",
+ "description": "Certificate properties details."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Certificate details."
+ },
+ "CertificateContractProperties": {
+ "properties": {
+ "subject": {
+ "type": "string",
+ "description": "Subject attribute of the certificate."
+ },
+ "thumbprint": {
+ "type": "string",
+ "description": "Thumbprint of the certificate."
+ },
+ "expirationDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "keyVault": {
+ "$ref": "#/definitions/KeyVaultContractProperties",
+ "description": "KeyVault location details of the certificate."
+ }
+ },
+ "required": [
+ "subject",
+ "thumbprint",
+ "expirationDate"
+ ],
+ "description": "Properties of the Certificate contract."
+ },
+ "CertificateCreateOrUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/CertificateCreateOrUpdateProperties",
+ "description": "Certificate create or update properties details."
+ }
+ },
+ "description": "Certificate create or update details."
+ },
+ "CertificateCreateOrUpdateProperties": {
+ "properties": {
+ "data": {
+ "type": "string",
+ "description": "Base 64 encoded certificate using the application/x-pkcs12 representation."
+ },
+ "password": {
+ "type": "string",
+ "description": "Password for the Certificate"
+ },
+ "keyVault": {
+ "$ref": "#/definitions/KeyVaultContractCreateProperties",
+ "description": "KeyVault location details of the certificate."
+ }
+ },
+ "description": "Parameters supplied to the CreateOrUpdate certificate operation."
+ },
+ "DataMasking": {
+ "properties": {
+ "queryParams": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataMaskingEntity"
+ },
+ "description": "Masking settings for Url query parameters"
+ },
+ "headers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataMaskingEntity"
+ },
+ "description": "Masking settings for headers"
+ }
+ }
+ },
+ "DataMaskingEntity": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "The name of an entity to mask (e.g. a name of a header or a query parameter)."
+ },
+ "mode": {
+ "type": "string",
+ "enum": [
+ "Mask",
+ "Hide"
+ ],
+ "x-ms-enum": {
+ "name": "DataMaskingMode",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Mask",
+ "description": "Mask the value of an entity."
+ },
+ {
+ "value": "Hide",
+ "description": "Hide the presence of an entity."
+ }
+ ]
+ },
+ "description": "Data masking mode."
+ }
+ }
+ },
+ "DeployConfigurationParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DeployConfigurationParameterProperties",
+ "description": "Deploy Configuration Parameter contract properties."
+ }
+ },
+ "description": "Deploy Tenant Configuration Contract."
+ },
+ "DeployConfigurationParameterProperties": {
+ "properties": {
+ "branch": {
+ "type": "string",
+ "description": "The name of the Git branch from which the configuration is to be deployed to the configuration database."
+ },
+ "force": {
+ "type": "boolean",
+ "description": "The value enforcing deleting subscriptions to products that are deleted in this update."
+ }
+ },
+ "required": [
+ "branch"
+ ],
+ "description": "Parameters supplied to the Deploy Configuration operation."
+ },
+ "DiagnosticCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DiagnosticContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Diagnostic list representation."
+ },
+ "DiagnosticContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DiagnosticContractProperties",
+ "description": "Diagnostic entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Diagnostic details."
+ },
+ "DiagnosticContractProperties": {
+ "properties": {
+ "alwaysLog": {
+ "type": "string",
+ "enum": [
+ "allErrors"
+ ],
+ "x-ms-enum": {
+ "name": "AlwaysLog",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "allErrors",
+ "description": "Always log all erroneous request regardless of sampling settings."
+ }
+ ]
+ },
+ "description": "Specifies for what type of messages sampling settings should not apply."
+ },
+ "loggerId": {
+ "type": "string",
+ "description": "Resource Id of a target logger."
+ },
+ "sampling": {
+ "$ref": "#/definitions/SamplingSettings",
+ "description": "Sampling settings for Diagnostic."
+ },
+ "frontend": {
+ "$ref": "#/definitions/PipelineDiagnosticSettings",
+ "description": "Diagnostic settings for incoming/outgoing HTTP messages to the Gateway."
+ },
+ "backend": {
+ "$ref": "#/definitions/PipelineDiagnosticSettings",
+ "description": "Diagnostic settings for incoming/outgoing HTTP messages to the Backend"
+ },
+ "logClientIp": {
+ "type": "boolean",
+ "description": "Log the ClientIP. Default is false."
+ },
+ "httpCorrelationProtocol": {
+ "type": "string",
+ "enum": [
+ "None",
+ "Legacy",
+ "W3C"
+ ],
+ "x-ms-enum": {
+ "name": "HttpCorrelationProtocol",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "None",
+ "description": "Do not read and inject correlation headers."
+ },
+ {
+ "value": "Legacy",
+ "description": "Inject Request-Id and Request-Context headers with request correlation data. See https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/HttpCorrelationProtocol.md."
+ },
+ {
+ "value": "W3C",
+ "description": "Inject Trace Context headers. See https://w3c.github.io/trace-context."
+ }
+ ]
+ },
+ "description": "Sets correlation protocol to use for Application Insights diagnostics."
+ },
+ "verbosity": {
+ "type": "string",
+ "enum": [
+ "verbose",
+ "information",
+ "error"
+ ],
+ "x-ms-enum": {
+ "name": "Verbosity",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "verbose",
+ "description": "All the traces emitted by trace policies will be sent to the logger attached to this diagnostic instance."
+ },
+ {
+ "value": "information",
+ "description": "Traces with 'severity' set to 'information' and 'error' will be sent to the logger attached to this diagnostic instance."
+ },
+ {
+ "value": "error",
+ "description": "Only traces with 'severity' set to 'error' will be sent to the logger attached to this diagnostic instance."
+ }
+ ]
+ },
+ "description": "The verbosity level applied to traces emitted by trace policies."
+ },
+ "operationNameFormat": {
+ "type": "string",
+ "enum": [
+ "Name",
+ "Url"
+ ],
+ "x-ms-enum": {
+ "name": "OperationNameFormat",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Name",
+ "description": "API_NAME;rev=API_REVISION - OPERATION_NAME"
+ },
+ {
+ "value": "Url",
+ "description": "HTTP_VERB URL"
+ }
+ ]
+ },
+ "description": "The format of the Operation Name for Application Insights telemetries. Default is Name."
+ }
+ },
+ "required": [
+ "loggerId"
+ ],
+ "description": "Diagnostic Entity Properties"
+ },
+ "EmailTemplateCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EmailTemplateContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged email template list representation."
+ },
+ "EmailTemplateContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/EmailTemplateContractProperties",
+ "description": "Email Template entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Email Template details."
+ },
+ "EmailTemplateContractProperties": {
+ "properties": {
+ "subject": {
+ "type": "string",
+ "description": "Subject of the Template.",
+ "minLength": 1,
+ "maxLength": 1000
+ },
+ "body": {
+ "type": "string",
+ "description": "Email Template Body. This should be a valid XDocument",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string",
+ "description": "Title of the Template."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the Email Template."
+ },
+ "isDefault": {
+ "type": "boolean",
+ "description": "Whether the template is the default template provided by Api Management or has been edited.",
+ "readOnly": true
+ },
+ "parameters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EmailTemplateParametersContractProperties"
+ },
+ "description": "Email Template Parameter values."
+ }
+ },
+ "required": [
+ "body",
+ "subject"
+ ],
+ "description": "Email Template Contract properties."
+ },
+ "EmailTemplateParametersContractProperties": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Template parameter name.",
+ "minLength": 1,
+ "maxLength": 256,
+ "pattern": "^[A-Za-z0-9-._]+$"
+ },
+ "title": {
+ "type": "string",
+ "description": "Template parameter title.",
+ "minLength": 1,
+ "maxLength": 4096
+ },
+ "description": {
+ "type": "string",
+ "description": "Template parameter description.",
+ "minLength": 1,
+ "maxLength": 256,
+ "pattern": "^[A-Za-z0-9-._]+$"
+ }
+ },
+ "description": "Email Template Parameter contract."
+ },
+ "EmailTemplateUpdateParameterProperties": {
+ "properties": {
+ "subject": {
+ "type": "string",
+ "description": "Subject of the Template.",
+ "minLength": 1,
+ "maxLength": 1000
+ },
+ "title": {
+ "type": "string",
+ "description": "Title of the Template."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the Email Template."
+ },
+ "body": {
+ "type": "string",
+ "description": "Email Template Body. This should be a valid XDocument",
+ "minLength": 1
+ },
+ "parameters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EmailTemplateParametersContractProperties"
+ },
+ "description": "Email Template Parameter values."
+ }
+ },
+ "description": "Email Template Update Contract properties."
+ },
+ "EmailTemplateUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/EmailTemplateUpdateParameterProperties",
+ "description": "Email Template Update contract properties."
+ }
+ },
+ "description": "Email Template update Parameters."
+ },
+ "GenerateSsoUrlResult": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "Redirect Url containing the SSO URL value."
+ }
+ },
+ "description": "Generate SSO Url operations response details."
+ },
+ "GroupCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GroupContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Group list representation."
+ },
+ "GroupContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GroupContractProperties",
+ "description": "Group entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Contract details."
+ },
+ "GroupContractProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Group name.",
+ "maxLength": 300,
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "description": "Group description. Can contain HTML formatting tags.",
+ "maxLength": 1000
+ },
+ "builtIn": {
+ "readOnly": true,
+ "type": "boolean",
+ "description": "true if the group is one of the three system groups (Administrators, Developers, or Guests); otherwise false."
+ },
+ "type": {
+ "type": "string",
+ "description": "Group type.",
+ "enum": [
+ "custom",
+ "system",
+ "external"
+ ],
+ "x-ms-enum": {
+ "name": "GroupType",
+ "modelAsString": false
+ }
+ },
+ "externalId": {
+ "type": "string",
+ "description": "For external groups, this property contains the id of the group from the external identity provider, e.g. for Azure Active Directory `aad://.onmicrosoft.com/groups/`; otherwise the value is null."
+ }
+ },
+ "required": [
+ "displayName"
+ ],
+ "description": "Group contract Properties."
+ },
+ "GroupCreateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GroupCreateParametersProperties",
+ "description": "Properties supplied to Create Group operation."
+ }
+ },
+ "description": "Parameters supplied to the Create Group operation."
+ },
+ "GroupCreateParametersProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Group name.",
+ "maxLength": 300,
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "description": "Group description."
+ },
+ "type": {
+ "type": "string",
+ "description": "Group type.",
+ "enum": [
+ "custom",
+ "system",
+ "external"
+ ],
+ "x-ms-enum": {
+ "name": "GroupType",
+ "modelAsString": false
+ }
+ },
+ "externalId": {
+ "type": "string",
+ "description": "Identifier of the external groups, this property contains the id of the group from the external identity provider, e.g. for Azure Active Directory `aad://.onmicrosoft.com/groups/`; otherwise the value is null."
+ }
+ },
+ "required": [
+ "displayName"
+ ],
+ "description": "Parameters supplied to the Create Group operation."
+ },
+ "GroupUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GroupUpdateParametersProperties",
+ "description": "Group entity update contract properties."
+ }
+ },
+ "description": "Parameters supplied to the Update Group operation."
+ },
+ "GroupUpdateParametersProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Group name.",
+ "maxLength": 300,
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "description": "Group description."
+ },
+ "type": {
+ "type": "string",
+ "description": "Group type.",
+ "enum": [
+ "custom",
+ "system",
+ "external"
+ ],
+ "x-ms-enum": {
+ "name": "GroupType",
+ "modelAsString": false
+ }
+ },
+ "externalId": {
+ "type": "string",
+ "description": "Identifier of the external groups, this property contains the id of the group from the external identity provider, e.g. for Azure Active Directory `aad://.onmicrosoft.com/groups/`; otherwise the value is null."
+ }
+ },
+ "description": "Parameters supplied to the Update Group operation."
+ },
+ "HttpMessageDiagnostic": {
+ "properties": {
+ "headers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Array of HTTP Headers to log."
+ },
+ "body": {
+ "$ref": "#/definitions/BodyDiagnosticSettings",
+ "description": "Body logging settings."
+ },
+ "dataMasking": {
+ "$ref": "#/definitions/DataMasking",
+ "description": "Data masking settings."
+ }
+ },
+ "description": "Http message diagnostic settings."
+ },
+ "IdentityProviderBaseParameters": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "facebook",
+ "google",
+ "microsoft",
+ "twitter",
+ "aad",
+ "aadB2C"
+ ],
+ "x-ms-enum": {
+ "name": "IdentityProviderType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "facebook",
+ "description": "Facebook as Identity provider."
+ },
+ {
+ "value": "google",
+ "description": "Google as Identity provider."
+ },
+ {
+ "value": "microsoft",
+ "description": "Microsoft Live as Identity provider."
+ },
+ {
+ "value": "twitter",
+ "description": "Twitter as Identity provider."
+ },
+ {
+ "value": "aad",
+ "description": "Azure Active Directory as Identity provider."
+ },
+ {
+ "value": "aadB2C",
+ "description": "Azure Active Directory B2C as Identity provider."
+ }
+ ]
+ },
+ "description": "Identity Provider Type identifier."
+ },
+ "signinTenant": {
+ "type": "string",
+ "description": "The TenantId to use instead of Common when logging into Active Directory"
+ },
+ "allowedTenants": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 32,
+ "description": "List of Allowed Tenants when configuring Azure Active Directory login."
+ },
+ "authority": {
+ "type": "string",
+ "description": "OpenID Connect discovery endpoint hostname for AAD or AAD B2C."
+ },
+ "signupPolicyName": {
+ "type": "string",
+ "description": "Signup Policy Name. Only applies to AAD B2C Identity Provider.",
+ "minLength": 1
+ },
+ "signinPolicyName": {
+ "type": "string",
+ "description": "Signin Policy Name. Only applies to AAD B2C Identity Provider.",
+ "minLength": 1
+ },
+ "profileEditingPolicyName": {
+ "type": "string",
+ "description": "Profile Editing Policy Name. Only applies to AAD B2C Identity Provider.",
+ "minLength": 1
+ },
+ "passwordResetPolicyName": {
+ "type": "string",
+ "description": "Password Reset Policy Name. Only applies to AAD B2C Identity Provider.",
+ "minLength": 1
+ }
+ },
+ "description": "Identity Provider Base Parameter Properties."
+ },
+ "IdentityProviderCreateContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/IdentityProviderCreateContractProperties",
+ "description": "Identity Provider contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Identity Provider details."
+ },
+ "IdentityProviderCreateContractProperties": {
+ "properties": {
+ "clientId": {
+ "type": "string",
+ "description": "Client Id of the Application in the external Identity Provider. It is App ID for Facebook login, Client ID for Google login, App ID for Microsoft.",
+ "minLength": 1
+ },
+ "clientSecret": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "Client secret of the Application in external Identity Provider, used to authenticate login request. For example, it is App Secret for Facebook login, API Key for Google login, Public Key for Microsoft. This property will not be filled on 'GET' operations! Use '/listSecrets' POST request to get the value.",
+ "minLength": 1
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/IdentityProviderBaseParameters"
+ }
+ ],
+ "required": [
+ "clientId",
+ "clientSecret"
+ ],
+ "description": "The external Identity Providers like Facebook, Google, Microsoft, Twitter or Azure Active Directory which can be used to enable access to the API Management service developer portal for all users."
+ },
+ "IdentityProviderContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/IdentityProviderContractProperties",
+ "description": "Identity Provider contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Identity Provider details."
+ },
+ "IdentityProviderContractProperties": {
+ "properties": {
+ "clientId": {
+ "type": "string",
+ "description": "Client Id of the Application in the external Identity Provider. It is App ID for Facebook login, Client ID for Google login, App ID for Microsoft.",
+ "minLength": 1
+ },
+ "clientSecret": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "Client secret of the Application in external Identity Provider, used to authenticate login request. For example, it is App Secret for Facebook login, API Key for Google login, Public Key for Microsoft. This property will not be filled on 'GET' operations! Use '/listSecrets' POST request to get the value.",
+ "minLength": 1
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/IdentityProviderBaseParameters"
+ }
+ ],
+ "required": [
+ "clientId"
+ ],
+ "description": "The external Identity Providers like Facebook, Google, Microsoft, Twitter or Azure Active Directory which can be used to enable access to the API Management service developer portal for all users."
+ },
+ "IdentityProviderList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IdentityProviderContract"
+ },
+ "description": "Identity Provider configuration values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "List of all the Identity Providers configured on the service instance."
+ },
+ "IdentityProviderUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/IdentityProviderUpdateProperties",
+ "description": "Identity Provider update properties."
+ }
+ },
+ "description": "Parameters supplied to update Identity Provider"
+ },
+ "IdentityProviderUpdateProperties": {
+ "properties": {
+ "clientId": {
+ "type": "string",
+ "description": "Client Id of the Application in the external Identity Provider. It is App ID for Facebook login, Client ID for Google login, App ID for Microsoft.",
+ "minLength": 1
+ },
+ "clientSecret": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "Client secret of the Application in external Identity Provider, used to authenticate login request. For example, it is App Secret for Facebook login, API Key for Google login, Public Key for Microsoft.",
+ "minLength": 1
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/IdentityProviderBaseParameters"
+ }
+ ],
+ "description": "Parameters supplied to the Update Identity Provider operation."
+ },
+ "IssueAttachmentCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IssueAttachmentContract"
+ },
+ "description": "Issue Attachment values.",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any.",
+ "readOnly": true
+ }
+ },
+ "description": "Paged Issue Attachment list representation."
+ },
+ "IssueAttachmentContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/IssueAttachmentContractProperties",
+ "description": "Properties of the Issue Attachment."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Issue Attachment Contract details."
+ },
+ "IssueAttachmentContractProperties": {
+ "properties": {
+ "title": {
+ "type": "string",
+ "description": "Filename by which the binary data will be saved."
+ },
+ "contentFormat": {
+ "type": "string",
+ "description": "Either 'link' if content is provided via an HTTP link or the MIME type of the Base64-encoded binary data provided in the 'content' property."
+ },
+ "content": {
+ "type": "string",
+ "description": "An HTTP link or Base64-encoded binary data."
+ }
+ },
+ "required": [
+ "title",
+ "contentFormat",
+ "content"
+ ],
+ "description": "Issue Attachment contract Properties."
+ },
+ "IssueCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IssueContract"
+ },
+ "description": "Issue values.",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any.",
+ "readOnly": true
+ }
+ },
+ "description": "Paged Issue list representation."
+ },
+ "IssueCommentCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IssueCommentContract"
+ },
+ "description": "Issue Comment values.",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any.",
+ "readOnly": true
+ }
+ },
+ "description": "Paged Issue Comment list representation."
+ },
+ "IssueCommentContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/IssueCommentContractProperties",
+ "description": "Properties of the Issue Comment."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Issue Comment Contract details."
+ },
+ "IssueCommentContractProperties": {
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "Comment text."
+ },
+ "createdDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Date and time when the comment was created."
+ },
+ "userId": {
+ "type": "string",
+ "description": "A resource identifier for the user who left the comment."
+ }
+ },
+ "required": [
+ "text",
+ "userId"
+ ],
+ "description": "Issue Comment contract Properties."
+ },
+ "IssueContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/IssueContractProperties",
+ "description": "Properties of the Issue."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Issue Contract details."
+ },
+ "IssueContractBaseProperties": {
+ "properties": {
+ "createdDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Date and time when the issue was created."
+ },
+ "state": {
+ "type": "string",
+ "description": "Status of the issue.",
+ "enum": [
+ "proposed",
+ "open",
+ "removed",
+ "resolved",
+ "closed"
+ ],
+ "x-ms-enum": {
+ "name": "State",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "proposed",
+ "description": "The issue is proposed."
+ },
+ {
+ "value": "open",
+ "description": "The issue is opened."
+ },
+ {
+ "value": "removed",
+ "description": "The issue was removed."
+ },
+ {
+ "value": "resolved",
+ "description": "The issue is now resolved."
+ },
+ {
+ "value": "closed",
+ "description": "The issue was closed."
+ }
+ ]
+ }
+ },
+ "apiId": {
+ "type": "string",
+ "description": "A resource identifier for the API the issue was created for."
+ }
+ },
+ "description": "Issue contract Base Properties."
+ },
+ "IssueContractProperties": {
+ "properties": {
+ "title": {
+ "type": "string",
+ "description": "The issue title."
+ },
+ "description": {
+ "type": "string",
+ "description": "Text describing the issue."
+ },
+ "userId": {
+ "type": "string",
+ "description": "A resource identifier for the user created the issue."
+ }
+ },
+ "required": [
+ "title",
+ "description",
+ "userId"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/IssueContractBaseProperties"
+ }
+ ],
+ "description": "Issue contract Properties."
+ },
+ "IssueUpdateContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/IssueUpdateContractProperties",
+ "description": "Issue entity Update contract properties."
+ }
+ },
+ "description": "Issue update Parameters."
+ },
+ "IssueUpdateContractProperties": {
+ "properties": {
+ "title": {
+ "type": "string",
+ "description": "The issue title."
+ },
+ "description": {
+ "type": "string",
+ "description": "Text describing the issue."
+ },
+ "userId": {
+ "type": "string",
+ "description": "A resource identifier for the user created the issue."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/IssueContractBaseProperties"
+ }
+ ],
+ "description": "Issue contract Update Properties."
+ },
+ "KeyVaultContractCreateProperties": {
+ "properties": {
+ "secretIdentifier": {
+ "type": "string",
+ "description": "Key vault secret identifier for fetching secret."
+ },
+ "identityClientId": {
+ "type": "string",
+ "description": "SystemAssignedIdentity or UserAssignedIdentity Client Id which will be used to access key vault secret."
+ }
+ },
+ "description": "Create keyVault contract details."
+ },
+ "KeyVaultContractProperties": {
+ "properties": {
+ "lastStatus": {
+ "$ref": "#/definitions/KeyVaultLastAccessStatusContractProperties",
+ "description": "Last time sync and refresh status of secret from key vault."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/KeyVaultContractCreateProperties"
+ }
+ ],
+ "description": "KeyVault contract details."
+ },
+ "KeyVaultLastAccessStatusContractProperties": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Last status code for sync and refresh of secret from key vault."
+ },
+ "message": {
+ "type": "string",
+ "description": "Details of the error else empty."
+ },
+ "timeStampUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Last time secret was accessed. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ }
+ },
+ "description": "Issue contract Update Properties."
+ },
+ "LoggerCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LoggerContract"
+ },
+ "description": "Logger values."
+ },
+ "count": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total record count number across all pages."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Logger list representation."
+ },
+ "LoggerContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/LoggerContractProperties",
+ "description": "Logger entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Logger details."
+ },
+ "LoggerContractProperties": {
+ "properties": {
+ "loggerType": {
+ "type": "string",
+ "description": "Logger type.",
+ "enum": [
+ "azureEventHub",
+ "applicationInsights",
+ "azureMonitor"
+ ],
+ "x-ms-enum": {
+ "name": "LoggerType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "azureEventHub",
+ "description": "Azure Event Hub as log destination."
+ },
+ {
+ "value": "applicationInsights",
+ "description": "Azure Application Insights as log destination."
+ },
+ {
+ "value": "azureMonitor",
+ "description": "Azure Monitor"
+ }
+ ]
+ }
+ },
+ "description": {
+ "type": "string",
+ "description": "Logger description.",
+ "maxLength": 256
+ },
+ "credentials": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The name and SendRule connection string of the event hub for azureEventHub logger.\nInstrumentation key for applicationInsights logger.",
+ "example": {
+ "name": "apim",
+ "connectionString": "Endpoint=sb://contoso-ns.servicebus.windows.net/;SharedAccessKeyName=Sender;SharedAccessKey=..."
+ }
+ },
+ "isBuffered": {
+ "type": "boolean",
+ "description": "Whether records are buffered in the logger before publishing. Default is assumed to be true."
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "Azure Resource Id of a log target (either Azure Event Hub resource or Azure Application Insights resource)."
+ }
+ },
+ "required": [
+ "loggerType"
+ ],
+ "description": "The Logger entity in API Management represents an event sink that you can use to log API Management events. Currently the Logger entity supports logging API Management events to Azure Event Hubs."
+ },
+ "LoggerUpdateContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/LoggerUpdateParameters",
+ "description": "Logger entity update contract properties."
+ }
+ },
+ "description": "Logger update contract."
+ },
+ "LoggerUpdateParameters": {
+ "properties": {
+ "loggerType": {
+ "type": "string",
+ "description": "Logger type.",
+ "enum": [
+ "azureEventHub",
+ "applicationInsights",
+ "azureMonitor"
+ ],
+ "x-ms-enum": {
+ "name": "LoggerType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "azureEventHub",
+ "description": "Azure Event Hub as log destination."
+ },
+ {
+ "value": "applicationInsights",
+ "description": "Azure Application Insights as log destination."
+ },
+ {
+ "value": "azureMonitor",
+ "description": "Azure Monitor"
+ }
+ ]
+ }
+ },
+ "description": {
+ "type": "string",
+ "description": "Logger description."
+ },
+ "credentials": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Logger credentials."
+ },
+ "isBuffered": {
+ "type": "boolean",
+ "description": "Whether records are buffered in the logger before publishing. Default is assumed to be true."
+ }
+ },
+ "description": "Parameters supplied to the Update Logger operation."
+ },
+ "NotificationCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotificationContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Notification list representation."
+ },
+ "NotificationContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NotificationContractProperties",
+ "description": "Notification entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Notification details."
+ },
+ "NotificationContractProperties": {
+ "properties": {
+ "title": {
+ "type": "string",
+ "description": "Title of the Notification.",
+ "minLength": 1,
+ "maxLength": 1000
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the Notification."
+ },
+ "recipients": {
+ "$ref": "#/definitions/RecipientsContractProperties",
+ "description": "Recipient Parameter values."
+ }
+ },
+ "required": [
+ "title"
+ ],
+ "description": "Notification Contract properties."
+ },
+ "OAuth2AuthenticationSettingsContract": {
+ "properties": {
+ "authorizationServerId": {
+ "type": "string",
+ "description": "OAuth authorization server identifier."
+ },
+ "scope": {
+ "type": "string",
+ "description": "operations scope."
+ }
+ },
+ "description": "API OAuth2 Authentication settings details."
+ },
+ "OpenIdAuthenticationSettingsContract": {
+ "properties": {
+ "openidProviderId": {
+ "type": "string",
+ "description": "OAuth authorization server identifier."
+ },
+ "bearerTokenSendingMethods": {
+ "description": "How to send token to the server.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BearerTokenSendingMethodsContract"
+ }
+ }
+ },
+ "description": "API OAuth2 Authentication settings details."
+ },
+ "OpenIdConnectProviderCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OpenidConnectProviderContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged OpenIdProviders list representation."
+ },
+ "OpenidConnectProviderContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/OpenidConnectProviderContractProperties",
+ "description": "OpenId Connect Provider contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "OpenId Connect Provider details."
+ },
+ "OpenidConnectProviderContractProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "User-friendly OpenID Connect Provider name.",
+ "maxLength": 50
+ },
+ "description": {
+ "type": "string",
+ "description": "User-friendly description of OpenID Connect Provider."
+ },
+ "metadataEndpoint": {
+ "type": "string",
+ "description": "Metadata endpoint URI."
+ },
+ "clientId": {
+ "type": "string",
+ "description": "Client ID of developer console which is the client application."
+ },
+ "clientSecret": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "Client Secret of developer console which is the client application."
+ }
+ },
+ "required": [
+ "displayName",
+ "metadataEndpoint",
+ "clientId"
+ ],
+ "description": "OpenID Connect Providers Contract."
+ },
+ "OpenidConnectProviderUpdateContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/OpenidConnectProviderUpdateContractProperties",
+ "description": "OpenId Connect Provider Update contract properties."
+ }
+ },
+ "description": "Parameters supplied to the Update OpenID Connect Provider operation."
+ },
+ "OpenidConnectProviderUpdateContractProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "User-friendly OpenID Connect Provider name.",
+ "maxLength": 50
+ },
+ "description": {
+ "type": "string",
+ "description": "User-friendly description of OpenID Connect Provider."
+ },
+ "metadataEndpoint": {
+ "type": "string",
+ "description": "Metadata endpoint URI."
+ },
+ "clientId": {
+ "type": "string",
+ "description": "Client ID of developer console which is the client application."
+ },
+ "clientSecret": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "Client Secret of developer console which is the client application."
+ }
+ },
+ "description": "Parameters supplied to the Update OpenID Connect Provider operation."
+ },
+ "OperationCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationContract"
+ },
+ "description": "Page values.",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any.",
+ "readOnly": true
+ }
+ },
+ "description": "Paged Operation list representation."
+ },
+ "OperationContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/OperationContractProperties",
+ "description": "Properties of the Operation Contract."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Api Operation details."
+ },
+ "OperationContractProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Operation Name.",
+ "minLength": 1,
+ "maxLength": 300
+ },
+ "method": {
+ "type": "string",
+ "description": "A Valid HTTP Operation Method. Typical Http Methods like GET, PUT, POST but not limited by only them.",
+ "externalDocs": {
+ "description": "As defined by RFC.",
+ "url": "http://www.rfc-editor.org/rfc/rfc7230.txt"
+ }
+ },
+ "urlTemplate": {
+ "type": "string",
+ "description": "Relative URL template identifying the target resource for this operation. May include parameters. Example: /customers/{cid}/orders/{oid}/?date={date}",
+ "minLength": 1,
+ "maxLength": 1000
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/OperationEntityBaseContract"
+ }
+ ],
+ "required": [
+ "displayName",
+ "method",
+ "urlTemplate"
+ ],
+ "description": "Operation Contract Properties"
+ },
+ "OperationEntityBaseContract": {
+ "properties": {
+ "templateParameters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ParameterContract"
+ },
+ "description": "Collection of URL template parameters."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the operation. May include HTML formatting tags.",
+ "maxLength": 1000
+ },
+ "request": {
+ "$ref": "#/definitions/RequestContract",
+ "description": "An entity containing request details."
+ },
+ "responses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResponseContract"
+ },
+ "description": "Array of Operation responses."
+ },
+ "policies": {
+ "type": "string",
+ "description": "Operation Policies"
+ }
+ },
+ "description": "Api Operation Entity Base Contract details."
+ },
+ "OperationResultContract": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Operation result identifier."
+ },
+ "status": {
+ "type": "string",
+ "description": "Status of an async operation.",
+ "enum": [
+ "Started",
+ "InProgress",
+ "Succeeded",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "AsyncOperationStatus",
+ "modelAsString": false
+ }
+ },
+ "started": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Start time of an async operation. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "updated": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Last update time of an async operation. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "resultInfo": {
+ "type": "string",
+ "description": "Optional result info."
+ },
+ "error": {
+ "$ref": "./apimanagement.json#/definitions/ErrorResponseBody",
+ "description": "Error Body Contract"
+ },
+ "actionLog": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationResultLogItemContract"
+ },
+ "readOnly": true,
+ "description": "This property if only provided as part of the TenantConfiguration_Validate operation. It contains the log the entities which will be updated/created/deleted as part of the TenantConfiguration_Deploy operation."
+ }
+ },
+ "description": "Operation Result."
+ },
+ "OperationResultLogItemContract": {
+ "properties": {
+ "objectType": {
+ "type": "string",
+ "description": "The type of entity contract."
+ },
+ "action": {
+ "type": "string",
+ "description": "Action like create/update/delete."
+ },
+ "objectKey": {
+ "type": "string",
+ "description": "Identifier of the entity being created/updated/deleted."
+ }
+ },
+ "description": "Log of the entity being created, updated or deleted."
+ },
+ "OperationTagResourceContractProperties": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identifier of the operation in form /operations/{operationId}."
+ },
+ "name": {
+ "type": "string",
+ "description": "Operation name.",
+ "readOnly": true
+ },
+ "apiName": {
+ "type": "string",
+ "description": "Api Name.",
+ "readOnly": true
+ },
+ "apiRevision": {
+ "type": "string",
+ "description": "Api Revision.",
+ "readOnly": true
+ },
+ "apiVersion": {
+ "type": "string",
+ "description": "Api Version.",
+ "readOnly": true
+ },
+ "description": {
+ "type": "string",
+ "description": "Operation Description.",
+ "readOnly": true
+ },
+ "method": {
+ "type": "string",
+ "description": "A Valid HTTP Operation Method. Typical Http Methods like GET, PUT, POST but not limited by only them.",
+ "externalDocs": {
+ "description": "As defined by RFC.",
+ "url": "http://www.rfc-editor.org/rfc/rfc7230.txt"
+ },
+ "readOnly": true
+ },
+ "urlTemplate": {
+ "type": "string",
+ "description": "Relative URL template identifying the target resource for this operation. May include parameters. Example: /customers/{cid}/orders/{oid}/?date={date}",
+ "readOnly": true
+ }
+ },
+ "description": "Operation Entity contract Properties."
+ },
+ "OperationUpdateContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/OperationUpdateContractProperties",
+ "description": "Properties of the API Operation entity that can be updated."
+ }
+ },
+ "description": "Api Operation Update Contract details."
+ },
+ "OperationUpdateContractProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Operation Name.",
+ "minLength": 1,
+ "maxLength": 300
+ },
+ "method": {
+ "type": "string",
+ "description": "A Valid HTTP Operation Method. Typical Http Methods like GET, PUT, POST but not limited by only them.",
+ "externalDocs": {
+ "description": "As defined by RFC.",
+ "url": "http://www.rfc-editor.org/rfc/rfc7230.txt"
+ }
+ },
+ "urlTemplate": {
+ "type": "string",
+ "description": "Relative URL template identifying the target resource for this operation. May include parameters. Example: /customers/{cid}/orders/{oid}/?date={date}",
+ "minLength": 1,
+ "maxLength": 1000
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/OperationEntityBaseContract"
+ }
+ ],
+ "description": "Operation Update Contract Properties."
+ },
+ "ParameterContract": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Parameter name."
+ },
+ "description": {
+ "type": "string",
+ "description": "Parameter description."
+ },
+ "type": {
+ "type": "string",
+ "description": "Parameter type."
+ },
+ "defaultValue": {
+ "type": "string",
+ "description": "Default parameter value."
+ },
+ "required": {
+ "type": "boolean",
+ "description": "Specifies whether parameter is required or not."
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Parameter values."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "description": "Operation parameters details."
+ },
+ "PipelineDiagnosticSettings": {
+ "properties": {
+ "request": {
+ "$ref": "#/definitions/HttpMessageDiagnostic",
+ "description": "Diagnostic settings for request."
+ },
+ "response": {
+ "$ref": "#/definitions/HttpMessageDiagnostic",
+ "description": "Diagnostic settings for response."
+ }
+ },
+ "description": "Diagnostic settings for incoming/outgoing HTTP messages to the Gateway."
+ },
+ "PolicyCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PolicyContract"
+ },
+ "description": "Policy Contract value."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "The response of the list policy operation."
+ },
+ "PolicyContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PolicyContractProperties",
+ "description": "Properties of the Policy."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Policy Contract details."
+ },
+ "PolicyContractProperties": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "Contents of the Policy as defined by the format."
+ },
+ "format": {
+ "type": "string",
+ "description": "Format of the policyContent.",
+ "enum": [
+ "xml",
+ "xml-link",
+ "rawxml",
+ "rawxml-link"
+ ],
+ "x-ms-enum": {
+ "name": "PolicyContentFormat",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "xml",
+ "description": "The contents are inline and Content type is an XML document."
+ },
+ {
+ "value": "xml-link",
+ "description": "The policy XML document is hosted on a http endpoint accessible from the API Management service."
+ },
+ {
+ "value": "rawxml",
+ "description": "The contents are inline and Content type is a non XML encoded policy document."
+ },
+ {
+ "value": "rawxml-link",
+ "description": "The policy document is not Xml encoded and is hosted on a http endpoint accessible from the API Management service."
+ }
+ ]
+ },
+ "default": "xml"
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "Policy contract Properties."
+ },
+ "PolicyDescriptionContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PolicyDescriptionContractProperties",
+ "description": "Policy description contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Policy description details."
+ },
+ "PolicyDescriptionContractProperties": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Policy description.",
+ "readOnly": true
+ },
+ "scope": {
+ "type": "integer",
+ "description": "Binary OR value of the Snippet scope.",
+ "readOnly": true
+ }
+ },
+ "description": "Policy description properties."
+ },
+ "PolicyDescriptionCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PolicyDescriptionContract"
+ },
+ "description": "Descriptions of APIM policies."
+ },
+ "count": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total record count number."
+ }
+ },
+ "description": "Descriptions of APIM policies."
+ },
+ "PortalDelegationSettings": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PortalDelegationSettingsProperties",
+ "description": "Delegation settings contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Delegation settings for a developer portal."
+ },
+ "PortalDelegationSettingsProperties": {
+ "properties": {
+ "url": {
+ "type": "string",
+ "description": "A delegation Url."
+ },
+ "validationKey": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "A base64-encoded validation key to validate, that a request is coming from Azure API Management."
+ },
+ "subscriptions": {
+ "$ref": "#/definitions/SubscriptionsDelegationSettingsProperties",
+ "description": "Subscriptions delegation settings."
+ },
+ "userRegistration": {
+ "$ref": "#/definitions/RegistrationDelegationSettingsProperties",
+ "description": "User registration delegation settings."
+ }
+ },
+ "description": "Delegation settings contract properties."
+ },
+ "PortalSigninSettingProperties": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Redirect Anonymous users to the Sign-In page."
+ }
+ },
+ "description": "Sign-in settings contract properties."
+ },
+ "PortalSigninSettings": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PortalSigninSettingProperties",
+ "description": "Sign-in settings contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Sign-In settings for the Developer Portal."
+ },
+ "PortalSignupSettings": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PortalSignupSettingsProperties",
+ "description": "Sign-up settings contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Sign-Up settings for a developer portal."
+ },
+ "PortalSignupSettingsProperties": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Allow users to sign up on a developer portal."
+ },
+ "termsOfService": {
+ "type": "object",
+ "$ref": "#/definitions/TermsOfServiceProperties",
+ "description": "Terms of service contract properties."
+ }
+ },
+ "description": "Sign-up settings contract properties."
+ },
+ "ProductCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ProductContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Products list representation."
+ },
+ "ProductContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ProductContractProperties",
+ "description": "Product entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Product details."
+ },
+ "ProductContractProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Product name.",
+ "minLength": 1,
+ "maxLength": 300
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProductEntityBaseParameters"
+ }
+ ],
+ "required": [
+ "displayName"
+ ],
+ "description": "Product profile."
+ },
+ "ProductEntityBaseParameters": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Product description. May include HTML formatting tags.",
+ "minLength": 1,
+ "maxLength": 1000
+ },
+ "terms": {
+ "type": "string",
+ "description": "Product terms of use. Developers trying to subscribe to the product will be presented and required to accept these terms before they can complete the subscription process."
+ },
+ "subscriptionRequired": {
+ "description": "Whether a product subscription is required for accessing APIs included in this product. If true, the product is referred to as \"protected\" and a valid subscription key is required for a request to an API included in the product to succeed. If false, the product is referred to as \"open\" and requests to an API included in the product can be made without a subscription key. If property is omitted when creating a new product it's value is assumed to be true.",
+ "type": "boolean"
+ },
+ "approvalRequired": {
+ "description": "whether subscription approval is required. If false, new subscriptions will be approved automatically enabling developers to call the product’s APIs immediately after subscribing. If true, administrators must manually approve the subscription before the developer can any of the product’s APIs. Can be present only if subscriptionRequired property is present and has a value of false.",
+ "type": "boolean"
+ },
+ "subscriptionsLimit": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Whether the number of subscriptions a user can have to this product at the same time. Set to null or omit to allow unlimited per user subscriptions. Can be present only if subscriptionRequired property is present and has a value of false."
+ },
+ "state": {
+ "type": "string",
+ "description": "whether product is published or not. Published products are discoverable by users of developer portal. Non published products are visible only to administrators. Default state of Product is notPublished.",
+ "enum": [
+ "notPublished",
+ "published"
+ ],
+ "x-ms-enum": {
+ "name": "ProductState",
+ "modelAsString": false
+ }
+ }
+ },
+ "description": "Product Entity Base Parameters"
+ },
+ "ProductTagResourceContractProperties": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identifier of the product in the form of /products/{productId}"
+ },
+ "name": {
+ "type": "string",
+ "description": "Product name.",
+ "minLength": 1,
+ "maxLength": 300
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./definitions.json#/definitions/ProductEntityBaseParameters"
+ }
+ ],
+ "required": [
+ "name"
+ ],
+ "description": "Product profile."
+ },
+ "ProductUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ProductUpdateProperties",
+ "description": "Product entity Update contract properties."
+ }
+ },
+ "description": "Product Update parameters."
+ },
+ "ProductUpdateProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Product name.",
+ "maxLength": 300,
+ "minLength": 1
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProductEntityBaseParameters"
+ }
+ ],
+ "description": "Parameters supplied to the Update Product operation."
+ },
+ "NamedValueCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NamedValueContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged NamedValue list representation."
+ },
+ "NamedValueCreateContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NamedValueCreateContractProperties",
+ "description": "NamedValue entity contract properties for PUT operation."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "NamedValue details."
+ },
+ "NamedValueCreateContractProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Unique name of NamedValue. It may contain only letters, digits, period, dash, and underscore characters.",
+ "minLength": 1,
+ "maxLength": 256,
+ "pattern": "^[A-Za-z0-9-._]+$"
+ },
+ "value": {
+ "type": "string",
+ "description": "Value of the NamedValue. Can contain policy expressions. It may not be empty or consist only of whitespace. This property will not be filled on 'GET' operations! Use '/listSecrets' POST request to get the value.",
+ "maxLength": 4096
+ },
+ "keyVault": {
+ "$ref": "#/definitions/KeyVaultContractCreateProperties",
+ "description": "KeyVault location details of the namedValue."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/NamedValueEntityBaseParameters"
+ }
+ ],
+ "required": [
+ "displayName"
+ ],
+ "description": "NamedValue Contract properties."
+ },
+ "NamedValueContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NamedValueContractProperties",
+ "description": "NamedValue entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "NamedValue details."
+ },
+ "NamedValueContractProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Unique name of NamedValue. It may contain only letters, digits, period, dash, and underscore characters.",
+ "minLength": 1,
+ "maxLength": 256,
+ "pattern": "^[A-Za-z0-9-._]+$"
+ },
+ "value": {
+ "type": "string",
+ "description": "Value of the NamedValue. Can contain policy expressions. It may not be empty or consist only of whitespace. This property will not be filled on 'GET' operations! Use '/listSecrets' POST request to get the value.",
+ "maxLength": 4096
+ },
+ "keyVault": {
+ "$ref": "#/definitions/KeyVaultContractProperties",
+ "description": "KeyVault location details of the namedValue."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/NamedValueEntityBaseParameters"
+ }
+ ],
+ "required": [
+ "displayName"
+ ],
+ "description": "NamedValue Contract properties."
+ },
+ "NamedValueEntityBaseParameters": {
+ "properties": {
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 32,
+ "description": "Optional tags that when provided can be used to filter the NamedValue list."
+ },
+ "secret": {
+ "description": "Determines whether the value is a secret and should be encrypted or not. Default value is false.",
+ "type": "boolean"
+ }
+ },
+ "description": "NamedValue Entity Base Parameters set."
+ },
+ "NamedValueUpdateParameterProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Unique name of NamedValue. It may contain only letters, digits, period, dash, and underscore characters.",
+ "minLength": 1,
+ "maxLength": 256,
+ "pattern": "^[A-Za-z0-9-._]+$"
+ },
+ "value": {
+ "type": "string",
+ "description": "Value of the NamedValue. Can contain policy expressions. It may not be empty or consist only of whitespace.",
+ "minLength": 1,
+ "maxLength": 4096
+ },
+ "keyVault": {
+ "$ref": "#/definitions/KeyVaultContractCreateProperties",
+ "description": "KeyVault location details of the namedValue."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/NamedValueEntityBaseParameters"
+ }
+ ],
+ "description": "NamedValue Contract properties."
+ },
+ "NamedValueUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NamedValueUpdateParameterProperties",
+ "description": "NamedValue entity Update contract properties."
+ }
+ },
+ "description": "NamedValue update Parameters."
+ },
+ "QuotaCounterCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QuotaCounterContract"
+ },
+ "description": "Quota counter values."
+ },
+ "count": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total record count number across all pages."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Quota Counter list representation."
+ },
+ "QuotaCounterContract": {
+ "properties": {
+ "counterKey": {
+ "type": "string",
+ "description": "The Key value of the Counter. Must not be empty.",
+ "minLength": 1
+ },
+ "periodKey": {
+ "type": "string",
+ "description": "Identifier of the Period for which the counter was collected. Must not be empty.",
+ "minLength": 1
+ },
+ "periodStartTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The date of the start of Counter Period. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "periodEndTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The date of the end of Counter Period. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "value": {
+ "$ref": "#/definitions/QuotaCounterValueContractProperties",
+ "description": "Quota Value Properties"
+ }
+ },
+ "required": [
+ "counterKey",
+ "periodKey",
+ "periodStartTime",
+ "periodEndTime"
+ ],
+ "description": "Quota counter details."
+ },
+ "QuotaCounterValueContract": {
+ "properties": {
+ "value": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/QuotaCounterValueContractProperties",
+ "description": "Quota counter Value Properties."
+ }
+ },
+ "description": "Quota counter value details."
+ },
+ "QuotaCounterValueContractProperties": {
+ "properties": {
+ "callsCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of times Counter was called."
+ },
+ "kbTransferred": {
+ "type": "number",
+ "format": "double",
+ "description": "Data Transferred in KiloBytes."
+ }
+ },
+ "description": "Quota counter value details."
+ },
+ "QuotaCounterValueUpdateContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/QuotaCounterValueContractProperties",
+ "description": "Quota counter value details."
+ }
+ },
+ "description": "Quota counter value details."
+ },
+ "RecipientEmailCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RecipientEmailContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Recipient User list representation."
+ },
+ "RecipientEmailContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RecipientEmailContractProperties",
+ "description": "Recipient Email contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Recipient Email details."
+ },
+ "RecipientEmailContractProperties": {
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "User Email subscribed to notification."
+ }
+ },
+ "description": "Recipient Email Contract Properties."
+ },
+ "RecipientsContractProperties": {
+ "properties": {
+ "emails": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of Emails subscribed for the notification."
+ },
+ "users": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of Users subscribed for the notification."
+ }
+ },
+ "description": "Notification Parameter contract."
+ },
+ "RecipientUserCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RecipientUserContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Recipient User list representation."
+ },
+ "RecipientUserContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RecipientUsersContractProperties",
+ "description": "Recipient User entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Recipient User details."
+ },
+ "RecipientUsersContractProperties": {
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "API Management UserId subscribed to notification."
+ }
+ },
+ "description": "Recipient User Contract Properties."
+ },
+ "RegistrationDelegationSettingsProperties": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Enable or disable delegation for user registration."
+ }
+ },
+ "description": "User registration delegation settings properties."
+ },
+ "ReportCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReportRecordContract"
+ },
+ "description": "Page values."
+ },
+ "count": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total record count number across all pages."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Report records list representation."
+ },
+ "ReportRecordContract": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name depending on report endpoint specifies product, API, operation or developer name."
+ },
+ "timestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Start of aggregation period. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "interval": {
+ "type": "string",
+ "description": "Length of aggregation period. Interval must be multiple of 15 minutes and may not be zero. The value should be in ISO 8601 format (http://en.wikipedia.org/wiki/ISO_8601#Durations)."
+ },
+ "country": {
+ "type": "string",
+ "description": "Country to which this record data is related."
+ },
+ "region": {
+ "type": "string",
+ "description": "Country region to which this record data is related."
+ },
+ "zip": {
+ "type": "string",
+ "description": "Zip code to which this record data is related."
+ },
+ "userId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "User identifier path. /users/{userId}"
+ },
+ "productId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Product identifier path. /products/{productId}"
+ },
+ "apiId": {
+ "type": "string",
+ "description": "API identifier path. /apis/{apiId}"
+ },
+ "operationId": {
+ "type": "string",
+ "description": "Operation identifier path. /apis/{apiId}/operations/{operationId}"
+ },
+ "apiRegion": {
+ "type": "string",
+ "description": "API region identifier."
+ },
+ "subscriptionId": {
+ "type": "string",
+ "description": "Subscription identifier path. /subscriptions/{subscriptionId}"
+ },
+ "callCountSuccess": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of successful calls. This includes calls returning HttpStatusCode <= 301 and HttpStatusCode.NotModified and HttpStatusCode.TemporaryRedirect"
+ },
+ "callCountBlocked": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of calls blocked due to invalid credentials. This includes calls returning HttpStatusCode.Unauthorized and HttpStatusCode.Forbidden and HttpStatusCode.TooManyRequests"
+ },
+ "callCountFailed": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of calls failed due to proxy or backend errors. This includes calls returning HttpStatusCode.BadRequest(400) and any Code between HttpStatusCode.InternalServerError (500) and 600"
+ },
+ "callCountOther": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of other calls."
+ },
+ "callCountTotal": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Total number of calls."
+ },
+ "bandwidth": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Bandwidth consumed."
+ },
+ "cacheHitCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of times when content was served from cache policy."
+ },
+ "cacheMissCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of times content was fetched from backend."
+ },
+ "apiTimeAvg": {
+ "type": "number",
+ "format": "double",
+ "description": "Average time it took to process request."
+ },
+ "apiTimeMin": {
+ "type": "number",
+ "format": "double",
+ "description": "Minimum time it took to process request."
+ },
+ "apiTimeMax": {
+ "type": "number",
+ "format": "double",
+ "description": "Maximum time it took to process request."
+ },
+ "serviceTimeAvg": {
+ "type": "number",
+ "format": "double",
+ "description": "Average time it took to process request on backend."
+ },
+ "serviceTimeMin": {
+ "type": "number",
+ "format": "double",
+ "description": "Minimum time it took to process request on backend."
+ },
+ "serviceTimeMax": {
+ "type": "number",
+ "format": "double",
+ "description": "Maximum time it took to process request on backend."
+ }
+ },
+ "description": "Report data."
+ },
+ "RepresentationContract": {
+ "properties": {
+ "contentType": {
+ "type": "string",
+ "description": "Specifies a registered or custom content type for this representation, e.g. application/xml."
+ },
+ "sample": {
+ "type": "string",
+ "description": "An example of the representation."
+ },
+ "schemaId": {
+ "type": "string",
+ "description": "Schema identifier. Applicable only if 'contentType' value is neither 'application/x-www-form-urlencoded' nor 'multipart/form-data'."
+ },
+ "typeName": {
+ "type": "string",
+ "description": "Type name defined by the schema. Applicable only if 'contentType' value is neither 'application/x-www-form-urlencoded' nor 'multipart/form-data'."
+ },
+ "formParameters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ParameterContract"
+ },
+ "description": "Collection of form parameters. Required if 'contentType' value is either 'application/x-www-form-urlencoded' or 'multipart/form-data'.."
+ }
+ },
+ "required": [
+ "contentType"
+ ],
+ "description": "Operation request/response representation details."
+ },
+ "RequestContract": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Operation request description."
+ },
+ "queryParameters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ParameterContract"
+ },
+ "description": "Collection of operation request query parameters."
+ },
+ "headers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ParameterContract"
+ },
+ "description": "Collection of operation request headers."
+ },
+ "representations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RepresentationContract"
+ },
+ "description": "Collection of operation request representations."
+ }
+ },
+ "description": "Operation request details."
+ },
+ "RequestReportCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RequestReportRecordContract"
+ },
+ "description": "Page values."
+ },
+ "count": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total record count number across all pages."
+ }
+ },
+ "description": "Paged Report records list representation."
+ },
+ "RequestReportRecordContract": {
+ "properties": {
+ "apiId": {
+ "type": "string",
+ "description": "API identifier path. /apis/{apiId}"
+ },
+ "operationId": {
+ "type": "string",
+ "description": "Operation identifier path. /apis/{apiId}/operations/{operationId}"
+ },
+ "productId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Product identifier path. /products/{productId}"
+ },
+ "userId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "User identifier path. /users/{userId}"
+ },
+ "method": {
+ "type": "string",
+ "description": "The HTTP method associated with this request.."
+ },
+ "url": {
+ "type": "string",
+ "description": "The full URL associated with this request."
+ },
+ "ipAddress": {
+ "type": "string",
+ "description": "The client IP address associated with this request."
+ },
+ "backendResponseCode": {
+ "type": "string",
+ "description": "The HTTP status code received by the gateway as a result of forwarding this request to the backend."
+ },
+ "responseCode": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The HTTP status code returned by the gateway."
+ },
+ "responseSize": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The size of the response returned by the gateway."
+ },
+ "timestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The date and time when this request was received by the gateway in ISO 8601 format."
+ },
+ "cache": {
+ "type": "string",
+ "description": "Specifies if response cache was involved in generating the response. If the value is none, the cache was not used. If the value is hit, cached response was returned. If the value is miss, the cache was used but lookup resulted in a miss and request was fulfilled by the backend."
+ },
+ "apiTime": {
+ "type": "number",
+ "format": "double",
+ "description": "The total time it took to process this request."
+ },
+ "serviceTime": {
+ "type": "number",
+ "format": "double",
+ "description": "he time it took to forward this request to the backend and get the response back."
+ },
+ "apiRegion": {
+ "type": "string",
+ "description": "Azure region where the gateway that processed this request is located."
+ },
+ "subscriptionId": {
+ "type": "string",
+ "description": "Subscription identifier path. /subscriptions/{subscriptionId}"
+ },
+ "requestId": {
+ "type": "string",
+ "description": "Request Identifier."
+ },
+ "requestSize": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The size of this request.."
+ }
+ },
+ "description": "Request Report data."
+ },
+ "ResponseContract": {
+ "properties": {
+ "statusCode": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Operation response HTTP status code."
+ },
+ "description": {
+ "type": "string",
+ "description": "Operation response description."
+ },
+ "representations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RepresentationContract"
+ },
+ "description": "Collection of operation response representations."
+ },
+ "headers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ParameterContract"
+ },
+ "description": "Collection of operation response headers."
+ }
+ },
+ "required": [
+ "statusCode"
+ ],
+ "description": "Operation response details."
+ },
+ "SamplingSettings": {
+ "properties": {
+ "samplingType": {
+ "type": "string",
+ "description": "Sampling type.",
+ "enum": [
+ "fixed"
+ ],
+ "x-ms-enum": {
+ "name": "SamplingType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "fixed",
+ "description": "Fixed-rate sampling."
+ }
+ ]
+ }
+ },
+ "percentage": {
+ "type": "number",
+ "format": "double",
+ "minimum": 0,
+ "maximum": 100,
+ "description": "Rate of sampling for fixed-rate sampling."
+ }
+ },
+ "description": "Sampling settings for Diagnostic."
+ },
+ "SaveConfigurationParameter": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SaveConfigurationParameterProperties",
+ "description": "Properties of the Save Configuration Parameters."
+ }
+ },
+ "description": "Save Tenant Configuration Contract details."
+ },
+ "SaveConfigurationParameterProperties": {
+ "properties": {
+ "branch": {
+ "type": "string",
+ "description": "The name of the Git branch in which to commit the current configuration snapshot."
+ },
+ "force": {
+ "type": "boolean",
+ "description": "The value if true, the current configuration database is committed to the Git repository, even if the Git repository has newer changes that would be overwritten."
+ }
+ },
+ "required": [
+ "branch"
+ ],
+ "description": "Parameters supplied to the Save Tenant Configuration operation."
+ },
+ "SchemaCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SchemaContract"
+ },
+ "description": "Api Schema Contract value.",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any.",
+ "readOnly": true
+ }
+ },
+ "description": "The response of the list schema operation."
+ },
+ "SchemaContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SchemaContractProperties",
+ "description": "Properties of the Schema."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Schema Contract details."
+ },
+ "SchemaContractProperties": {
+ "properties": {
+ "contentType": {
+ "type": "string",
+ "description": "Must be a valid a media type used in a Content-Type header as defined in the RFC 2616. Media type of the schema document (e.g. application/json, application/xml). - `Swagger` Schema use `application/vnd.ms-azure-apim.swagger.definitions+json` - `WSDL` Schema use `application/vnd.ms-azure-apim.xsd+xml` - `OpenApi` Schema use `application/vnd.oai.openapi.components+json` - `WADL Schema` use `application/vnd.ms-azure-apim.wadl.grammars+xml`."
+ },
+ "document": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SchemaDocumentProperties",
+ "description": "Create or update Properties of the Schema Document."
+ }
+ },
+ "required": [
+ "contentType"
+ ],
+ "description": "API Schema create or update contract Properties."
+ },
+ "SchemaDocumentProperties": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "Json escaped string defining the document representing the Schema. Used for schemas other than Swagger/OpenAPI."
+ },
+ "definitions": {
+ "type": "object",
+ "description": "Types definitions. Used for Swagger/OpenAPI schemas only, null otherwise."
+ }
+ },
+ "description": "Schema Document Properties."
+ },
+ "SubscriptionCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubscriptionContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Subscriptions list representation."
+ },
+ "SubscriptionContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SubscriptionContractProperties",
+ "description": "Subscription contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Subscription details."
+ },
+ "SubscriptionContractProperties": {
+ "properties": {
+ "ownerId": {
+ "type": "string",
+ "description": "The user resource identifier of the subscription owner. The value is a valid relative URL in the format of /users/{userId} where {userId} is a user identifier."
+ },
+ "scope": {
+ "type": "string",
+ "description": "Scope like /products/{productId} or /apis or /apis/{apiId}."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "The name of the subscription, or null if the subscription has no name.",
+ "minLength": 0,
+ "maxLength": 100
+ },
+ "state": {
+ "type": "string",
+ "description": "Subscription state. Possible states are * active – the subscription is active, * suspended – the subscription is blocked, and the subscriber cannot call any APIs of the product, * submitted – the subscription request has been made by the developer, but has not yet been approved or rejected, * rejected – the subscription request has been denied by an administrator, * cancelled – the subscription has been cancelled by the developer or administrator, * expired – the subscription reached its expiration date and was deactivated.",
+ "enum": [
+ "suspended",
+ "active",
+ "expired",
+ "submitted",
+ "rejected",
+ "cancelled"
+ ],
+ "x-ms-enum": {
+ "name": "SubscriptionState",
+ "modelAsString": false
+ }
+ },
+ "createdDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Subscription creation date. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n",
+ "readOnly": true
+ },
+ "startDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Subscription activation date. The setting is for audit purposes only and the subscription is not automatically activated. The subscription lifecycle can be managed by using the `state` property. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "expirationDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Subscription expiration date. The setting is for audit purposes only and the subscription is not automatically expired. The subscription lifecycle can be managed by using the `state` property. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "endDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Date when subscription was cancelled or expired. The setting is for audit purposes only and the subscription is not automatically cancelled. The subscription lifecycle can be managed by using the `state` property. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "notificationDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Upcoming subscription expiration notification date. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "primaryKey": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "Subscription primary key. This property will not be filled on 'GET' operations! Use '/listSecrets' POST request to get the value.",
+ "minLength": 1,
+ "maxLength": 256
+ },
+ "secondaryKey": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "Subscription secondary key. This property will not be filled on 'GET' operations! Use '/listSecrets' POST request to get the value.",
+ "minLength": 1,
+ "maxLength": 256
+ },
+ "stateComment": {
+ "type": "string",
+ "description": "Optional subscription comment added by an administrator when the state is changed to the 'rejected'."
+ },
+ "allowTracing": {
+ "type": "boolean",
+ "description": "Determines whether tracing is enabled",
+ "x-apim-code-nillable": true
+ }
+ },
+ "required": [
+ "scope",
+ "state"
+ ],
+ "description": "Subscription details."
+ },
+ "SubscriptionCreateParameterProperties": {
+ "properties": {
+ "ownerId": {
+ "type": "string",
+ "description": "User (user id path) for whom subscription is being created in form /users/{userId}"
+ },
+ "scope": {
+ "type": "string",
+ "description": "Scope like /products/{productId} or /apis or /apis/{apiId}."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Subscription name.",
+ "minLength": 1,
+ "maxLength": 100
+ },
+ "primaryKey": {
+ "type": "string",
+ "description": "Primary subscription key. If not specified during request key will be generated automatically.",
+ "minLength": 1,
+ "maxLength": 256
+ },
+ "secondaryKey": {
+ "type": "string",
+ "description": "Secondary subscription key. If not specified during request key will be generated automatically.",
+ "minLength": 1,
+ "maxLength": 256
+ },
+ "state": {
+ "type": "string",
+ "description": "Initial subscription state. If no value is specified, subscription is created with Submitted state. Possible states are * active – the subscription is active, * suspended – the subscription is blocked, and the subscriber cannot call any APIs of the product, * submitted – the subscription request has been made by the developer, but has not yet been approved or rejected, * rejected – the subscription request has been denied by an administrator, * cancelled – the subscription has been cancelled by the developer or administrator, * expired – the subscription reached its expiration date and was deactivated.",
+ "enum": [
+ "suspended",
+ "active",
+ "expired",
+ "submitted",
+ "rejected",
+ "cancelled"
+ ],
+ "x-ms-enum": {
+ "name": "SubscriptionState",
+ "modelAsString": false
+ }
+ },
+ "allowTracing": {
+ "type": "boolean",
+ "description": "Determines whether tracing can be enabled"
+ }
+ },
+ "required": [
+ "scope",
+ "displayName"
+ ],
+ "description": "Parameters supplied to the Create subscription operation."
+ },
+ "SubscriptionCreateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SubscriptionCreateParameterProperties",
+ "description": "Subscription contract properties."
+ }
+ },
+ "description": "Subscription create details."
+ },
+ "SubscriptionKeyParameterNamesContract": {
+ "properties": {
+ "header": {
+ "type": "string",
+ "description": "Subscription key header name."
+ },
+ "query": {
+ "type": "string",
+ "description": "Subscription key query string parameter name."
+ }
+ },
+ "description": "Subscription key parameter names details.",
+ "example": {
+ "subscriptionKeyParameterNames": {
+ "query": "customQueryParameterName",
+ "header": "customHeaderParameterName"
+ }
+ }
+ },
+ "SubscriptionsDelegationSettingsProperties": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Enable or disable delegation for subscriptions."
+ }
+ },
+ "description": "Subscriptions delegation settings properties."
+ },
+ "SubscriptionUpdateParameterProperties": {
+ "properties": {
+ "ownerId": {
+ "type": "string",
+ "description": "User identifier path: /users/{userId}"
+ },
+ "scope": {
+ "type": "string",
+ "description": "Scope like /products/{productId} or /apis or /apis/{apiId}"
+ },
+ "expirationDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Subscription expiration date. The setting is for audit purposes only and the subscription is not automatically expired. The subscription lifecycle can be managed by using the `state` property. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Subscription name."
+ },
+ "primaryKey": {
+ "type": "string",
+ "description": "Primary subscription key.",
+ "minLength": 1,
+ "maxLength": 256
+ },
+ "secondaryKey": {
+ "type": "string",
+ "description": "Secondary subscription key.",
+ "minLength": 1,
+ "maxLength": 256
+ },
+ "state": {
+ "type": "string",
+ "description": "Subscription state. Possible states are * active – the subscription is active, * suspended – the subscription is blocked, and the subscriber cannot call any APIs of the product, * submitted – the subscription request has been made by the developer, but has not yet been approved or rejected, * rejected – the subscription request has been denied by an administrator, * cancelled – the subscription has been cancelled by the developer or administrator, * expired – the subscription reached its expiration date and was deactivated.",
+ "enum": [
+ "suspended",
+ "active",
+ "expired",
+ "submitted",
+ "rejected",
+ "cancelled"
+ ],
+ "x-ms-enum": {
+ "name": "SubscriptionState",
+ "modelAsString": false
+ }
+ },
+ "stateComment": {
+ "type": "string",
+ "description": "Comments describing subscription state change by the administrator when the state is changed to the 'rejected'."
+ },
+ "allowTracing": {
+ "type": "boolean",
+ "description": "Determines whether tracing can be enabled"
+ }
+ },
+ "description": "Parameters supplied to the Update subscription operation."
+ },
+ "SubscriptionUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SubscriptionUpdateParameterProperties",
+ "description": "Subscription Update contract properties."
+ }
+ },
+ "description": "Subscription update details."
+ },
+ "TagCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TagContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Tag list representation."
+ },
+ "TagContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/TagContractProperties",
+ "description": "Tag entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Tag Contract details."
+ },
+ "TagContractProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Tag name.",
+ "maxLength": 160,
+ "minLength": 1
+ }
+ },
+ "required": [
+ "displayName"
+ ],
+ "description": "Tag contract Properties."
+ },
+ "TagCreateUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/TagContractProperties",
+ "description": "Properties supplied to Create Tag operation."
+ }
+ },
+ "description": "Parameters supplied to Create/Update Tag operations."
+ },
+ "TagDescriptionBaseProperties": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of the Tag."
+ },
+ "externalDocsUrl": {
+ "type": "string",
+ "description": "Absolute URL of external resources describing the tag.",
+ "maxLength": 2000
+ },
+ "externalDocsDescription": {
+ "type": "string",
+ "description": "Description of the external resources describing the tag."
+ }
+ },
+ "description": "Parameters supplied to the Create TagDescription operation."
+ },
+ "TagDescriptionCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TagDescriptionContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged TagDescription list representation."
+ },
+ "TagDescriptionContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/TagDescriptionContractProperties",
+ "description": "TagDescription entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Contract details."
+ },
+ "TagDescriptionContractProperties": {
+ "properties": {
+ "tagId": {
+ "type": "string",
+ "description": "Identifier of the tag in the form of /tags/{tagId}"
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Tag name.",
+ "maxLength": 160,
+ "minLength": 1
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/TagDescriptionBaseProperties"
+ }
+ ],
+ "description": "TagDescription contract Properties."
+ },
+ "TagDescriptionCreateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/TagDescriptionBaseProperties",
+ "description": "Properties supplied to Create TagDescription operation."
+ }
+ },
+ "description": "Parameters supplied to the Create TagDescription operation."
+ },
+ "TagResourceCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TagResourceContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Tag list representation."
+ },
+ "TagResourceContract": {
+ "properties": {
+ "tag": {
+ "$ref": "#/definitions/TagTagResourceContractProperties",
+ "description": "Tag associated with the resource."
+ },
+ "api": {
+ "$ref": "#/definitions/ApiTagResourceContractProperties",
+ "description": "Api associated with the tag."
+ },
+ "operation": {
+ "$ref": "#/definitions/OperationTagResourceContractProperties",
+ "description": "Operation associated with the tag."
+ },
+ "product": {
+ "$ref": "#/definitions/ProductTagResourceContractProperties",
+ "description": "Product associated with the tag."
+ }
+ },
+ "required": [
+ "tag"
+ ],
+ "description": "TagResource contract properties."
+ },
+ "TagTagResourceContractProperties": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Tag identifier"
+ },
+ "name": {
+ "type": "string",
+ "description": "Tag Name",
+ "minLength": 1,
+ "maxLength": 160
+ }
+ },
+ "description": "Contract defining the Tag property in the Tag Resource Contract"
+ },
+ "TenantConfigurationSyncStateContract": {
+ "properties": {
+ "branch": {
+ "type": "string",
+ "description": "The name of Git branch."
+ },
+ "commitId": {
+ "type": "string",
+ "description": "The latest commit Id."
+ },
+ "isExport": {
+ "type": "boolean",
+ "description": "value indicating if last sync was save (true) or deploy (false) operation."
+ },
+ "isSynced": {
+ "type": "boolean",
+ "description": "value indicating if last synchronization was later than the configuration change."
+ },
+ "isGitEnabled": {
+ "type": "boolean",
+ "description": "value indicating whether Git configuration access is enabled."
+ },
+ "syncDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The date of the latest synchronization. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "configurationChangeDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The date of the latest configuration change. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ }
+ },
+ "description": "Tenant Configuration Synchronization State."
+ },
+ "TermsOfServiceProperties": {
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "A terms of service text."
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "Display terms of service during a sign-up process."
+ },
+ "consentRequired": {
+ "type": "boolean",
+ "description": "Ask user for consent to the terms of service."
+ }
+ },
+ "description": "Terms of service contract properties."
+ },
+ "TokenBodyParameterContract": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "body parameter name."
+ },
+ "value": {
+ "type": "string",
+ "description": "body parameter value."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "description": "OAuth acquire token request body parameter (www-url-form-encoded)."
+ },
+ "UserCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UserContract"
+ },
+ "description": "Page values."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "Paged Users list representation."
+ },
+ "UserContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/UserContractProperties",
+ "description": "User entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "User details."
+ },
+ "UserContractProperties": {
+ "properties": {
+ "firstName": {
+ "type": "string",
+ "description": "First name."
+ },
+ "lastName": {
+ "type": "string",
+ "description": "Last name."
+ },
+ "email": {
+ "type": "string",
+ "description": "Email address."
+ },
+ "registrationDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Date of user registration. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "groups": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "./definitions.json#/definitions/GroupContractProperties"
+ },
+ "description": "Collection of groups user is part of."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UserEntityBaseParameters"
+ }
+ ],
+ "description": "User profile."
+ },
+ "UserCreateParameterProperties": {
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "Email address. Must not be empty and must be unique within the service instance.",
+ "minLength": 1,
+ "maxLength": 254
+ },
+ "firstName": {
+ "type": "string",
+ "description": "First name.",
+ "minLength": 1,
+ "maxLength": 100
+ },
+ "lastName": {
+ "type": "string",
+ "description": "Last name.",
+ "minLength": 1,
+ "maxLength": 100
+ },
+ "password": {
+ "type": "string",
+ "description": "User Password. If no value is provided, a default password is generated."
+ },
+ "appType": {
+ "type": "string",
+ "description": "Determines the type of application which send the create user request. Default is legacy portal.",
+ "enum": [
+ "portal",
+ "developerPortal"
+ ],
+ "x-ms-enum": {
+ "name": "AppType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "portal",
+ "description": "User create request was sent by legacy developer portal."
+ },
+ {
+ "value": "developerPortal",
+ "description": "User create request was sent by new developer portal."
+ }
+ ]
+ }
+ },
+ "confirmation": {
+ "type": "string",
+ "description": "Determines the type of confirmation e-mail that will be sent to the newly created user.",
+ "enum": [
+ "signup",
+ "invite"
+ ],
+ "x-ms-enum": {
+ "name": "Confirmation",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "signup",
+ "description": "Send an e-mail to the user confirming they have successfully signed up."
+ },
+ {
+ "value": "invite",
+ "description": "Send an e-mail inviting the user to sign-up and complete registration."
+ }
+ ]
+ }
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UserEntityBaseParameters"
+ }
+ ],
+ "required": [
+ "email",
+ "firstName",
+ "lastName"
+ ],
+ "description": "Parameters supplied to the Create User operation."
+ },
+ "UserCreateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/UserCreateParameterProperties",
+ "description": "User entity create contract properties."
+ }
+ },
+ "description": "User create details."
+ },
+ "UserEntityBaseParameters": {
+ "properties": {
+ "state": {
+ "type": "string",
+ "description": "Account state. Specifies whether the user is active or not. Blocked users are unable to sign into the developer portal or call any APIs of subscribed products. Default state is Active.",
+ "enum": [
+ "active",
+ "blocked",
+ "pending",
+ "deleted"
+ ],
+ "default": "active",
+ "x-ms-enum": {
+ "name": "UserState",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "active",
+ "description": "User state is active."
+ },
+ {
+ "value": "blocked",
+ "description": "User is blocked. Blocked users cannot authenticate at developer portal or call API."
+ },
+ {
+ "value": "pending",
+ "description": "User account is pending. Requires identity confirmation before it can be made active."
+ },
+ {
+ "value": "deleted",
+ "description": "User account is closed. All identities and related entities are removed."
+ }
+ ]
+ }
+ },
+ "note": {
+ "type": "string",
+ "description": "Optional note about a user set by the administrator."
+ },
+ "identities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UserIdentityContract"
+ },
+ "description": "Collection of user identities."
+ }
+ },
+ "description": "User Entity Base Parameters set."
+ },
+ "UserIdentityCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UserIdentityContract"
+ },
+ "description": "User Identity values."
+ },
+ "count": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total record count number across all pages."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any."
+ }
+ },
+ "description": "List of Users Identity list representation."
+ },
+ "UserIdentityContract": {
+ "properties": {
+ "provider": {
+ "type": "string",
+ "description": "Identity provider name."
+ },
+ "id": {
+ "type": "string",
+ "description": "Identifier value within provider."
+ }
+ },
+ "description": "User identity details."
+ },
+ "UserTokenParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/UserTokenParameterProperties",
+ "description": "User Token Parameter contract properties."
+ }
+ },
+ "description": "Get User Token parameters."
+ },
+ "UserTokenParameterProperties": {
+ "properties": {
+ "keyType": {
+ "type": "string",
+ "description": "The Key to be used to generate token for user.",
+ "enum": [
+ "primary",
+ "secondary"
+ ],
+ "default": "primary",
+ "x-ms-enum": {
+ "name": "KeyType",
+ "modelAsString": false
+ }
+ },
+ "expiry": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The Expiry time of the Token. Maximum token expiry time is set to 30 days. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ }
+ },
+ "required": [
+ "keyType",
+ "expiry"
+ ],
+ "description": "Parameters supplied to the Get User Token operation."
+ },
+ "UserTokenResult": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "Shared Access Authorization token for the User."
+ }
+ },
+ "description": "Get User Token response details."
+ },
+ "UserUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/UserUpdateParametersProperties",
+ "description": "User entity update contract properties."
+ }
+ },
+ "description": "User update parameters."
+ },
+ "UserUpdateParametersProperties": {
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "Email address. Must not be empty and must be unique within the service instance.",
+ "minLength": 1,
+ "maxLength": 254
+ },
+ "password": {
+ "type": "string",
+ "description": "User Password."
+ },
+ "firstName": {
+ "type": "string",
+ "description": "First name.",
+ "minLength": 1,
+ "maxLength": 100
+ },
+ "lastName": {
+ "type": "string",
+ "description": "Last name.",
+ "minLength": 1,
+ "maxLength": 100
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UserEntityBaseParameters"
+ }
+ ],
+ "description": "Parameters supplied to the Update User operation."
+ },
+ "X509CertificateName": {
+ "properties": {
+ "name": {
+ "description": "Common Name of the Certificate.",
+ "type": "string"
+ },
+ "issuerCertificateThumbprint": {
+ "description": "Thumbprint for the Issuer of the Certificate.",
+ "type": "string"
+ }
+ },
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-windows-cluster-x509-security"
+ },
+ "description": "Properties of server X509Names."
+ },
+ "ClientSecretContract": {
+ "properties": {
+ "clientSecret": {
+ "type": "string",
+ "description": "Client or app secret used in IdentityProviders, Aad, OpenID or OAuth."
+ }
+ },
+ "description": "Client or app secret used in IdentityProviders, Aad, OpenID or OAuth."
+ },
+ "NamedValueSecretContract": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "This is secret value of the NamedValue entity."
+ }
+ },
+ "description": "Client or app secret used in IdentityProviders, Aad, OpenID or OAuth."
+ },
+ "PortalSettingValidationKeyContract": {
+ "properties": {
+ "validationKey": {
+ "type": "string",
+ "description": "This is secret value of the validation key in portal settings."
+ }
+ },
+ "description": "Client or app secret used in IdentityProviders, Aad, OpenID or OAuth."
+ },
+ "SubscriptionKeysContract": {
+ "properties": {
+ "primaryKey": {
+ "type": "string",
+ "description": "Subscription primary key.",
+ "minLength": 1,
+ "maxLength": 256
+ },
+ "secondaryKey": {
+ "type": "string",
+ "description": "Subscription secondary key.",
+ "minLength": 1,
+ "maxLength": 256
+ }
+ },
+ "description": "Subscription keys."
+ },
+ "GatewayCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GatewayContract"
+ },
+ "description": "Page values.",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any.",
+ "readOnly": true
+ }
+ },
+ "description": "Paged Gateway list representation."
+ },
+ "GatewayContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GatewayContractProperties",
+ "description": "Gateway details."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Gateway details."
+ },
+ "GatewayContractProperties": {
+ "properties": {
+ "locationData": {
+ "$ref": "#/definitions/ResourceLocationDataContract",
+ "description": "Gateway location."
+ },
+ "description": {
+ "type": "string",
+ "description": "Gateway description",
+ "maxLength": 1000
+ }
+ },
+ "description": "Properties of the Gateway contract."
+ },
+ "ResourceLocationDataContract": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "A canonical name for the geographic or physical location.",
+ "maxLength": 256
+ },
+ "city": {
+ "type": "string",
+ "description": "The city or locality where the resource is located.",
+ "maxLength": 256
+ },
+ "district": {
+ "type": "string",
+ "description": "The district, state, or province where the resource is located.",
+ "maxLength": 256
+ },
+ "countryOrRegion": {
+ "type": "string",
+ "description": "The country or region where the resource is located.",
+ "maxLength": 256
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "description": "Resource location data properties."
+ },
+ "GatewayKeysContract": {
+ "properties": {
+ "primary": {
+ "type": "string",
+ "description": "Primary gateway key."
+ },
+ "secondary": {
+ "type": "string",
+ "description": "Secondary gateway key."
+ }
+ },
+ "description": "Gateway authentication keys."
+ },
+ "GatewayTokenRequestContract": {
+ "properties": {
+ "keyType": {
+ "type": "string",
+ "description": "The Key to be used to generate gateway token.",
+ "enum": [
+ "primary",
+ "secondary"
+ ],
+ "default": "primary",
+ "x-ms-enum": {
+ "name": "KeyType",
+ "modelAsString": false
+ }
+ },
+ "expiry": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The Expiry time of the Token. Maximum token expiry time is set to 30 days. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ }
+ },
+ "required": [
+ "keyType",
+ "expiry"
+ ],
+ "description": "Gateway token request contract properties."
+ },
+ "GatewayTokenContract": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "Shared Access Authentication token value for the Gateway."
+ }
+ },
+ "description": "Gateway access token."
+ },
+ "GatewayKeyRegenerationRequestContract": {
+ "properties": {
+ "keyType": {
+ "type": "string",
+ "description": "The Key being regenerated.",
+ "enum": [
+ "primary",
+ "secondary"
+ ],
+ "x-ms-enum": {
+ "name": "KeyType",
+ "modelAsString": false
+ }
+ }
+ },
+ "required": [
+ "keyType"
+ ],
+ "description": "Gateway key regeneration request contract properties."
+ },
+ "GatewayHostnameConfigurationCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GatewayHostnameConfigurationContract"
+ },
+ "description": "Page values.",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any.",
+ "readOnly": true
+ }
+ },
+ "description": "Paged Gateway hostname configuration list representation."
+ },
+ "GatewayHostnameConfigurationContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GatewayHostnameConfigurationContractProperties",
+ "description": "Gateway hostname configuration details."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Gateway hostname configuration details."
+ },
+ "GatewayHostnameConfigurationContractProperties": {
+ "properties": {
+ "hostname": {
+ "type": "string",
+ "description": "Hostname value. Supports valid domain name, partial or full wildcard"
+ },
+ "certificateId": {
+ "type": "string",
+ "description": "Identifier of Certificate entity that will be used for TLS connection establishment"
+ },
+ "negotiateClientCertificate": {
+ "type": "boolean",
+ "description": "Determines whether gateway requests client certificate"
+ },
+ "tls10Enabled": {
+ "type": "boolean",
+ "description": "Specifies if TLS 1.0 is supported"
+ },
+ "tls11Enabled": {
+ "type": "boolean",
+ "description": "Specifies if TLS 1.1 is supported"
+ },
+ "http2Enabled": {
+ "type": "boolean",
+ "description": "Specifies if HTTP/2.0 is supported"
+ }
+ },
+ "description": "Gateway hostname configuration details."
+ },
+ "AssociationContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "properties": {
+ "provisioningState": {
+ "type": "string",
+ "description": "Provisioning state.",
+ "enum": [
+ "created"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": false
+ }
+ }
+ },
+ "description": "Association entity contract properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Association entity details."
+ },
+ "ContentTypeCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContentTypeContract"
+ },
+ "description": "Collection of content types.",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link, if any.",
+ "readOnly": true
+ }
+ },
+ "description": "Paged list of content types."
+ },
+ "ContentTypeContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ContentTypeContractProperties",
+ "description": "Properties of the content type."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Content type contract details."
+ },
+ "ContentTypeContractProperties": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Content type identifier"
+ },
+ "name": {
+ "type": "string",
+ "description": "Content type name. Must be 1 to 250 characters long."
+ },
+ "description": {
+ "type": "string",
+ "description": "Content type description."
+ },
+ "schema": {
+ "type": "object",
+ "description": "Content type schema."
+ },
+ "version": {
+ "type": "string",
+ "description": "Content type version."
+ }
+ }
+ },
+ "ContentItemCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContentItemContract"
+ },
+ "description": "Collection of content items.",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link, if any.",
+ "readOnly": true
+ }
+ },
+ "description": "Paged list of content items."
+ },
+ "ContentItemContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ContentItemContractProperties",
+ "description": "Properties of the content item."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Content type contract details."
+ },
+ "ContentItemContractProperties": {
+ "properties": {},
+ "additionalProperties": true
+ },
+ "DeletedServicesCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeletedServiceContract"
+ },
+ "description": "Page values.",
+ "readOnly": true
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Next page link if any.",
+ "readOnly": true
+ }
+ },
+ "description": "Paged deleted Api Management Services List Representation."
+ },
+ "DeletedServiceContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DeletedServiceContractProperties",
+ "description": "Deleted Api Management Service details."
+ },
+ "location": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Api Management Service Master Location."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Deleted Api Management Service information."
+ },
+ "DeletedServiceContractProperties": {
+ "properties": {
+ "serviceId": {
+ "type": "string",
+ "description": "Fully-qualified API Management Service Resource ID"
+ },
+ "scheduledPurgeDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "UTC Date and Time when the service will be automatically purged. The date conforms to the following format: yyyy-MM-ddTHH:mm:ssZ as specified by the ISO 8601 standard."
+ },
+ "deletionDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "UTC Timestamp when the service was soft-deleted. The date conforms to the following format: yyyy-MM-ddTHH:mm:ssZ as specified by the ISO 8601 standard."
+ }
+ }
+ }
+ },
+ "parameters": {}
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementApplyNetworkConfigurationUpdates.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementApplyNetworkConfigurationUpdates.json
new file mode 100644
index 000000000000..bcb094562c01
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementApplyNetworkConfigurationUpdates.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "location": "west us"
+ }
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/dGVjaGVkX01hbmFnZVJvbGVfNWRiNGI3Ng==?api-version=2020-06-01-preview"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "UID": "52ed5986-717b-45b4-b17c-3df8db372cff"
+ },
+ "location": "East Asia",
+ "etag": "AAAAAAAXX6Y=",
+ "properties": {
+ "publisherEmail": "admin@live.com",
+ "publisherName": "Contoso",
+ "provisioningState": "Succeeded",
+ "targetProvisioningState": "",
+ "createdAtUtc": "2015-09-22T01:50:34.7921566Z",
+ "gatewayUrl": "https://apimService1.azure-api.net",
+ "portalUrl": "https://apimService1.portal.azure-api.net",
+ "managementApiUrl": "https://apimService1.management.azure-api.net",
+ "scmUrl": "https://apimService1.scm.azure-api.net",
+ "hostnameConfigurations": [],
+ "publicIPAddresses": [
+ "207.46.155.24"
+ ],
+ "virtualNetworkConfiguration": {
+ "subnetResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/eastUsVirtualNetwork/subnets/apimSubnet"
+ },
+ "virtualNetworkType": "External"
+ },
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementAuthorizationServerListSecrets.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementAuthorizationServerListSecrets.json
new file mode 100644
index 000000000000..41d62225bcbb
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementAuthorizationServerListSecrets.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "authsid": "newauthServer2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "clientSecret": "2",
+ "resourceOwnerUsername": "un",
+ "resourceOwnerPassword": "pwd"
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementBackendReconnect.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementBackendReconnect.json
new file mode 100644
index 000000000000..d731afb7bdea
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementBackendReconnect.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "backendId": "proxybackend",
+ "parameters": {
+ "properties": {
+ "after": "PT3S"
+ }
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateAILogger.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateAILogger.json
new file mode 100644
index 000000000000..8cf894468d7b
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateAILogger.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "loggerId": "loggerId",
+ "parameters": {
+ "properties": {
+ "loggerType": "applicationInsights",
+ "description": "adding a new logger",
+ "credentials": {
+ "instrumentationKey": "11................a1"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/loggers/loggerId",
+ "type": "Microsoft.ApiManagement/service/loggers",
+ "name": "loggerId",
+ "properties": {
+ "loggerType": "applicationInsights",
+ "description": null,
+ "credentials": {
+ "instrumentationKey": "{{5a.......2a}}"
+ },
+ "isBuffered": false,
+ "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/microsoft.insights/components/airesource"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/loggers/loggerId",
+ "type": "Microsoft.ApiManagement/service/loggers",
+ "name": "loggerId",
+ "properties": {
+ "loggerType": "applicationInsights",
+ "description": null,
+ "credentials": {
+ "instrumentationKey": "{{5a.......2a}}"
+ },
+ "isBuffered": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApi.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApi.json
new file mode 100644
index 000000000000..619b795d5b9c
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApi.json
@@ -0,0 +1,98 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "tempgroup",
+ "parameters": {
+ "properties": {
+ "description": "apidescription5200",
+ "authenticationSettings": {
+ "oAuth2": {
+ "authorizationServerId": "authorizationServerId2283",
+ "scope": "oauth2scope2580"
+ }
+ },
+ "subscriptionKeyParameterNames": {
+ "header": "header4520",
+ "query": "query3037"
+ },
+ "displayName": "apiname1463",
+ "serviceUrl": "http://newechoapi.cloudapp.net/api",
+ "path": "newapiPath",
+ "protocols": [
+ "https",
+ "http"
+ ]
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/apiid9419",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "apiid9419",
+ "properties": {
+ "displayName": "apiname1463",
+ "apiRevision": "1",
+ "description": "apidescription5200",
+ "serviceUrl": "http://newechoapi.cloudapp.net/api",
+ "path": "newapiPath",
+ "protocols": [
+ "http",
+ "https"
+ ],
+ "authenticationSettings": {
+ "oAuth2": {
+ "authorizationServerId": "authorizationServerId2283",
+ "scope": "oauth2scope2580"
+ }
+ },
+ "subscriptionKeyParameterNames": {
+ "header": "header4520",
+ "query": "query3037"
+ },
+ "isCurrent": true,
+ "isOnline": true
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/tempgroup?api-version=2020-06-01-preview&asyncId=5c730e343244df1b9cb56e85&asyncCode=201"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/apiid9419",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "apiid9419",
+ "properties": {
+ "displayName": "apiname1463",
+ "apiRevision": "1",
+ "description": "apidescription5200",
+ "serviceUrl": "http://newechoapi.cloudapp.net/api",
+ "path": "newapiPath",
+ "protocols": [
+ "http",
+ "https"
+ ],
+ "authenticationSettings": {
+ "oAuth2": {
+ "authorizationServerId": "authorizationServerId2283",
+ "scope": "oauth2scope2580"
+ }
+ },
+ "subscriptionKeyParameterNames": {
+ "header": "header4520",
+ "query": "query3037"
+ },
+ "isCurrent": true,
+ "isOnline": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiClone.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiClone.json
new file mode 100644
index 000000000000..0d8e6c534d20
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiClone.json
@@ -0,0 +1,79 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "echo-api2",
+ "parameters": {
+ "properties": {
+ "displayName": "Echo API2",
+ "description": "Copy of Existing Echo Api including Operations.",
+ "subscriptionRequired": true,
+ "serviceUrl": "http://echoapi.cloudapp.net/api",
+ "path": "echo2",
+ "protocols": [
+ "http",
+ "https"
+ ],
+ "isCurrent": true,
+ "sourceApiId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/58a4aeac497000007d040001"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/echoapi2",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "echoapi2",
+ "properties": {
+ "displayName": "Echo API2",
+ "apiRevision": "1",
+ "description": "Copy of Existing Echo Api including Operations.",
+ "subscriptionRequired": true,
+ "serviceUrl": "http://echoapi.cloudapp.net/api",
+ "path": "echo2",
+ "protocols": [
+ "http",
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/tempgroup?api-version=2020-06-01-preview&asyncId=5c730e343244df1b9cb56e85&asyncCode=201"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/echoapi2",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "echoapi2",
+ "properties": {
+ "displayName": "Echo API2",
+ "apiRevision": "1",
+ "description": "Copy of Existing Echo Api including Operations.",
+ "subscriptionRequired": true,
+ "serviceUrl": "http://echoapi.cloudapp.net/api",
+ "path": "echo2",
+ "protocols": [
+ "http",
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiDiagnostic.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiDiagnostic.json
new file mode 100644
index 000000000000..ae3bdad89557
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiDiagnostic.json
@@ -0,0 +1,160 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "diagnosticId": "applicationinsights",
+ "apiId": "57d1f7558aa04f15146d9d8a",
+ "parameters": {
+ "properties": {
+ "alwaysLog": "allErrors",
+ "loggerId": "/loggers/applicationinsights",
+ "sampling": {
+ "samplingType": "fixed",
+ "percentage": 50
+ },
+ "frontend": {
+ "request": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ },
+ "response": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ }
+ },
+ "backend": {
+ "request": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ },
+ "response": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/57d1f7558aa04f15146d9d8a/diagnostics/applicationinsights",
+ "type": "Microsoft.ApiManagement/service/apis/diagnostics",
+ "name": "applicationinsights",
+ "properties": {
+ "alwaysLog": "allErrors",
+ "loggerId": "/loggers/applicationinsights",
+ "sampling": {
+ "samplingType": "fixed",
+ "percentage": 50
+ },
+ "frontend": {
+ "request": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ },
+ "response": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ }
+ },
+ "backend": {
+ "request": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ },
+ "response": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ }
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/57d1f7558aa04f15146d9d8a/diagnostics/applicationinsights",
+ "type": "Microsoft.ApiManagement/service/apis/diagnostics",
+ "name": "applicationinsights",
+ "properties": {
+ "alwaysLog": "allErrors",
+ "loggerId": "/loggers/applicationinsights",
+ "sampling": {
+ "samplingType": "fixed",
+ "percentage": 50
+ },
+ "frontend": {
+ "request": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ },
+ "response": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ }
+ },
+ "backend": {
+ "request": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ },
+ "response": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiIssue.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiIssue.json
new file mode 100644
index 000000000000..63725f8591b4
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiIssue.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "issueId": "57d2ef278aa04f0ad01d6cdc",
+ "apiId": "57d1f7558aa04f15146d9d8a",
+ "parameters": {
+ "properties": {
+ "title": "New API issue",
+ "description": "New API issue description",
+ "createdDate": "2018-02-01T22:21:20.467Z",
+ "state": "open",
+ "userId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/1"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/57d1f7558aa04f15146d9d8a/issues/57d2ef278aa04f0ad01d6cdc",
+ "type": "Microsoft.ApiManagement/service/apis/issues",
+ "name": "57d2ef278aa04f0ad01d6cdc",
+ "properties": {
+ "title": "New API issue",
+ "description": "New API issue description",
+ "createdDate": "2018-02-01T22:21:20.467Z",
+ "state": "open",
+ "userId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/1"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/57d1f7558aa04f15146d9d8a/issues/57d2ef278aa04f0ad01d6cdc",
+ "type": "Microsoft.ApiManagement/service/apis/issues",
+ "name": "57d2ef278aa04f0ad01d6cdc",
+ "properties": {
+ "title": "New API issue",
+ "description": "New API issue description",
+ "createdDate": "2018-02-01T22:21:20.467Z",
+ "state": "open",
+ "userId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiIssueAttachment.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiIssueAttachment.json
new file mode 100644
index 000000000000..0a18648f2fe7
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiIssueAttachment.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "issueId": "57d2ef278aa04f0ad01d6cdc",
+ "apiId": "57d1f7558aa04f15146d9d8a",
+ "attachmentId": "57d2ef278aa04f0888cba3f3",
+ "parameters": {
+ "properties": {
+ "title": "Issue attachment.",
+ "contentFormat": "image/jpeg",
+ "content": "IEJhc2U2NA=="
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/57d1f7558aa04f15146d9d8a/issues/57d2ef278aa04f0ad01d6cdc/attachments/57d2ef278aa04f0888cba3f3",
+ "type": "Microsoft.ApiManagement/service/apis/issues/attachments",
+ "name": "57d2ef278aa04f0888cba3f3",
+ "properties": {
+ "title": "Issue attachment.",
+ "contentFormat": "link",
+ "content": "https://.../image.jpg"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/57d1f7558aa04f15146d9d8a/issues/57d2ef278aa04f0ad01d6cdc/attachments/57d2ef278aa04f0888cba3f3",
+ "type": "Microsoft.ApiManagement/service/apis/issues/attachments",
+ "name": "57d2ef278aa04f0888cba3f3",
+ "properties": {
+ "title": "Issue attachment.",
+ "contentFormat": "link",
+ "content": "https://.../image.jpg"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiIssueComment.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiIssueComment.json
new file mode 100644
index 000000000000..69548de02f8c
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiIssueComment.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "issueId": "57d2ef278aa04f0ad01d6cdc",
+ "apiId": "57d1f7558aa04f15146d9d8a",
+ "commentId": "599e29ab193c3c0bd0b3e2fb",
+ "parameters": {
+ "properties": {
+ "text": "Issue comment.",
+ "createdDate": "2018-02-01T22:21:20.467Z",
+ "userId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/1"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/57d1f7558aa04f15146d9d8a/issues/57d2ef278aa04f0ad01d6cdc/comments/599e29ab193c3c0bd0b3e2fb",
+ "type": "Microsoft.ApiManagement/service/apis/issues/comments",
+ "name": "599e29ab193c3c0bd0b3e2fb",
+ "properties": {
+ "text": "Issue comment.",
+ "createdDate": "2018-02-01T22:21:20.467Z",
+ "userId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/1"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/57d1f7558aa04f15146d9d8a/issues/57d2ef278aa04f0ad01d6cdc/comments/599e29ab193c3c0bd0b3e2fb",
+ "type": "Microsoft.ApiManagement/service/apis/issues/comments",
+ "name": "599e29ab193c3c0bd0b3e2fb",
+ "properties": {
+ "text": "Issue comment.",
+ "createdDate": "2018-02-01T22:21:20.467Z",
+ "userId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiNewVersionUsingExistingApi.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiNewVersionUsingExistingApi.json
new file mode 100644
index 000000000000..033315e00ef2
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiNewVersionUsingExistingApi.json
@@ -0,0 +1,95 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "echoapiv3",
+ "parameters": {
+ "properties": {
+ "displayName": "Echo API2",
+ "description": "Create Echo API into a new Version using Existing Version Set and Copy all Operations.",
+ "subscriptionRequired": true,
+ "serviceUrl": "http://echoapi.cloudapp.net/api",
+ "path": "echo2",
+ "protocols": [
+ "http",
+ "https"
+ ],
+ "isCurrent": true,
+ "apiVersion": "v4",
+ "sourceApiId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/echoPath",
+ "apiVersionSetId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apiVersionSets/aa9c59e6-c0cd-4258-9356-9ca7d2f0b458"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/echoapiv3",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "echoapiv3",
+ "properties": {
+ "displayName": "Echo API2",
+ "apiRevision": "1",
+ "description": "Create Echo API into a new Version using Existing Version Set and Copy all Operations.",
+ "subscriptionRequired": true,
+ "serviceUrl": "http://echoapi.cloudapp.net/api",
+ "path": "echo2",
+ "protocols": [
+ "http",
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true,
+ "apiVersion": "v4",
+ "apiVersionSetId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apiVersionSets/aa9c59e6-c0cd-4258-9356-9ca7d2f0b458",
+ "apiVersionSet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apiVersionSets/aa9c59e6-c0cd-4258-9356-9ca7d2f0b458",
+ "name": "Echo API2",
+ "versioningScheme": "Segment"
+ }
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/tempgroup?api-version=2020-06-01-preview&asyncId=5c730e343244df1b9cb56e85&asyncCode=201"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/echoapiv3",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "echoapiv3",
+ "properties": {
+ "displayName": "Echo API2",
+ "apiRevision": "1",
+ "description": "Create Echo API into a new Version using Existing Version Set and Copy all Operations.",
+ "subscriptionRequired": true,
+ "serviceUrl": "http://echoapi.cloudapp.net/api",
+ "path": "echo2",
+ "protocols": [
+ "http",
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true,
+ "apiVersion": "v4",
+ "apiVersionSetId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apiVersionSets/aa9c59e6-c0cd-4258-9356-9ca7d2f0b458",
+ "apiVersionSet": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apiVersionSets/aa9c59e6-c0cd-4258-9356-9ca7d2f0b458",
+ "name": "Echo API2",
+ "versioningScheme": "Segment"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiOperation.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiOperation.json
new file mode 100644
index 000000000000..76573a3df7c0
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiOperation.json
@@ -0,0 +1,130 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "PetStoreTemplate2",
+ "operationId": "newoperations",
+ "parameters": {
+ "properties": {
+ "displayName": "createUser2",
+ "method": "POST",
+ "urlTemplate": "/user1",
+ "templateParameters": [],
+ "description": "This can only be done by the logged in user.",
+ "request": {
+ "description": "Created user object",
+ "queryParameters": [],
+ "headers": [],
+ "representations": [
+ {
+ "contentType": "application/json",
+ "schemaId": "592f6c1d0af5840ca8897f0c",
+ "typeName": "User"
+ }
+ ]
+ },
+ "responses": [
+ {
+ "statusCode": 200,
+ "description": "successful operation",
+ "representations": [
+ {
+ "contentType": "application/xml"
+ },
+ {
+ "contentType": "application/json"
+ }
+ ],
+ "headers": []
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/PetStoreTemplate2/operations/newoperations",
+ "type": "Microsoft.ApiManagement/service/apis/operations",
+ "name": "newoperations",
+ "properties": {
+ "displayName": "createUser2",
+ "method": "POST",
+ "urlTemplate": "/user1",
+ "templateParameters": [],
+ "description": "This can only be done by the logged in user.",
+ "request": {
+ "description": "Created user object",
+ "queryParameters": [],
+ "headers": [],
+ "representations": [
+ {
+ "contentType": "application/json",
+ "schemaId": "592f6c1d0af5840ca8897f0c",
+ "typeName": "User"
+ }
+ ]
+ },
+ "responses": [
+ {
+ "statusCode": 200,
+ "description": "successful operation",
+ "representations": [
+ {
+ "contentType": "application/xml"
+ },
+ {
+ "contentType": "application/json"
+ }
+ ],
+ "headers": []
+ }
+ ]
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/PetStoreTemplate2/operations/newoperations",
+ "type": "Microsoft.ApiManagement/service/apis/operations",
+ "name": "newoperations",
+ "properties": {
+ "displayName": "createUser2",
+ "method": "POST",
+ "urlTemplate": "/user1",
+ "templateParameters": [],
+ "description": "This can only be done by the logged in user.",
+ "request": {
+ "description": "Created user object",
+ "queryParameters": [],
+ "headers": [],
+ "representations": [
+ {
+ "contentType": "application/json",
+ "schemaId": "592f6c1d0af5840ca8897f0c",
+ "typeName": "User"
+ }
+ ]
+ },
+ "responses": [
+ {
+ "statusCode": 200,
+ "description": "successful operation",
+ "representations": [
+ {
+ "contentType": "application/xml"
+ },
+ {
+ "contentType": "application/json"
+ }
+ ],
+ "headers": []
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiOperationPolicy.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiOperationPolicy.json
new file mode 100644
index 000000000000..54b38e94686e
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiOperationPolicy.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "5600b57e7e8880006a040001",
+ "operationId": "5600b57e7e8880006a080001",
+ "policyId": "policy",
+ "If-Match": "*",
+ "parameters": {
+ "properties": {
+ "format": "xml",
+ "value": ""
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/5600b57e7e8880006a040001/operations/5600b57e7e8880006a080001/policies/policy",
+ "type": "Microsoft.ApiManagement/service/apis/operations/policies",
+ "name": "policy",
+ "properties": {
+ "value": "\r\n \r\n \r\n \r\n \r\n \r\n"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/5600b57e7e8880006a040001/operations/5600b57e7e8880006a080001/policies/policy",
+ "type": "Microsoft.ApiManagement/service/apis/operations/policies",
+ "name": "policy",
+ "properties": {
+ "value": "\r\n \r\n \r\n \r\n \r\n \r\n"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiOperationTag.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiOperationTag.json
new file mode 100644
index 000000000000..ae4f356cad94
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiOperationTag.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "5931a75ae4bbd512a88c680b",
+ "operationId": "5931a75ae4bbd512a88c680a",
+ "tagId": "tagId1"
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
+ "type": "Microsoft.ApiManagement/service/tags",
+ "name": "tagId1",
+ "properties": {
+ "displayName": "tag1"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
+ "type": "Microsoft.ApiManagement/service/tags",
+ "name": "tagId1",
+ "properties": {
+ "displayName": "tag1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiPolicy.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiPolicy.json
new file mode 100644
index 000000000000..b9e309d08fe8
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiPolicy.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "5600b57e7e8880006a040001",
+ "policyId": "policy",
+ "If-Match": "*",
+ "parameters": {
+ "properties": {
+ "format": "xml",
+ "value": ""
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/5600b57e7e8880006a040001/policies/policy",
+ "type": "Microsoft.ApiManagement/service/apis/policies",
+ "name": "policy",
+ "properties": {
+ "value": "\r\n \r\n \r\n \r\n \r\n \r\n"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/5600b57e7e8880006a040001/policies/policy",
+ "type": "Microsoft.ApiManagement/service/apis/policies",
+ "name": "policy",
+ "properties": {
+ "value": "\r\n \r\n \r\n \r\n \r\n \r\n"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiPolicyNonXmlEncoded.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiPolicyNonXmlEncoded.json
new file mode 100644
index 000000000000..34d68490eeb9
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiPolicyNonXmlEncoded.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "5600b57e7e8880006a040001",
+ "policyId": "policy",
+ "If-Match": "*",
+ "parameters": {
+ "properties": {
+ "value": "\r\n \r\n \r\n \r\n \"@(context.Request.Headers.FirstOrDefault(h => h.Ke==\"Via\"))\" \r\n \r\n \r\n ",
+ "format": "rawxml"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/4c1a3bc6-89f9-46fe-a175-5d8984b25095/resourcegroups/Api-DF-West-US/providers/Microsoft.ApiManagement/service/samirmsiservice2/apis/echo-api/operations/create-resource/policies/policy",
+ "type": "Microsoft.ApiManagement/service/apis/operations/policies",
+ "name": "policy",
+ "properties": {
+ "value": "\r\n \r\n \r\n \r\n \"@(context.Request.Headers.FirstOrDefault(h => h.Ke==\"Via\"))\" \r\n \r\n \r\n"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/4c1a3bc6-89f9-46fe-a175-5d8984b25095/resourcegroups/Api-DF-West-US/providers/Microsoft.ApiManagement/service/samirmsiservice2/apis/echo-api/operations/create-resource/policies/policy",
+ "type": "Microsoft.ApiManagement/service/apis/operations/policies",
+ "name": "policy",
+ "properties": {
+ "value": "\r\n \r\n \r\n \r\n \"@(context.Request.Headers.FirstOrDefault(h => h.Ke==\"Via\"))\" \r\n \r\n \r\n"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiRelease.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiRelease.json
new file mode 100644
index 000000000000..8a43aa5e8f81
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiRelease.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "a1",
+ "releaseId": "testrev",
+ "parameters": {
+ "properties": {
+ "apiId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/a1",
+ "notes": "yahooagain"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/a1/releases/testrev",
+ "type": "Microsoft.ApiManagement/service/apis/releases",
+ "name": "testrev",
+ "properties": {
+ "apiId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/a1",
+ "createdDateTime": "2018-02-08T20:52:00.65Z",
+ "updatedDateTime": "2018-02-08T20:52:00.65Z",
+ "notes": "yahooagain"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/a1/releases/testrev",
+ "type": "Microsoft.ApiManagement/service/apis/releases",
+ "name": "testrev",
+ "properties": {
+ "apiId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/a1",
+ "createdDateTime": "2018-02-08T20:52:00.65Z",
+ "updatedDateTime": "2018-02-08T20:52:00.65Z",
+ "notes": "yahooagain"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiRevisionFromExistingApi.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiRevisionFromExistingApi.json
new file mode 100644
index 000000000000..5eb9fc470247
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiRevisionFromExistingApi.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "echo-api;rev=3",
+ "parameters": {
+ "properties": {
+ "path": "echo",
+ "serviceUrl": "http://echoapi.cloudapp.net/apiv3",
+ "sourceApiId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/echo-api",
+ "apiRevisionDescription": "Creating a Revision of an existing API"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/echo-api;rev=3",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "echo-api;rev=3",
+ "properties": {
+ "displayName": "Echo API",
+ "apiRevision": "3",
+ "subscriptionRequired": true,
+ "serviceUrl": "http://echoapi.cloudapp.net/apiv3",
+ "path": "echo",
+ "protocols": [
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "apiRevisionDescription": "Creating a Revision of an existing API"
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/tempgroup?api-version=2020-06-01-preview&asyncId=5c730e343244df1b9cb56e85&asyncCode=201"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/echo-api;rev=3",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "echo-api;rev=3",
+ "properties": {
+ "displayName": "Echo API",
+ "apiRevision": "3",
+ "subscriptionRequired": true,
+ "serviceUrl": "http://echoapi.cloudapp.net/apiv3",
+ "path": "echo",
+ "protocols": [
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "apiRevisionDescription": "Creating a Revision of an existing API"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiSchema.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiSchema.json
new file mode 100644
index 000000000000..1039cf587a0e
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiSchema.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "59d6bb8f1f7fab13dc67ec9b",
+ "schemaId": "ec12520d-9d48-4e7b-8f39-698ca2ac63f1",
+ "parameters": {
+ "properties": {
+ "contentType": "application/vnd.ms-azure-apim.xsd+xml",
+ "document": {
+ "value": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/59d6bb8f1f7fab13dc67ec9b/schemas/ec12520d-9d48-4e7b-8f39-698ca2ac63f1?api-version=2020-06-01-preview&asyncId=5c730e343244df1b9cb56e85&asyncCode=201"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/59d6bb8f1f7fab13dc67ec9b/schemas/ec12520d-9d48-4e7b-8f39-698ca2ac63f1",
+ "type": "Microsoft.ApiManagement/service/apis/schemas",
+ "name": "ec12520d-9d48-4e7b-8f39-698ca2ac63f1",
+ "properties": {
+ "contentType": "application/vnd.ms-azure-apim.xsd+xml",
+ "document": {
+ "value": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n"
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/59d6bb8f1f7fab13dc67ec9b/schemas/ec12520d-9d48-4e7b-8f39-698ca2ac63f1",
+ "type": "Microsoft.ApiManagement/service/apis/schemas",
+ "name": "ec12520d-9d48-4e7b-8f39-698ca2ac63f1",
+ "properties": {
+ "contentType": "application/vnd.ms-azure-apim.xsd+xml",
+ "document": {
+ "value": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiTag.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiTag.json
new file mode 100644
index 000000000000..d99c49cd302e
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiTag.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "5931a75ae4bbd512a88c680b",
+ "tagId": "tagId1"
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
+ "type": "Microsoft.ApiManagement/service/tags",
+ "name": "tagId1",
+ "properties": {
+ "displayName": "tag1"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
+ "type": "Microsoft.ApiManagement/service/tags",
+ "name": "tagId1",
+ "properties": {
+ "displayName": "tag1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiTagDescription.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiTagDescription.json
new file mode 100644
index 000000000000..50bce3a5eea9
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiTagDescription.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "5931a75ae4bbd512a88c680b",
+ "tagDescriptionId": "tagId1",
+ "parameters": {
+ "properties": {
+ "description": "Some description that will be displayed for operation's tag if the tag is assigned to operation of the API",
+ "externalDocsUrl": "http://some.url/additionaldoc",
+ "externalDocsDescription": "Description of the external docs resource"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/5931a75ae4bbd512a88c680b/tagDescriptions/tagId1",
+ "type": "Microsoft.ApiManagement/service/apis/tagDescriptions",
+ "name": "tagId1",
+ "properties": {
+ "tagId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
+ "displayName": "tag1",
+ "description": "Some description that will be displayed for operation's tag if the tag is assigned to operation of the API",
+ "externalDocsDescription": "some additional info",
+ "externalDocsUrl": "http://some_url.com"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/5931a75ae4bbd512a88c680b/tagDescriptions/tagId1",
+ "type": "Microsoft.ApiManagement/service/apis/tagDescriptions",
+ "name": "tagId1",
+ "properties": {
+ "tagId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
+ "displayName": "tag1",
+ "description": "Some description that will be displayed for operation's tag if the tag is assigned to operation of the API",
+ "externalDocsDescription": "some additional info",
+ "externalDocsUrl": "http://some_url.com"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiUsingImportOverrideServiceUrl.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiUsingImportOverrideServiceUrl.json
new file mode 100644
index 000000000000..a26417815f8a
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiUsingImportOverrideServiceUrl.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "apidocs",
+ "parameters": {
+ "properties": {
+ "format": "swagger-link",
+ "value": "http://apimpimportviaurl.azurewebsites.net/api/apidocs/",
+ "path": "petstoreapi123",
+ "serviceUrl": "http://petstore.swagger.wordnik.com/api"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/apidocs",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "apidocs",
+ "properties": {
+ "displayName": "Swagger Sample App",
+ "apiRevision": "1",
+ "description": "This is a sample server Petstore server. You can find out more about Swagger \n at http://swagger.wordnik.com or on irc.freenode.net, #swagger. For this sample,\n you can use the api key \"special-key\" to test the authorization filters",
+ "serviceUrl": "http://petstore.swagger.wordnik.com/api",
+ "path": "petstoreapi123",
+ "protocols": [
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/apidocs?api-version=2020-06-01-preview&asyncId=5c730e343244df1b9cb56e85&asyncCode=201"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/apidocs",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "apidocs",
+ "properties": {
+ "displayName": "Swagger Sample App",
+ "apiRevision": "1",
+ "description": "This is a sample server Petstore server. You can find out more about Swagger \n at http://swagger.wordnik.com or on irc.freenode.net, #swagger. For this sample,\n you can use the api key \"special-key\" to test the authorization filters",
+ "serviceUrl": "http://petstore.swagger.wordnik.com/api",
+ "path": "petstoreapi123",
+ "protocols": [
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiUsingOai3Import.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiUsingOai3Import.json
new file mode 100644
index 000000000000..0af2e9e68fc1
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiUsingOai3Import.json
@@ -0,0 +1,65 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "petstore",
+ "parameters": {
+ "properties": {
+ "format": "openapi-link",
+ "value": "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore.yaml",
+ "path": "petstore"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/petstoreapi",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "petstoreapi",
+ "properties": {
+ "displayName": "Swagger Petstore",
+ "apiRevision": "1",
+ "serviceUrl": "http://petstore.swagger.io/v1",
+ "path": "petstore",
+ "protocols": [
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/tempgroup?api-version=2020-06-01-preview&asyncId=5c730e343244df1b9cb56e85&asyncCode=201"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/petstoreapi",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "petstoreapi",
+ "properties": {
+ "displayName": "Swagger Petstore",
+ "apiRevision": "1",
+ "serviceUrl": "http://petstore.swagger.io/v1",
+ "path": "petstore",
+ "protocols": [
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiUsingSwaggerImport.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiUsingSwaggerImport.json
new file mode 100644
index 000000000000..d6849bba079d
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiUsingSwaggerImport.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "petstore",
+ "parameters": {
+ "properties": {
+ "format": "swagger-link-json",
+ "value": "http://petstore.swagger.io/v2/swagger.json",
+ "path": "petstore"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/petstoreapi",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "petstoreapi",
+ "properties": {
+ "displayName": "Swagger Petstore",
+ "apiRevision": "1",
+ "description": "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",
+ "serviceUrl": "http://petstore.swagger.io/v2",
+ "path": "petstore",
+ "protocols": [
+ "http"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/tempgroup?api-version=2020-06-01-preview&asyncId=5c730e343244df1b9cb56e85&asyncCode=201"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/petstoreapi",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "petstoreapi",
+ "properties": {
+ "displayName": "Swagger Petstore",
+ "apiRevision": "1",
+ "description": "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",
+ "serviceUrl": "http://petstore.swagger.io/v2",
+ "path": "petstore",
+ "protocols": [
+ "http"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiUsingWadlImport.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiUsingWadlImport.json
new file mode 100644
index 000000000000..ef9260d07344
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiUsingWadlImport.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "petstore",
+ "parameters": {
+ "properties": {
+ "format": "wadl-link-json",
+ "value": "https://developer.cisco.com/media/wae-release-6-2-api-reference/wae-collector-rest-api/application.wadl",
+ "path": "collector"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/collectorwadl",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "collectorwadl",
+ "properties": {
+ "displayName": "http://localhost:8080/collector-northbound",
+ "apiRevision": "1",
+ "description": "",
+ "serviceUrl": "http://localhost:8080/collector-northbound",
+ "path": "collector",
+ "protocols": [
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/tempgroup?api-version=2020-06-01-preview&asyncId=5c730e343244df1b9cb56e85&asyncCode=201"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/collectorwadl",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "collectorwadl",
+ "properties": {
+ "displayName": "http://localhost:8080/collector-northbound",
+ "apiRevision": "1",
+ "description": "",
+ "serviceUrl": "http://localhost:8080/collector-northbound",
+ "path": "collector",
+ "protocols": [
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiVersionSet.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiVersionSet.json
new file mode 100644
index 000000000000..d4f40bf72928
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiVersionSet.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "versionSetId": "api1",
+ "parameters": {
+ "properties": {
+ "displayName": "api set 1",
+ "versioningScheme": "Segment",
+ "description": "Version configuration"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apiVersionSets/api1",
+ "type": "Microsoft.ApiManagement/service/api-version-sets",
+ "name": "api1",
+ "properties": {
+ "displayName": "api set 1",
+ "versioningScheme": "Segment",
+ "description": "Version configuration"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apiVersionSets/api1",
+ "type": "Microsoft.ApiManagement/service/api-version-sets",
+ "name": "api1",
+ "properties": {
+ "displayName": "api set 1",
+ "versioningScheme": "Segment",
+ "description": "Version configuration"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiWithOpenIdConnect.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiWithOpenIdConnect.json
new file mode 100644
index 000000000000..fad87e295026
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateApiWithOpenIdConnect.json
@@ -0,0 +1,99 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "tempgroup",
+ "parameters": {
+ "properties": {
+ "displayName": "Swagger Petstore",
+ "description": "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",
+ "serviceUrl": "http://petstore.swagger.io/v2",
+ "path": "petstore",
+ "protocols": [
+ "https"
+ ],
+ "authenticationSettings": {
+ "openid": {
+ "openidProviderId": "testopenid",
+ "bearerTokenSendingMethods": [
+ "authorizationHeader"
+ ]
+ }
+ },
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/58da4c4ccdae970a08121230",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "58da4c4ccdae970a08121230",
+ "properties": {
+ "displayName": "Swagger Petstore",
+ "apiRevision": "1",
+ "description": "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",
+ "serviceUrl": "http://petstore.swagger.io/v2",
+ "path": "petstore",
+ "protocols": [
+ "https"
+ ],
+ "authenticationSettings": {
+ "openid": {
+ "openidProviderId": "testopenid",
+ "bearerTokenSendingMethods": [
+ "authorizationHeader"
+ ]
+ }
+ },
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/tempgroup?api-version=2020-06-01-preview&asyncId=5c730e343244df1b9cb56e85&asyncCode=201"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/58da4c4ccdae970a08121230",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "58da4c4ccdae970a08121230",
+ "properties": {
+ "displayName": "Swagger Petstore",
+ "apiRevision": "1",
+ "description": "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",
+ "serviceUrl": "http://petstore.swagger.io/v2",
+ "path": "petstore",
+ "protocols": [
+ "https"
+ ],
+ "authenticationSettings": {
+ "openid": {
+ "openidProviderId": "testopenid",
+ "bearerTokenSendingMethods": [
+ "authorizationHeader"
+ ]
+ }
+ },
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateAuthorizationServer.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateAuthorizationServer.json
new file mode 100644
index 000000000000..3333eb5e0051
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateAuthorizationServer.json
@@ -0,0 +1,94 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "authsid": "newauthServer",
+ "parameters": {
+ "properties": {
+ "displayName": "test2",
+ "description": "test server",
+ "clientRegistrationEndpoint": "https://www.contoso.com/apps",
+ "authorizationEndpoint": "https://www.contoso.com/oauth2/auth",
+ "authorizationMethods": [
+ "GET"
+ ],
+ "tokenEndpoint": "https://www.contoso.com/oauth2/token",
+ "supportState": true,
+ "defaultScope": "read write",
+ "grantTypes": [
+ "authorizationCode",
+ "implicit"
+ ],
+ "bearerTokenSendingMethods": [
+ "authorizationHeader"
+ ],
+ "clientId": "1",
+ "clientSecret": "2",
+ "resourceOwnerUsername": "un",
+ "resourceOwnerPassword": "pwd"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/authorizationServers/newauthServer",
+ "type": "Microsoft.ApiManagement/service/authorizationServers",
+ "name": "newauthServer",
+ "properties": {
+ "displayName": "test2",
+ "description": "test server",
+ "clientRegistrationEndpoint": "https://www.contoso.com/apps",
+ "authorizationEndpoint": "https://www.contoso.com/oauth2/auth",
+ "authorizationMethods": [
+ "GET"
+ ],
+ "tokenEndpoint": "https://www.contoso.com/oauth2/token",
+ "supportState": true,
+ "defaultScope": "read write",
+ "grantTypes": [
+ "authorizationCode",
+ "implicit"
+ ],
+ "bearerTokenSendingMethods": [
+ "authorizationHeader"
+ ],
+ "clientId": "1",
+ "resourceOwnerUsername": "un",
+ "resourceOwnerPassword": "pwd"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/authorizationServers/newauthServer",
+ "type": "Microsoft.ApiManagement/service/authorizationServers",
+ "name": "newauthServer",
+ "properties": {
+ "displayName": "test2",
+ "description": "test server",
+ "clientRegistrationEndpoint": "https://www.contoso.com/apps",
+ "authorizationEndpoint": "https://www.contoso.com/oauth2/auth",
+ "authorizationMethods": [
+ "GET"
+ ],
+ "tokenEndpoint": "https://www.contoso.com/oauth2/token",
+ "supportState": true,
+ "defaultScope": "read write",
+ "grantTypes": [
+ "authorizationCode",
+ "implicit"
+ ],
+ "bearerTokenSendingMethods": [
+ "authorizationHeader"
+ ],
+ "clientId": "1",
+ "resourceOwnerUsername": "un",
+ "resourceOwnerPassword": "pwd"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateBackendProxyBackend.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateBackendProxyBackend.json
new file mode 100644
index 000000000000..9c110306f328
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateBackendProxyBackend.json
@@ -0,0 +1,126 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "backendId": "proxybackend",
+ "parameters": {
+ "properties": {
+ "description": "description5308",
+ "url": "https://backendname2644/",
+ "protocol": "http",
+ "tls": {
+ "validateCertificateChain": true,
+ "validateCertificateName": true
+ },
+ "proxy": {
+ "url": "http://192.168.1.1:8080",
+ "username": "Contoso\\admin",
+ "password": "opensesame"
+ },
+ "credentials": {
+ "query": {
+ "sv": [
+ "xx",
+ "bb",
+ "cc"
+ ]
+ },
+ "header": {
+ "x-my-1": [
+ "val1",
+ "val2"
+ ]
+ },
+ "authorization": {
+ "scheme": "Basic",
+ "parameter": "opensesma"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/backends/proxybackend",
+ "type": "Microsoft.ApiManagement/service/backends",
+ "name": "proxybackend",
+ "properties": {
+ "description": "description5308",
+ "url": "https://backendname2644/",
+ "protocol": "http",
+ "credentials": {
+ "query": {
+ "sv": [
+ "xx",
+ "bb",
+ "cc"
+ ]
+ },
+ "header": {
+ "x-my-1": [
+ "val1",
+ "val2"
+ ]
+ },
+ "authorization": {
+ "scheme": "Basic",
+ "parameter": "opensesma"
+ }
+ },
+ "proxy": {
+ "url": "http://192.168.1.1:8080",
+ "username": "Contoso\\admin",
+ "password": "opensesame"
+ },
+ "tls": {
+ "validateCertificateChain": false,
+ "validateCertificateName": false
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/backends/proxybackend",
+ "type": "Microsoft.ApiManagement/service/backends",
+ "name": "proxybackend",
+ "properties": {
+ "description": "description5308",
+ "url": "https://backendname2644/",
+ "protocol": "http",
+ "credentials": {
+ "query": {
+ "sv": [
+ "xx",
+ "bb",
+ "cc"
+ ]
+ },
+ "header": {
+ "x-my-1": [
+ "val1",
+ "val2"
+ ]
+ },
+ "authorization": {
+ "scheme": "Basic",
+ "parameter": "opensesma"
+ }
+ },
+ "proxy": {
+ "url": "http://192.168.1.1:8080",
+ "username": "Contoso\\admin",
+ "password": "opensesame"
+ },
+ "tls": {
+ "validateCertificateChain": false,
+ "validateCertificateName": false
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateBackendServiceFabric.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateBackendServiceFabric.json
new file mode 100644
index 000000000000..d15296dc92df
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateBackendServiceFabric.json
@@ -0,0 +1,87 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "backendId": "sfbackend",
+ "parameters": {
+ "properties": {
+ "description": "Service Fabric Test App 1",
+ "protocol": "http",
+ "url": "fabric:/mytestapp/mytestservice",
+ "properties": {
+ "serviceFabricCluster": {
+ "managementEndpoints": [
+ "https://somecluster.com"
+ ],
+ "clientCertificatethumbprint": "EBA029198AA3E76EF0D70482626E5BCF148594A6",
+ "serverX509Names": [
+ {
+ "name": "ServerCommonName1",
+ "issuerCertificateThumbprint": "IssuerCertificateThumbprint1"
+ }
+ ],
+ "maxPartitionResolutionRetries": 5
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/backends/sfbackend",
+ "type": "Microsoft.ApiManagement/service/backends",
+ "name": "sfbackend",
+ "properties": {
+ "description": "Service Fabric Test App 1",
+ "url": "fabric:/mytestapp/mytestservice",
+ "protocol": "http",
+ "properties": {
+ "serviceFabricCluster": {
+ "managementEndpoints": [
+ "https://somecluster.com"
+ ],
+ "clientCertificatethumbprint": "EBA029198AA3E76EF0D70482626E5BCF148594A6",
+ "serverX509Names": [
+ {
+ "name": "ServerCommonName1",
+ "issuerCertificateThumbprint": "IssuerCertificateThumbprint1"
+ }
+ ],
+ "maxPartitionResolutionRetries": 5
+ }
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/backends/sfbackend",
+ "type": "Microsoft.ApiManagement/service/backends",
+ "name": "sfbackend",
+ "properties": {
+ "description": "Service Fabric Test App 1",
+ "url": "fabric:/mytestapp/mytestservice",
+ "protocol": "http",
+ "properties": {
+ "serviceFabricCluster": {
+ "managementEndpoints": [
+ "https://somecluster.com"
+ ],
+ "clientCertificatethumbprint": "EBA029198AA3E76EF0D70482626E5BCF148594A6",
+ "serverX509Names": [
+ {
+ "name": "ServerCommonName1",
+ "issuerCertificateThumbprint": "IssuerCertificateThumbprint1"
+ }
+ ],
+ "maxPartitionResolutionRetries": 5
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateBackup.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateBackup.json
new file mode 100644
index 000000000000..c2ba80f1eb19
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateBackup.json
@@ -0,0 +1,126 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "storageAccount": "teststorageaccount",
+ "accessKey": "**************************************************",
+ "containerName": "backupContainer",
+ "backupName": "apimService1backup_2017_03_19"
+ }
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/dGVjaGVkX01hbmFnZVJvbGVfNWRiNGI3Ng==?api-version=2020-06-01-preview"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ },
+ "location": "West US",
+ "etag": "AAAAAAACXok=",
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Succeeded",
+ "targetProvisioningState": "",
+ "createdAtUtc": "2019-12-18T06:26:20.3348609Z",
+ "gatewayUrl": "https://apimService1.azure-api.net",
+ "gatewayRegionalUrl": "https://apimService1-westus-01.regional.azure-api.net",
+ "portalUrl": "https://apimService1.portal.azure-api.net",
+ "developerPortalUrl": "https://apimService1.developer.azure-api.net",
+ "managementApiUrl": "https://apimService1.management.azure-api.net",
+ "scmUrl": "https://apimService1.scm.azure-api.net",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": false
+ },
+ {
+ "type": "Proxy",
+ "hostName": "gateway1.msitesting.net",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2036-01-01T07:00:00+00:00",
+ "thumbprint": "8E989XXXXXXXXXXXXXXXXB9C2C91F1D174FDB3A2",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": true
+ },
+ {
+ "type": "Management",
+ "hostName": "mgmt.msitesting.net",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2036-01-01T07:00:00+00:00",
+ "thumbprint": "8E989XXXXXXXXXXXXXXXXB9C2C91F1D174FDB3A2",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": false
+ },
+ {
+ "type": "Portal",
+ "hostName": "portal1.msitesting.net",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2036-01-01T07:00:00+00:00",
+ "thumbprint": "8E989XXXXXXXXXXXXXXXXB9C2C91F1D174FDB3A2",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": false
+ }
+ ],
+ "publicIPAddresses": [
+ "13.91.32.113"
+ ],
+ "additionalLocations": [
+ {
+ "location": "East US",
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ },
+ "publicIPAddresses": [
+ "23.101.138.153"
+ ],
+ "gatewayRegionalUrl": "https://apimService1-eastus-01.regional.azure-api.net",
+ "disableGateway": true
+ }
+ ],
+ "customProperties": {
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Ssl30": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2": "False"
+ },
+ "virtualNetworkType": "None",
+ "disableGateway": false,
+ "apiVersionConstraint": {
+ "minApiVersion": "2019-01-01"
+ }
+ },
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateCache.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateCache.json
new file mode 100644
index 000000000000..ec7994160ed9
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateCache.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "cacheId": "c1",
+ "parameters": {
+ "properties": {
+ "connectionString": "apim.redis.cache.windows.net:6380,password=xc,ssl=True,abortConnect=False",
+ "description": "Redis cache instances in West India",
+ "useFromLocation": "default",
+ "resourceId": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redis/apimservice1"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/caches/c1",
+ "type": "Microsoft.ApiManagement/service/caches",
+ "name": "c1",
+ "properties": {
+ "useFromLocation": "default",
+ "description": "Redis cache instances in West India",
+ "connectionString": "{{5f7fbca77a891a2200f3db38}}",
+ "resourceId": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redis/apimservice1"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/caches/c1",
+ "type": "Microsoft.ApiManagement/service/caches",
+ "name": "c1",
+ "properties": {
+ "useFromLocation": "default",
+ "description": "Redis cache instances in West India",
+ "connectionString": "{{5f7fbca77a891a2200f3db38}}",
+ "resourceId": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redis/apimservice1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateCertificate.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateCertificate.json
new file mode 100644
index 000000000000..1640c103bea6
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateCertificate.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "certificateId": "tempcert",
+ "parameters": {
+ "properties": {
+ "data": "****************Base 64 Encoded Certificate *******************************",
+ "password": "****Certificate Password******"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/certificates/tempcert",
+ "type": "Microsoft.ApiManagement/service/certificates",
+ "name": "tempcert",
+ "properties": {
+ "subject": "CN=contoso.com",
+ "thumbprint": "*******************3",
+ "expirationDate": "2018-03-17T21:55:07+00:00"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/certificates/tempcert",
+ "type": "Microsoft.ApiManagement/service/certificates",
+ "name": "tempcert",
+ "properties": {
+ "subject": "CN=contoso.com",
+ "thumbprint": "*******************3",
+ "expirationDate": "2018-03-17T21:55:07+00:00"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateCertificateWithKeyVault.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateCertificateWithKeyVault.json
new file mode 100644
index 000000000000..c2945ea48098
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateCertificateWithKeyVault.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "certificateId": "templateCertkv",
+ "parameters": {
+ "properties": {
+ "keyVault": {
+ "identityClientId": "ceaa6b06-c00f-43ef-99ac-f53d1fe876a0",
+ "secretIdentifier": "https://rpbvtkeyvaultintegration.vault-int.azure-int.net/secrets/msitestingCert"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/certificates/templateCertkv",
+ "type": "Microsoft.ApiManagement/service/certificates",
+ "name": "templateCertkv",
+ "properties": {
+ "subject": "CN=*.msitesting.net",
+ "thumbprint": "EA**********************9AD690",
+ "expirationDate": "2037-01-01T07:00:00Z",
+ "keyVault": {
+ "secretIdentifier": "https://rpbvtkeyvaultintegration.vault-int.azure-int.net/secrets/msitestingCert",
+ "identityClientId": "ceaa6b06-c00f-43ef-99ac-f53d1fe876a0",
+ "lastStatus": {
+ "code": "Success",
+ "timeStampUtc": "2020-09-22T00:24:53.3191468Z"
+ }
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/certificates/templateCertkv",
+ "type": "Microsoft.ApiManagement/service/certificates",
+ "name": "templateCertkv",
+ "properties": {
+ "subject": "CN=*.msitesting.net",
+ "thumbprint": "EA**********************9AD690",
+ "expirationDate": "2037-01-01T07:00:00Z",
+ "keyVault": {
+ "secretIdentifier": "https://rpbvtkeyvaultintegration.vault-int.azure-int.net/secrets/msitestingCert",
+ "identityClientId": "ceaa6b06-c00f-43ef-99ac-f53d1fe876a0",
+ "lastStatus": {
+ "code": "Success",
+ "timeStampUtc": "2020-09-22T00:24:53.3191468Z"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateContentType.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateContentType.json
new file mode 100644
index 000000000000..8834d81790cb
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateContentType.json
@@ -0,0 +1,177 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "contentTypeId": "page",
+ "parameters": {
+ "properties": {
+ "name": "Page",
+ "description": "A regular page",
+ "schema": {
+ "properties": {
+ "en_us": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "title": "Title",
+ "description": "Page title. This property gets included in SEO attributes.",
+ "type": "string",
+ "indexed": true
+ },
+ "description": {
+ "title": "Description",
+ "description": "Page description. This property gets included in SEO attributes.",
+ "type": "string",
+ "indexed": true
+ },
+ "keywords": {
+ "title": "Keywords",
+ "description": "Page keywords. This property gets included in SEO attributes.",
+ "type": "string",
+ "indexed": true
+ },
+ "permalink": {
+ "title": "Permalink",
+ "description": "Page permalink, e.g. '/about'.",
+ "type": "string",
+ "indexed": true
+ },
+ "documentId": {
+ "title": "Document ID",
+ "description": "Reference to page content document.",
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "title",
+ "permalink",
+ "documentId"
+ ]
+ }
+ },
+ "additionalProperties": false
+ },
+ "version": "1.0.0"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/contentTypes/page",
+ "type": "Microsoft.ApiManagement/service/contentTypes",
+ "name": "page",
+ "properties": {
+ "name": "Page",
+ "description": "A regular page",
+ "schema": {
+ "properties": {
+ "en_us": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "title": "Title",
+ "description": "Page title. This property gets included in SEO attributes.",
+ "type": "string",
+ "indexed": true
+ },
+ "description": {
+ "title": "Description",
+ "description": "Page description. This property gets included in SEO attributes.",
+ "type": "string",
+ "indexed": true
+ },
+ "keywords": {
+ "title": "Keywords",
+ "description": "Page keywords. This property gets included in SEO attributes.",
+ "type": "string",
+ "indexed": true
+ },
+ "permalink": {
+ "title": "Permalink",
+ "description": "Page permalink, e.g. '/about'.",
+ "type": "string",
+ "indexed": true
+ },
+ "documentId": {
+ "title": "Document ID",
+ "description": "Reference to page content document.",
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "title",
+ "permalink",
+ "documentId"
+ ]
+ }
+ },
+ "additionalProperties": false
+ },
+ "version": "1.0.0"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/contentTypes/page",
+ "type": "Microsoft.ApiManagement/service/contentTypes",
+ "name": "page",
+ "properties": {
+ "name": "Page",
+ "description": "A regular page",
+ "schema": {
+ "properties": {
+ "en_us": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "title": "Title",
+ "description": "Page title. This property gets included in SEO attributes.",
+ "type": "string",
+ "indexed": true
+ },
+ "description": {
+ "title": "Description",
+ "description": "Page description. This property gets included in SEO attributes.",
+ "type": "string",
+ "indexed": true
+ },
+ "keywords": {
+ "title": "Keywords",
+ "description": "Page keywords. This property gets included in SEO attributes.",
+ "type": "string",
+ "indexed": true
+ },
+ "permalink": {
+ "title": "Permalink",
+ "description": "Page permalink, e.g. '/about'.",
+ "type": "string",
+ "indexed": true
+ },
+ "documentId": {
+ "title": "Document ID",
+ "description": "Reference to page content document.",
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "title",
+ "permalink",
+ "documentId"
+ ]
+ }
+ },
+ "additionalProperties": false
+ },
+ "version": "1.0.0"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateContentTypeContentItem.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateContentTypeContentItem.json
new file mode 100644
index 000000000000..e5068f70e9c0
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateContentTypeContentItem.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "contentTypeId": "page",
+ "contentItemId": "4e3cf6a5-574a-ba08-1f23-2e7a38faa6d8",
+ "parameters": {
+ "properties": {
+ "en_us": {
+ "title": "About",
+ "description": "Short story about the company.",
+ "keywords": "company, about",
+ "documentId": "contentTypes/document/contentItems/4e3cf6a5-574a-ba08-1f23-2e7a38faa6d8",
+ "permalink": "/about"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/contentTypes/page/contentItems/4e3cf6a5-574a-ba08-1f23-2e7a38faa6d8",
+ "type": "Microsoft.ApiManagement/service/contentTypes/contentItems",
+ "name": "4e3cf6a5-574a-ba08-1f23-2e7a38faa6d8",
+ "properties": {
+ "en_us": {
+ "title": "About",
+ "description": "Short story about the company.",
+ "keywords": "company, about",
+ "documentId": "contentTypes/document/contentItems/4e3cf6a5-574a-ba08-1f23-2e7a38faa6d8",
+ "permalink": "/about"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/contentTypes/page/contentItems/4e3cf6a5-574a-ba08-1f23-2e7a38faa6d8",
+ "type": "Microsoft.ApiManagement/service/contentTypes/contentItems",
+ "name": "4e3cf6a5-574a-ba08-1f23-2e7a38faa6d8",
+ "properties": {
+ "en_us": {
+ "title": "About",
+ "description": "Short story about the company.",
+ "keywords": "company, about",
+ "documentId": "contentTypes/document/contentItems/4e3cf6a5-574a-ba08-1f23-2e7a38faa6d8",
+ "permalink": "/about"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateDiagnostic.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateDiagnostic.json
new file mode 100644
index 000000000000..5d6be89af0ba
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateDiagnostic.json
@@ -0,0 +1,159 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "diagnosticId": "applicationinsights",
+ "parameters": {
+ "properties": {
+ "alwaysLog": "allErrors",
+ "loggerId": "/loggers/azuremonitor",
+ "sampling": {
+ "samplingType": "fixed",
+ "percentage": 50
+ },
+ "frontend": {
+ "request": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ },
+ "response": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ }
+ },
+ "backend": {
+ "request": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ },
+ "response": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/diagnostics/applicationinsights",
+ "type": "Microsoft.ApiManagement/service/diagnostics",
+ "name": "applicationinsights",
+ "properties": {
+ "alwaysLog": "allErrors",
+ "loggerId": "/loggers/azuremonitor",
+ "sampling": {
+ "samplingType": "fixed",
+ "percentage": 50
+ },
+ "frontend": {
+ "request": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ },
+ "response": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ }
+ },
+ "backend": {
+ "request": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ },
+ "response": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ }
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/diagnostics/applicationinsights",
+ "type": "Microsoft.ApiManagement/service/diagnostics",
+ "name": "applicationinsights",
+ "properties": {
+ "alwaysLog": "allErrors",
+ "loggerId": "/loggers/applicationinsights",
+ "sampling": {
+ "samplingType": "fixed",
+ "percentage": 50
+ },
+ "frontend": {
+ "request": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ },
+ "response": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ }
+ },
+ "backend": {
+ "request": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ },
+ "response": {
+ "headers": [
+ "Content-type"
+ ],
+ "body": {
+ "bytes": 512
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateEHLogger.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateEHLogger.json
new file mode 100644
index 000000000000..54029d45fd00
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateEHLogger.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "loggerId": "eh1",
+ "parameters": {
+ "properties": {
+ "loggerType": "azureEventHub",
+ "description": "adding a new logger",
+ "credentials": {
+ "name": "hydraeventhub",
+ "connectionString": "Endpoint=sb://hydraeventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=********="
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/loggers/eh1",
+ "type": "Microsoft.ApiManagement/service/loggers",
+ "name": "eh1",
+ "properties": {
+ "loggerType": "azureEventHub",
+ "description": "adding a new logger",
+ "credentials": {
+ "connectionString": "{{Logger-Credentials-5f28745bbebeeb13cc3f7301}}"
+ },
+ "isBuffered": true
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/loggers/eh1",
+ "type": "Microsoft.ApiManagement/service/loggers",
+ "name": "eh1",
+ "properties": {
+ "loggerType": "azureEventHub",
+ "description": "adding a new logger",
+ "credentials": {
+ "connectionString": "{{Logger-Credentials-5f28745bbebeeb13cc3f7301}}"
+ },
+ "isBuffered": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGateway.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGateway.json
new file mode 100644
index 000000000000..803c1cb3d0d7
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGateway.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "gatewayId": "gw1",
+ "parameters": {
+ "properties": {
+ "description": "my gateway 1",
+ "locationData": {
+ "name": "my location"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/gateways/gw1",
+ "type": "Microsoft.ApiManagement/service/gateways",
+ "name": "a1",
+ "properties": {
+ "description": "my gateway 1",
+ "locationData": {
+ "name": "my location"
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/gateways/gw1",
+ "type": "Microsoft.ApiManagement/service/gateways",
+ "name": "a1",
+ "properties": {
+ "description": "my gateway 1",
+ "locationData": {
+ "name": "my location"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGatewayApi.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGatewayApi.json
new file mode 100644
index 000000000000..5df088b7b8f0
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGatewayApi.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "gatewayId": "gw1",
+ "apiId": "echo-api",
+ "parameters": {
+ "properties": {
+ "provisioningState": "created"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/gateways/gw1/apis/echo-api",
+ "type": "Microsoft.ApiManagement/service/gateways/apis",
+ "name": "echo-api",
+ "properties": {
+ "displayName": "EchoApi",
+ "apiRevision": "1",
+ "serviceUrl": "https://contoso.com/apis/echo",
+ "path": "",
+ "protocols": [
+ "http",
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/gateways/gw1/apis/echo-api",
+ "type": "Microsoft.ApiManagement/service/gateways/apis",
+ "name": "echo-api",
+ "properties": {
+ "displayName": "EchoApi",
+ "apiRevision": "1",
+ "serviceUrl": "https://contoso.com/apis/echo",
+ "path": "",
+ "protocols": [
+ "http",
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGatewayHostnameConfiguration.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGatewayHostnameConfiguration.json
new file mode 100644
index 000000000000..ead2d68bca64
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGatewayHostnameConfiguration.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "gatewayId": "gw1",
+ "hcId": "default",
+ "parameters": {
+ "properties": {
+ "hostname": "*",
+ "certificateId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/certificates/cert1",
+ "negotiateClientCertificate": false,
+ "tls10Enabled": false,
+ "tls11Enabled": false,
+ "http2Enabled": true
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/gateways/gw1/hostnameConfigurations/default",
+ "type": "Microsoft.ApiManagement/service/gateways/hostnameConfigurations",
+ "name": "default",
+ "properties": {
+ "hostname": "*",
+ "certificateId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/certificates/cert1",
+ "negotiateClientCertificate": false,
+ "tls10Enabled": false,
+ "tls11Enabled": false,
+ "http2Enabled": true
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/gateways/gw1/hostnameConfigurations/default",
+ "type": "Microsoft.ApiManagement/service/gateways/hostnameConfigurations",
+ "name": "default",
+ "properties": {
+ "hostname": "*",
+ "certificateId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/certificates/cert1",
+ "negotiateClientCertificate": false,
+ "tls10Enabled": false,
+ "tls11Enabled": false,
+ "http2Enabled": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGroup.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGroup.json
new file mode 100644
index 000000000000..64865c2913f3
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGroup.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "groupId": "tempgroup",
+ "parameters": {
+ "properties": {
+ "displayName": "temp group"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/groups/tempgroup",
+ "type": "Microsoft.ApiManagement/service/groups",
+ "name": "tempgroup",
+ "properties": {
+ "displayName": "temp group",
+ "type": "custom"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/groups/tempgroup",
+ "type": "Microsoft.ApiManagement/service/groups",
+ "name": "tempgroup",
+ "properties": {
+ "displayName": "temp group",
+ "type": "custom"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGroupExternal.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGroupExternal.json
new file mode 100644
index 000000000000..7f8787a1d353
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGroupExternal.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "groupId": "aadGroup",
+ "parameters": {
+ "properties": {
+ "displayName": "NewGroup (samiraad.onmicrosoft.com)",
+ "description": "new group to test",
+ "type": "external",
+ "externalId": "aad://samiraad.onmicrosoft.com/groups/83cf2753-5831-4675-bc0e-2f8dc067c58d"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/groups/aadGroup",
+ "type": "Microsoft.ApiManagement/service/groups",
+ "name": "aadGroup",
+ "properties": {
+ "displayName": "NewGroup (samiraad.onmicrosoft.com)",
+ "description": "new group to test",
+ "type": "external",
+ "externalId": "aad://samiraad.onmicrosoft.com/groups/83cf2753-5831-4675-bc0e-2f8dc067c58d"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/groups/aadGroup",
+ "type": "Microsoft.ApiManagement/service/groups",
+ "name": "aadGroup",
+ "properties": {
+ "displayName": "NewGroup (samiraad.onmicrosoft.com)",
+ "description": "new group to test",
+ "type": "external",
+ "externalId": "aad://samiraad.onmicrosoft.com/groups/83cf2753-5831-4675-bc0e-2f8dc067c58d"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGroupUser.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGroupUser.json
new file mode 100644
index 000000000000..f53b3cac13ca
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateGroupUser.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "groupId": "tempgroup",
+ "userId": "59307d350af58404d8a26300"
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/59307d350af58404d8a26300",
+ "type": "Microsoft.ApiManagement/service/groups/users",
+ "name": "59307d350af58404d8a26300",
+ "properties": {
+ "firstName": "test",
+ "lastName": "user",
+ "email": "testuser1@live.com",
+ "state": "active",
+ "registrationDate": "2017-06-01T20:46:45.437Z",
+ "groups": [],
+ "identities": []
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/59307d350af58404d8a26300",
+ "type": "Microsoft.ApiManagement/service/groups/users",
+ "name": "59307d350af58404d8a26300",
+ "properties": {
+ "firstName": "test",
+ "lastName": "user",
+ "email": "testuser1@live.com",
+ "state": "active",
+ "registrationDate": "2017-06-01T20:46:45.437Z",
+ "groups": [],
+ "identities": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateIdentityProvider.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateIdentityProvider.json
new file mode 100644
index 000000000000..6347ea5556b2
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateIdentityProvider.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "identityProviderName": "facebook",
+ "parameters": {
+ "properties": {
+ "clientId": "facebookid",
+ "clientSecret": "facebookapplicationsecret"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/identityProviders/Facebook",
+ "type": "Microsoft.ApiManagement/service/identityProviders",
+ "name": "Facebook",
+ "properties": {
+ "clientId": "facebookid",
+ "type": "facebook"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/identityProviders/Facebook",
+ "type": "Microsoft.ApiManagement/service/identityProviders",
+ "name": "Facebook",
+ "properties": {
+ "clientId": "facebookid",
+ "type": "facebook"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateMultiRegionServiceWithCustomHostname.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateMultiRegionServiceWithCustomHostname.json
new file mode 100644
index 000000000000..b73a7cb5ad10
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateMultiRegionServiceWithCustomHostname.json
@@ -0,0 +1,256 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "gateway1.msitesting.net",
+ "encodedCertificate": "****** Base 64 Encoded Certificate ************",
+ "certificatePassword": "Password",
+ "defaultSslBinding": true
+ },
+ {
+ "type": "Management",
+ "hostName": "mgmt.msitesting.net",
+ "encodedCertificate": "****** Base 64 Encoded Certificate ************",
+ "certificatePassword": "Password"
+ },
+ {
+ "type": "Portal",
+ "hostName": "portal1.msitesting.net",
+ "encodedCertificate": "****** Base 64 Encoded Certificate ************",
+ "certificatePassword": "Password"
+ }
+ ],
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "additionalLocations": [
+ {
+ "location": "East US",
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ },
+ "disableGateway": true
+ }
+ ],
+ "virtualNetworkType": "None",
+ "apiVersionConstraint": {
+ "minApiVersion": "2019-01-01"
+ }
+ },
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ },
+ "location": "West US",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/bXVsdGlob3N0bmFtZW11bHRpcmVnaW9uc2VydmljZV9BY3RfZjFiOTZhMjc=?api-version=2020-06-01-preview"
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ },
+ "location": "West US",
+ "etag": "AAAAAAACXoo=",
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Created",
+ "targetProvisioningState": "Activating",
+ "createdAtUtc": "2019-12-18T08:04:26.9492661Z",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": false
+ },
+ {
+ "type": "Proxy",
+ "hostName": "gateway1.msitesting.net",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2036-01-01T07:00:00+00:00",
+ "thumbprint": "8E989XXXXXXXXXXXXXXXXF1D174FDB3A2",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": true
+ },
+ {
+ "type": "Management",
+ "hostName": "mgmt.msitesting.net",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2036-01-01T07:00:00+00:00",
+ "thumbprint": "8E989XXXXXXXXXXXXXXXXF1D174FDB3A2",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": false
+ },
+ {
+ "type": "Portal",
+ "hostName": "portal1.msitesting.net",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2036-01-01T07:00:00+00:00",
+ "thumbprint": "8E989XXXXXXXXXXXXXXXXF1D174FDB3A2",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": false
+ }
+ ],
+ "additionalLocations": [
+ {
+ "location": "East US",
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ },
+ "disableGateway": true
+ }
+ ],
+ "virtualNetworkType": "None",
+ "disableGateway": false,
+ "apiVersionConstraint": {
+ "minApiVersion": "2019-01-01"
+ }
+ },
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ },
+ "location": "West US",
+ "etag": "AAAAAAACXok=",
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Succeeded",
+ "targetProvisioningState": "",
+ "createdAtUtc": "2019-12-18T06:26:20.3348609Z",
+ "gatewayUrl": "https://apimService1.azure-api.net",
+ "gatewayRegionalUrl": "https://apimService1-westus-01.regional.azure-api.net",
+ "portalUrl": "https://apimService1.portal.azure-api.net",
+ "developerPortalUrl": "https://apimService1.developer.azure-api.net",
+ "managementApiUrl": "https://apimService1.management.azure-api.net",
+ "scmUrl": "https://apimService1.scm.azure-api.net",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": false
+ },
+ {
+ "type": "Proxy",
+ "hostName": "gateway1.msitesting.net",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2036-01-01T07:00:00+00:00",
+ "thumbprint": "8E989XXXXXXXXXXXXXXXXF1D174FDB3A2",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": true
+ },
+ {
+ "type": "Management",
+ "hostName": "mgmt.msitesting.net",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2036-01-01T07:00:00+00:00",
+ "thumbprint": "8E989XXXXXXXXXXXXXXXXF1D174FDB3A2",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": false
+ },
+ {
+ "type": "Portal",
+ "hostName": "portal1.msitesting.net",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2036-01-01T07:00:00+00:00",
+ "thumbprint": "8E989XXXXXXXXXXXXXXXXF1D174FDB3A2",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": false
+ }
+ ],
+ "publicIPAddresses": [
+ "13.91.32.113"
+ ],
+ "additionalLocations": [
+ {
+ "location": "East US",
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ },
+ "publicIPAddresses": [
+ "23.101.138.153"
+ ],
+ "gatewayRegionalUrl": "https://apimService1-eastus-01.regional.azure-api.net",
+ "disableGateway": true
+ }
+ ],
+ "customProperties": {
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Ssl30": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2": "False"
+ },
+ "virtualNetworkType": "None",
+ "disableGateway": false,
+ "apiVersionConstraint": {
+ "minApiVersion": "2019-01-01"
+ }
+ },
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/bXVsdGlob3N0bmFtZW11bHRpcmVnaW9uc2VydmljZV9BY3RfZjFiOTZhMjc=?api-version=2020-06-01-preview"
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNamedValue.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNamedValue.json
new file mode 100644
index 000000000000..760528dc73e7
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNamedValue.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "namedValueId": "testprop2",
+ "parameters": {
+ "properties": {
+ "displayName": "prop3name",
+ "value": "propValue",
+ "tags": [
+ "foo",
+ "bar"
+ ],
+ "secret": false
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/namedValues/testprop2?api-version=2020-06-01-preview&asyncId=5c730e343244df1b9cb56e85&asyncCode=201"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/namedValues/testprop2",
+ "type": "Microsoft.ApiManagement/service/namedValues",
+ "name": "testprop2",
+ "properties": {
+ "displayName": "prop3name",
+ "value": "propValue",
+ "tags": [
+ "foo",
+ "bar"
+ ],
+ "secret": false
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/namedValues/testprop2",
+ "type": "Microsoft.ApiManagement/service/namedValues",
+ "name": "testprop2",
+ "properties": {
+ "displayName": "prop3name",
+ "value": "propValue",
+ "tags": [
+ "foo",
+ "bar"
+ ],
+ "secret": false
+ }
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..c02c34c81364
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNamedValueWithKeyVault.json
@@ -0,0 +1,76 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "namedValueId": "testprop6",
+ "parameters": {
+ "properties": {
+ "displayName": "prop6namekv",
+ "keyVault": {
+ "identityClientId": "ceaa6b06-c00f-43ef-99ac-f53d1fe876a0",
+ "secretIdentifier": "https://rpbvtkeyvaultintegration.vault-int.azure-int.net/secrets/msitestingCert"
+ },
+ "tags": [
+ "foo",
+ "bar"
+ ],
+ "secret": true
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/namedValues/testprop6?api-version=2020-06-01-preview&asyncId=5c730e343244df1b9cb56e85&asyncCode=201"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/namedValues/testprop6",
+ "type": "Microsoft.ApiManagement/service/namedValues",
+ "name": "testprop6",
+ "properties": {
+ "displayName": "prop6namekv",
+ "keyVault": {
+ "secretIdentifier": "https://rpbvtkeyvaultintegration.vault-int.azure-int.net/secrets/msitestingCert",
+ "identityClientId": "ceaa6b06-c00f-43ef-99ac-f53d1fe876a0",
+ "lastStatus": {
+ "code": "Success",
+ "timeStampUtc": "2020-09-11T00:54:31.8024882Z"
+ }
+ },
+ "tags": [
+ "foo",
+ "bar"
+ ],
+ "secret": true
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/namedValues/testprop6",
+ "type": "Microsoft.ApiManagement/service/namedValues",
+ "name": "testprop6",
+ "properties": {
+ "displayName": "prop6namekv",
+ "keyVault": {
+ "secretIdentifier": "https://rpbvtkeyvaultintegration.vault-int.azure-int.net/secrets/msitestingCert",
+ "identityClientId": "ceaa6b06-c00f-43ef-99ac-f53d1fe876a0",
+ "lastStatus": {
+ "code": "Success",
+ "timeStampUtc": "2020-09-11T00:54:31.8024882Z"
+ }
+ },
+ "tags": [
+ "foo",
+ "bar"
+ ],
+ "secret": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNotification.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNotification.json
new file mode 100644
index 000000000000..6b7d0297a34a
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNotification.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "notificationName": "RequestPublisherNotificationMessage"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/notifications/RequestPublisherNotificationMessage",
+ "type": "Microsoft.ApiManagement/service/notifications",
+ "name": "RequestPublisherNotificationMessage",
+ "properties": {
+ "title": "Subscription requests (requiring approval)",
+ "description": "The following email recipients and users will receive email notifications about subscription requests for API products requiring approval.",
+ "recipients": {
+ "emails": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/recipientEmails/contoso@live.com",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/recipientEmails/foobar!live",
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/recipientEmails/foobar@live.com"
+ ],
+ "users": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/576823d0a40f7e74ec07d642"
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNotificationRecipientEmail.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNotificationRecipientEmail.json
new file mode 100644
index 000000000000..f86dfd5e4b3f
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNotificationRecipientEmail.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "notificationName": "RequestPublisherNotificationMessage",
+ "email": "foobar@live.com"
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/notifications/RequestPublisherNotificationMessage/recipientEmails/foobar@live.com",
+ "type": "Microsoft.ApiManagement/service/notifications/recipientEmails",
+ "name": "foobar@live.com",
+ "properties": {
+ "email": "foobar@live.com"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/notifications/RequestPublisherNotificationMessage/recipientEmails/foobar@live.com",
+ "type": "Microsoft.ApiManagement/service/notifications/recipientEmails",
+ "name": "foobar@live.com",
+ "properties": {
+ "email": "foobar@live.com"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNotificationRecipientUser.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNotificationRecipientUser.json
new file mode 100644
index 000000000000..43c07a0097cf
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateNotificationRecipientUser.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "notificationName": "RequestPublisherNotificationMessage",
+ "userId": "576823d0a40f7e74ec07d642"
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/notifications/RequestPublisherNotificationMessage/recipientUsers/576823d0a40f7e74ec07d642",
+ "type": "Microsoft.ApiManagement/service/notifications/recipientUsers",
+ "name": "576823d0a40f7e74ec07d642",
+ "properties": {
+ "userId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/576823d0a40f7e74ec07d642"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/notifications/RequestPublisherNotificationMessage/recipientUsers/576823d0a40f7e74ec07d642",
+ "type": "Microsoft.ApiManagement/service/notifications/recipientUsers",
+ "name": "576823d0a40f7e74ec07d642",
+ "properties": {
+ "userId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/576823d0a40f7e74ec07d642"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateOpenIdConnectProvider.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateOpenIdConnectProvider.json
new file mode 100644
index 000000000000..7a4906b4933c
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateOpenIdConnectProvider.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "opid": "templateOpenIdConnect3",
+ "parameters": {
+ "properties": {
+ "displayName": "templateoidprovider3",
+ "metadataEndpoint": "https://oidprovider-template3.net",
+ "clientId": "oidprovidertemplate3",
+ "clientSecret": "x"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/openidConnectProviders/templateOpenIdConnect3",
+ "type": "Microsoft.ApiManagement/service/openidconnectproviders",
+ "name": "templateOpenIdConnect3",
+ "properties": {
+ "displayName": "templateoidprovider3",
+ "metadataEndpoint": "https://oidprovider-template3.net",
+ "clientId": "oidprovidertemplate3"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/openidConnectProviders/templateOpenIdConnect3",
+ "type": "Microsoft.ApiManagement/service/openidconnectproviders",
+ "name": "templateOpenIdConnect3",
+ "properties": {
+ "displayName": "templateoidprovider3",
+ "metadataEndpoint": "https://oidprovider-template3.net",
+ "clientId": "oidprovidertemplate3"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreatePolicy.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreatePolicy.json
new file mode 100644
index 000000000000..76e8e5189275
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreatePolicy.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "policyId": "policy",
+ "parameters": {
+ "properties": {
+ "format": "xml",
+ "value": "\r\n \r\n \r\n \r\n \r\n \r\n"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/policies/policy",
+ "type": "Microsoft.ApiManagement/service/policies",
+ "name": "policy",
+ "properties": {
+ "value": "\r\n \r\n \r\n \r\n \r\n \r\n"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/policies/policy",
+ "type": "Microsoft.ApiManagement/service/policies",
+ "name": "policy",
+ "properties": {
+ "value": "\r\n \r\n \r\n \r\n \r\n \r\n"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProduct.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProduct.json
new file mode 100644
index 000000000000..9b564cd2f705
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProduct.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "productId": "testproduct",
+ "parameters": {
+ "properties": {
+ "displayName": "Test Template ProductName 4"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/products/testproduct",
+ "type": "Microsoft.ApiManagement/service/products",
+ "name": "testproduct",
+ "properties": {
+ "displayName": "Test Template ProductName 4",
+ "subscriptionRequired": true,
+ "approvalRequired": false,
+ "state": "notPublished"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/products/testproduct",
+ "type": "Microsoft.ApiManagement/service/products",
+ "name": "testproduct",
+ "properties": {
+ "displayName": "Test Template ProductName 4",
+ "subscriptionRequired": true,
+ "approvalRequired": false,
+ "state": "notPublished"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProductApi.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProductApi.json
new file mode 100644
index 000000000000..4c95efb90c2e
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProductApi.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "productId": "testproduct",
+ "apiId": "echo-api"
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/5931a75ae4bbd512a88c680b",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "5931a75ae4bbd512a88c680b",
+ "properties": {
+ "displayName": "EchoApi",
+ "apiRevision": "1",
+ "serviceUrl": "https://contoso.com/apis/echo",
+ "path": "",
+ "protocols": [
+ "http",
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/5931a75ae4bbd512a88c680b",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "5931a75ae4bbd512a88c680b",
+ "properties": {
+ "displayName": "EchoApi",
+ "apiRevision": "1",
+ "serviceUrl": "https://contoso.com/apis/echo",
+ "path": "",
+ "protocols": [
+ "http",
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProductGroup.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProductGroup.json
new file mode 100644
index 000000000000..0db31fe5d33d
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProductGroup.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "productId": "testproduct",
+ "groupId": "templateGroup"
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/groups/templateGroup",
+ "type": "Microsoft.ApiManagement/service/products/groups",
+ "name": "templateGroup",
+ "properties": {
+ "displayName": "Template Group",
+ "description": "group created via Template",
+ "builtIn": false,
+ "type": "custom"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/groups/templateGroup",
+ "type": "Microsoft.ApiManagement/service/products/groups",
+ "name": "templateGroup",
+ "properties": {
+ "displayName": "Template Group",
+ "description": "group created via Template",
+ "builtIn": false,
+ "type": "custom"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProductPolicy.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProductPolicy.json
new file mode 100644
index 000000000000..e963a2ae3f3a
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProductPolicy.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "productId": "5702e97e5157a50f48dce801",
+ "policyId": "policy",
+ "parameters": {
+ "properties": {
+ "format": "xml",
+ "value": "\r\n \r\n \r\n \r\n @( string.Join(\",\", DateTime.UtcNow, context.Deployment.ServiceName, context.RequestId, context.Request.IpAddress, context.Operation.Name) ) \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/products/5702e97e5157a50f48dce801/policies/policy",
+ "type": "Microsoft.ApiManagement/service/products/policies",
+ "name": "policy",
+ "properties": {
+ "value": "\r\n \r\n \r\n \r\n @( string.Join(\",\", DateTime.UtcNow, context.Deployment.ServiceName, context.RequestId, context.Request.IpAddress, context.Operation.Name) ) \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/products/5702e97e5157a50f48dce801/policies/policy",
+ "type": "Microsoft.ApiManagement/service/products/policies",
+ "name": "policy",
+ "properties": {
+ "value": "\r\n \r\n \r\n \r\n @( string.Join(\",\", DateTime.UtcNow, context.Deployment.ServiceName, context.RequestId, context.Request.IpAddress, context.Operation.Name) ) \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProductTag.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProductTag.json
new file mode 100644
index 000000000000..401e565450dc
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateProductTag.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "productId": "5931a75ae4bbd512a88c680b",
+ "tagId": "tagId1"
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
+ "type": "Microsoft.ApiManagement/service/tags",
+ "name": "tagId1",
+ "properties": {
+ "displayName": "tag1"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
+ "type": "Microsoft.ApiManagement/service/tags",
+ "name": "tagId1",
+ "properties": {
+ "displayName": "tag1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateService.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateService.json
new file mode 100644
index 000000000000..e30c9685040f
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateService.json
@@ -0,0 +1,124 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "publisherEmail": "foo@contoso.com",
+ "publisherName": "foo"
+ },
+ "sku": {
+ "name": "Developer",
+ "capacity": 1
+ },
+ "location": "South Central US",
+ "tags": {
+ "Name": "Contoso",
+ "Test": "User"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/dGVjaGVkX01hbmFnZVJvbGVfNWRiNGI3Ng==?api-version=2020-06-01-preview"
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "Name": "Contoso",
+ "Test": "User"
+ },
+ "location": "South Central US",
+ "etag": "AAAAAAAp3P0=",
+ "properties": {
+ "publisherEmail": "foo@contoso.com",
+ "publisherName": "foo",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Created",
+ "targetProvisioningState": "Activating",
+ "createdAtUtc": "2019-12-18T06:10:56.0327105Z",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": true
+ }
+ ],
+ "virtualNetworkType": "None",
+ "disableGateway": false,
+ "apiVersionConstraint": {}
+ },
+ "sku": {
+ "name": "Developer",
+ "capacity": 1
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "Name": "Contoso",
+ "Test": "User"
+ },
+ "location": "South Central US",
+ "etag": "AAAAAAAp3T4=",
+ "properties": {
+ "publisherEmail": "foo@contoso.com",
+ "publisherName": "foo",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Succeeded",
+ "targetProvisioningState": "",
+ "createdAtUtc": "2019-12-18T06:10:56.0327105Z",
+ "gatewayUrl": "https://apimService1.azure-api.net",
+ "gatewayRegionalUrl": "https://apimService1-southcentralus-01.regional.azure-api.net",
+ "portalUrl": "https://apimService1.portal.azure-api.net",
+ "developerPortalUrl": "https://apimService1.developer.azure-api.net",
+ "managementApiUrl": "https://apimService1.management.azure-api.net",
+ "scmUrl": "https://apimService1.scm.azure-api.net",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": true
+ }
+ ],
+ "publicIPAddresses": [
+ "23.102.171.124"
+ ],
+ "customProperties": {
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Ssl30": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2": "False"
+ },
+ "virtualNetworkType": "None",
+ "disableGateway": false,
+ "apiVersionConstraint": {}
+ },
+ "sku": {
+ "name": "Developer",
+ "capacity": 1
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/c2RrdGVzdGFwaW0xNTkxX0FjdF9jZTkyMmNmOQ==?api-version=2020-06-01-preview"
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceHavingMsi.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceHavingMsi.json
new file mode 100644
index 000000000000..5b587d61a0e0
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceHavingMsi.json
@@ -0,0 +1,119 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk"
+ },
+ "sku": {
+ "name": "Consumption",
+ "capacity": 0
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "location": "West US",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/dGVjaGVkX01hbmFnZVJvbGVfNWRiNGI3Ng==?api-version=2020-06-01-preview"
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ },
+ "location": "West US",
+ "etag": "AAAAAAAAWiE=",
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Created",
+ "targetProvisioningState": "Activating",
+ "createdAtUtc": "2019-04-11T16:29:29.9711098Z",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": true
+ }
+ ],
+ "virtualNetworkType": "None"
+ },
+ "sku": {
+ "name": "Consumption",
+ "capacity": 0
+ },
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "dfb9a757-df69-4966-a8d0-711a9cd8ffb4",
+ "tenantId": "XXXXXX-86f1-41af-91ab-2d7cd011db47"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ },
+ "location": "West US",
+ "etag": "AAAAAAAAWiU=",
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Succeeded",
+ "targetProvisioningState": "",
+ "createdAtUtc": "2019-04-11T16:29:29.9711098Z",
+ "gatewayUrl": "https://apimService1.azure-api.net",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": true
+ }
+ ],
+ "virtualNetworkType": "None",
+ "enableClientCertificate": false
+ },
+ "sku": {
+ "name": "Consumption",
+ "capacity": 0
+ },
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "dfb9a757-df69-4966-a8d0-711a9cd8ffb4",
+ "tenantId": "XXXXXX-86f1-41af-91ab-2d7cd011db47"
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/dGVjaGVkX01hbmFnZVJvbGVfNWRiNGI3Ng==?api-version=2020-06-01-preview"
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceInZones.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceInZones.json
new file mode 100644
index 000000000000..f3b8d7dc0323
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceInZones.json
@@ -0,0 +1,137 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk"
+ },
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ },
+ "zones": [
+ "1",
+ "2"
+ ],
+ "location": "North europe",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/dGVjaGVkX01hbmFnZVJvbGVfNWRiNGI3Ng==?api-version=2020-06-01-preview"
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ },
+ "location": "North Europe",
+ "etag": "AAAAAAAiXto=",
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Created",
+ "targetProvisioningState": "Activating",
+ "createdAtUtc": "2020-07-28T23:18:14.6562474Z",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": true
+ }
+ ],
+ "virtualNetworkType": "None",
+ "disableGateway": false
+ },
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ },
+ "zones": [
+ "1",
+ "2"
+ ]
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ },
+ "location": "North Europe",
+ "etag": "AAAAAAAiXvE=",
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Succeeded",
+ "targetProvisioningState": "",
+ "createdAtUtc": "2020-07-28T23:18:14.6562474Z",
+ "gatewayUrl": "https://apimService1.azure-api.net",
+ "gatewayRegionalUrl": "https://apimService1-northeurope-01.regional.azure-api.net",
+ "portalUrl": "https://apimService1.portal.azure-api.net",
+ "developerPortalUrl": "https://apimService1.developer.azure-api.net",
+ "managementApiUrl": "https://apimService1.management.azure-api.net",
+ "scmUrl": "https://apimService1.scm.azure-api.net",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": true
+ }
+ ],
+ "publicIPAddresses": [
+ "20.54.34.66"
+ ],
+ "customProperties": {
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Ssl30": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2": "False"
+ },
+ "virtualNetworkType": "None",
+ "disableGateway": false
+ },
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ },
+ "zones": [
+ "1",
+ "2"
+ ]
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/dGVjaGVkX01hbmFnZVJvbGVfNWRiNGI3Ng==?api-version=2020-06-01-preview"
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceWithCustomHostnameKeyVault.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceWithCustomHostnameKeyVault.json
new file mode 100644
index 000000000000..e137b08d207c
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceWithCustomHostnameKeyVault.json
@@ -0,0 +1,256 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "gateway1.msitesting.net",
+ "keyVaultId": "https://rpbvtkeyvaultintegration.vault.azure.net/secrets/msitestingCert",
+ "identityClientId": "329419bc-adec-4dce-9568-25a6d486e468",
+ "defaultSslBinding": true
+ },
+ {
+ "type": "Management",
+ "hostName": "mgmt.msitesting.net",
+ "keyVaultId": "https://rpbvtkeyvaultintegration.vault.azure.net/secrets/msitestingCert",
+ "identityClientId": "329419bc-adec-4dce-9568-25a6d486e468"
+ },
+ {
+ "type": "Portal",
+ "hostName": "portal1.msitesting.net",
+ "keyVaultId": "https://rpbvtkeyvaultintegration.vault.azure.net/secrets/msitestingCert",
+ "identityClientId": "329419bc-adec-4dce-9568-25a6d486e468"
+ }
+ ],
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "virtualNetworkType": "None",
+ "apiVersionConstraint": {
+ "minApiVersion": "2019-01-01"
+ }
+ },
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {}
+ }
+ },
+ "location": "North Europe",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/bXVsdGlob3N0bmFtZW11bHRpcmVnaW9uc2VydmljZV9BY3RfZjFiOTZhMjc=?api-version=2020-06-01-preview"
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ },
+ "location": "North Europe",
+ "etag": "AAAAAAAigi8=",
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Created",
+ "targetProvisioningState": "Activating",
+ "createdAtUtc": "2020-09-13T22:30:20.7759747Z",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": false
+ },
+ {
+ "type": "Proxy",
+ "hostName": "gateway1.msitesting.net",
+ "keyVaultId": "https://rpbvtkeyvaultintegration.vault.azure.net/secrets/msitestingCert",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2037-01-01T07:00:00+00:00",
+ "thumbprint": "EA276907917CB5XXXXXXXXXXX690",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": true,
+ "identityClientId": "329419bc-adec-4dce-9568-25a6d486e468"
+ },
+ {
+ "type": "Management",
+ "hostName": "mgmt.msitesting.net",
+ "keyVaultId": "https://rpbvtkeyvaultintegration.vault.azure.net/secrets/msitestingCert",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2037-01-01T07:00:00+00:00",
+ "thumbprint": "EA276907917CB5XXXXXXXXXXX690",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": false,
+ "identityClientId": "329419bc-adec-4dce-9568-25a6d486e468"
+ },
+ {
+ "type": "Portal",
+ "hostName": "portal1.msitesting.net",
+ "keyVaultId": "https://rpbvtkeyvaultintegration.vault.azure.net/secrets/msitestingCert",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2037-01-01T07:00:00+00:00",
+ "thumbprint": "EA276907917CB5XXXXXXXXXXX690",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": false,
+ "identityClientId": "329419bc-adec-4dce-9568-25a6d486e468"
+ }
+ ],
+ "virtualNetworkType": "None",
+ "disableGateway": false,
+ "apiVersionConstraint": {
+ "minApiVersion": "2019-01-01"
+ }
+ },
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {}
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ },
+ "location": "North Europe",
+ "etag": "AAAAAAAigjU=",
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Succeeded",
+ "targetProvisioningState": "",
+ "createdAtUtc": "2020-09-13T22:30:20.7759747Z",
+ "gatewayUrl": "https://apimService1.azure-api.net",
+ "gatewayRegionalUrl": "https://apimService1-northeurope-01.regional.azure-api.net",
+ "portalUrl": "https://apimService1.portal.azure-api.net",
+ "developerPortalUrl": "https://apimService1.developer.azure-api.net",
+ "managementApiUrl": "https://apimService1.management.azure-api.net",
+ "scmUrl": "https://apimService1.scm.azure-api.net",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": false
+ },
+ {
+ "type": "Proxy",
+ "hostName": "gateway1.msitesting.net",
+ "keyVaultId": "https://rpbvtkeyvaultintegration.vault.azure.net/secrets/msitestingCert",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2037-01-01T07:00:00+00:00",
+ "thumbprint": "EA276907917CB5XXXXXXXXXXX690",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": true,
+ "identityClientId": "329419bc-adec-4dce-9568-25a6d486e468"
+ },
+ {
+ "type": "Management",
+ "hostName": "mgmt.msitesting.net",
+ "keyVaultId": "https://rpbvtkeyvaultintegration.vault.azure.net/secrets/msitestingCert",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2037-01-01T07:00:00+00:00",
+ "thumbprint": "EA276907917CB5XXXXXXXXXXX690",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": false,
+ "identityClientId": "329419bc-adec-4dce-9568-25a6d486e468"
+ },
+ {
+ "type": "Portal",
+ "hostName": "portal1.msitesting.net",
+ "keyVaultId": "https://rpbvtkeyvaultintegration.vault.azure.net/secrets/msitestingCert",
+ "negotiateClientCertificate": false,
+ "certificate": {
+ "expiry": "2037-01-01T07:00:00+00:00",
+ "thumbprint": "EA276907917CB5XXXXXXXXXXX690",
+ "subject": "CN=*.msitesting.net"
+ },
+ "defaultSslBinding": false,
+ "identityClientId": "329419bc-adec-4dce-9568-25a6d486e468"
+ }
+ ],
+ "publicIPAddresses": [
+ "40.112.74.192"
+ ],
+ "customProperties": {
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Ssl30": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2": "False"
+ },
+ "virtualNetworkType": "None",
+ "disableGateway": false,
+ "apiVersionConstraint": {
+ "minApiVersion": "2019-01-01"
+ }
+ },
+ "sku": {
+ "name": "Premium",
+ "capacity": 1
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "tenantId": "f686d426-8d16-xxxx-xxxx-ab578e110ccd",
+ "userAssignedIdentities": {
+ "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {
+ "principalId": "15e769b2-xxxx-xxxx-xxxx-3fd9a923ac3a",
+ "clientId": "329419bc-adec-4dce-9568-25a6d486e468"
+ }
+ }
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/bXVsdGlob3N0bmFtZW11bHRpcmVnaW9uc2VydmljZV9BY3RfZjFiOTZhMjc=?api-version=2020-06-01-preview"
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceWithSystemCertificates.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceWithSystemCertificates.json
new file mode 100644
index 000000000000..04947bd314e9
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceWithSystemCertificates.json
@@ -0,0 +1,154 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "certificates": [
+ {
+ "encodedCertificate": "*******Base64 encoded Certificate******************",
+ "certificatePassword": "Password",
+ "storeName": "CertificateAuthority"
+ }
+ ],
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk"
+ },
+ "sku": {
+ "name": "Basic",
+ "capacity": 1
+ },
+ "location": "Central US",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/bXVsdGlob3N0bmFtZW11bHRpcmVnaW9uc2VydmljZV9BY3RfZjFiOTZhMjc=?api-version=2020-06-01-preview"
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ },
+ "location": "Central US",
+ "etag": "AAAAAAAp3TM=",
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Created",
+ "targetProvisioningState": "Activating",
+ "createdAtUtc": "2019-12-18T06:33:28.0906918Z",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": true
+ }
+ ],
+ "virtualNetworkType": "None",
+ "certificates": [
+ {
+ "storeName": "CertificateAuthority",
+ "certificate": {
+ "expiry": "2036-01-01T07:00:00+00:00",
+ "thumbprint": "8E989652CABCF585ACBFCB9C2C91F1D174FDB3A2",
+ "subject": "CN=*.msitesting.net"
+ }
+ }
+ ],
+ "disableGateway": false,
+ "apiVersionConstraint": {}
+ },
+ "sku": {
+ "name": "Basic",
+ "capacity": 1
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ },
+ "location": "Central US",
+ "etag": "AAAAAAAp3UM=",
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Succeeded",
+ "targetProvisioningState": "",
+ "createdAtUtc": "2019-12-18T06:33:28.0906918Z",
+ "gatewayUrl": "https://apimService1.azure-api.net",
+ "gatewayRegionalUrl": "https://apimService1-centralus-01.regional.azure-api.net",
+ "portalUrl": "https://apimService1.portal.azure-api.net",
+ "developerPortalUrl": "https://apimService1.developer.azure-api.net",
+ "managementApiUrl": "https://apimService1.management.azure-api.net",
+ "scmUrl": "https://apimService1.scm.azure-api.net",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": true
+ }
+ ],
+ "publicIPAddresses": [
+ "40.113.223.117"
+ ],
+ "customProperties": {
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Ssl30": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2": "False"
+ },
+ "virtualNetworkType": "None",
+ "certificates": [
+ {
+ "storeName": "CertificateAuthority",
+ "certificate": {
+ "expiry": "2036-01-01T07:00:00+00:00",
+ "thumbprint": "8E989652CABCF585ACBFCB9C2C91F1D174FDB3A2",
+ "subject": "CN=*.msitesting.net"
+ }
+ }
+ ],
+ "disableGateway": false,
+ "apiVersionConstraint": {}
+ },
+ "sku": {
+ "name": "Basic",
+ "capacity": 1
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/bXVsdGlob3N0bmFtZW11bHRpcmVnaW9uc2VydmljZV9BY3RfZjFiOTZhMjc=?api-version=2020-06-01-preview"
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceWithUserAssignedIdentity.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceWithUserAssignedIdentity.json
new file mode 100644
index 000000000000..17411e554208
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateServiceWithUserAssignedIdentity.json
@@ -0,0 +1,136 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk"
+ },
+ "sku": {
+ "name": "Consumption",
+ "capacity": 0
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/apimService1": {}
+ }
+ },
+ "location": "West US",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/dGVjaGVkX01hbmFnZVJvbGVfNWRiNGI3Ng==?api-version=2020-06-01-preview"
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ },
+ "location": "West US",
+ "etag": "AAAAAAAFzyQ=",
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Created",
+ "targetProvisioningState": "Activating",
+ "createdAtUtc": "2020-03-12T01:05:33.4573398Z",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": true
+ }
+ ],
+ "virtualNetworkType": "None"
+ },
+ "sku": {
+ "name": "Consumption",
+ "capacity": 0
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/apimService1": {}
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1",
+ "name": "apimService1",
+ "type": "Microsoft.ApiManagement/service",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2",
+ "tag3": "value3"
+ },
+ "location": "West US",
+ "etag": "AAAAAAAFzyk=",
+ "properties": {
+ "publisherEmail": "apim@autorestsdk.com",
+ "publisherName": "autorestsdk",
+ "notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
+ "provisioningState": "Succeeded",
+ "targetProvisioningState": "",
+ "createdAtUtc": "2020-03-12T01:05:33.4573398Z",
+ "gatewayUrl": "https://apimService1.azure-api.net",
+ "hostnameConfigurations": [
+ {
+ "type": "Proxy",
+ "hostName": "apimService1.azure-api.net",
+ "negotiateClientCertificate": false,
+ "defaultSslBinding": true
+ }
+ ],
+ "customProperties": {
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30": "False",
+ "Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2": "False"
+ },
+ "virtualNetworkType": "None",
+ "disableGateway": false
+ },
+ "sku": {
+ "name": "Consumption",
+ "capacity": 0
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "tenantId": "XXXXX-86f1-41af-XXXX-2d7cd011db47",
+ "userAssignedIdentities": {
+ "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/apimService1": {
+ "principalId": "XXXXX-6e62-4649-9f54-a119fc1ba85e",
+ "clientId": "5a2c6b8e-0905-XXXX-a772-993c9418137f"
+ }
+ }
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/operationresults/dGVjaGVkX01hbmFnZVJvbGVfNWRiNGI3Ng==?api-version=2020-06-01-preview"
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateSoapPassThroughApiUsingWsdlImport.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateSoapPassThroughApiUsingWsdlImport.json
new file mode 100644
index 000000000000..2f35ab4cac6b
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateSoapPassThroughApiUsingWsdlImport.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "soapApi",
+ "parameters": {
+ "properties": {
+ "format": "wsdl-link",
+ "value": "http://www.webservicex.net/CurrencyConvertor.asmx?WSDL",
+ "path": "currency",
+ "apiType": "soap",
+ "wsdlSelector": {
+ "wsdlServiceName": "CurrencyConvertor",
+ "wsdlEndpointName": "CurrencyConvertorSoap"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/soapApi",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "soapApi",
+ "properties": {
+ "displayName": "CurrencyConvertor",
+ "apiRevision": "1",
+ "serviceUrl": "http://www.webservicex.net",
+ "path": "currency",
+ "protocols": [
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "type": "soap",
+ "isCurrent": true
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/tempgroup?api-version=2020-06-01-preview&asyncId=5c730e343244df1b9cb56e85&asyncCode=201"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/soapApi",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "soapApi",
+ "properties": {
+ "displayName": "CurrencyConvertor",
+ "apiRevision": "1",
+ "serviceUrl": "http://www.webservicex.net",
+ "path": "currency",
+ "protocols": [
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "type": "soap",
+ "isCurrent": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateSoapToRestApiUsingWsdlImport.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateSoapToRestApiUsingWsdlImport.json
new file mode 100644
index 000000000000..7d3551631296
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateSoapToRestApiUsingWsdlImport.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "apiId": "soapApi",
+ "parameters": {
+ "properties": {
+ "format": "wsdl-link",
+ "value": "http://www.webservicex.net/CurrencyConvertor.asmx?WSDL",
+ "path": "currency",
+ "wsdlSelector": {
+ "wsdlServiceName": "CurrencyConvertor",
+ "wsdlEndpointName": "CurrencyConvertorSoap"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/soapApi",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "soapApi",
+ "properties": {
+ "displayName": "CurrencyConvertor",
+ "apiRevision": "1",
+ "serviceUrl": "http://www.webservicex.net",
+ "path": "currency",
+ "protocols": [
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/tempgroup?api-version=2020-06-01-preview&asyncId=5c730e343244df1b9cb56e85&asyncCode=201"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/soapApi",
+ "type": "Microsoft.ApiManagement/service/apis",
+ "name": "soapApi",
+ "properties": {
+ "displayName": "CurrencyConvertor",
+ "apiRevision": "1",
+ "serviceUrl": "http://www.webservicex.net",
+ "path": "currency",
+ "protocols": [
+ "https"
+ ],
+ "subscriptionKeyParameterNames": {
+ "header": "Ocp-Apim-Subscription-Key",
+ "query": "subscription-key"
+ },
+ "isCurrent": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateSubscription.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateSubscription.json
new file mode 100644
index 000000000000..b89203c4f074
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateSubscription.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "sid": "testsub",
+ "parameters": {
+ "properties": {
+ "ownerId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/57127d485157a511ace86ae7",
+ "scope": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/products/5600b59475ff190048060002",
+ "displayName": "testsub"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/subscriptions/testsub",
+ "type": "Microsoft.ApiManagement/service/subscriptions",
+ "name": "testsub",
+ "properties": {
+ "ownerId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/57127d485157a511ace86ae7",
+ "scope": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/products/5600b59475ff190048060002",
+ "displayName": "testsub",
+ "state": "submitted",
+ "createdDate": "2017-06-02T23:34:03.1055076Z"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/subscriptions/testsub",
+ "type": "Microsoft.ApiManagement/service/subscriptions",
+ "name": "testsub",
+ "properties": {
+ "ownerId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/57127d485157a511ace86ae7",
+ "scope": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/products/5600b59475ff190048060002",
+ "displayName": "testsub",
+ "state": "submitted",
+ "createdDate": "2017-06-02T23:34:03.1055076Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateTag.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateTag.json
new file mode 100644
index 000000000000..d2fac0799daf
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateTag.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "tagId": "tagId1",
+ "parameters": {
+ "properties": {
+ "displayName": "tag1"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
+ "type": "Microsoft.ApiManagement/service/tags",
+ "name": "tagId1",
+ "properties": {
+ "displayName": "tag1"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
+ "type": "Microsoft.ApiManagement/service/tags",
+ "name": "tagId1",
+ "properties": {
+ "displayName": "tag1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateTemplate.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateTemplate.json
new file mode 100644
index 000000000000..a891904a89e5
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementCreateTemplate.json
@@ -0,0 +1,96 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "templateName": "newIssueNotificationMessage",
+ "parameters": {
+ "properties": {
+ "subject": "Your request for $IssueName was successfully received."
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/templates/NewIssueNotificationMessage",
+ "type": "Microsoft.ApiManagement/service/templates",
+ "name": "NewIssueNotificationMessage",
+ "properties": {
+ "subject": "Your request for $IssueName was successfully received.",
+ "body": "\r\n\r\n \r\n \r\n
Dear $DevFirstName $DevLastName,
\r\n
Thank you for contacting us. Our API team will review your issue and get back to you soon.
\r\n
\r\n Click this link to view or edit your request.\r\n
\r\n
Best,
\r\n
The $OrganizationName API Team
\r\n \r\n",
+ "title": "New issue received",
+ "description": "This email is sent to developers after they create a new topic on the Issues page of the developer portal.",
+ "isDefault": false,
+ "parameters": [
+ {
+ "name": "DevFirstName",
+ "title": "Developer first name"
+ },
+ {
+ "name": "DevLastName",
+ "title": "Developer last name"
+ },
+ {
+ "name": "IssueId",
+ "title": "Issue id"
+ },
+ {
+ "name": "IssueName",
+ "title": "Issue name"
+ },
+ {
+ "name": "OrganizationName",
+ "title": "Organization name"
+ },
+ {
+ "name": "DevPortalUrl",
+ "title": "Developer portal URL"
+ }
+ ]
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/templates/NewIssueNotificationMessage",
+ "type": "Microsoft.ApiManagement/service/templates",
+ "name": "NewIssueNotificationMessage",
+ "properties": {
+ "subject": "Your request for $IssueName was successfully received.",
+ "body": "\r\n\r\n \r\n \r\n
Dear $DevFirstName $DevLastName,
\r\n
Thank you for contacting us. Our API team will review your issue and get back to you soon.
\r\n
\r\n Click this link to view or edit your request.\r\n
\r\n We are happy to let you know that your request to publish the $AppName application in the application gallery has been approved. Your application has been published and can be viewed here.\r\n
\r\n We are happy to let you know that your request to publish the $AppName application in the gallery has been approved. Your application has been published and can be viewed here.\r\n
Thank you for contacting us. Our API team will review your issue and get back to you soon.
\r\n
\r\n Click this link to view or edit your request.\r\n
\r\n
Best,
\r\n
The $OrganizationName API Team
\r\n \r\n",
+ "title": "New issue received",
+ "description": "This email is sent to developers after they create a new topic on the Issues page of the developer portal.",
+ "isDefault": true,
+ "parameters": [
+ {
+ "name": "DevFirstName",
+ "title": "Developer first name"
+ },
+ {
+ "name": "DevLastName",
+ "title": "Developer last name"
+ },
+ {
+ "name": "IssueId",
+ "title": "Issue id"
+ },
+ {
+ "name": "IssueName",
+ "title": "Issue name"
+ },
+ {
+ "name": "OrganizationName",
+ "title": "Organization name"
+ },
+ {
+ "name": "DevPortalUrl",
+ "title": "Developer portal URL"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUpdateTenantAccess.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUpdateTenantAccess.json
new file mode 100644
index 000000000000..9649d5b2d0bb
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUpdateTenantAccess.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "If-Match": "*",
+ "accessName": "access",
+ "parameters": {
+ "properties": {
+ "enabled": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "5600b59375ff190048030003",
+ "enabled": true
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUpdateUser.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUpdateUser.json
new file mode 100644
index 000000000000..509719245cb0
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUpdateUser.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "userId": "5931a75ae4bbd512a88c680b",
+ "If-Match": "*",
+ "parameters": {
+ "properties": {
+ "firstName": "foo",
+ "lastName": "bar",
+ "email": "foobar@outlook.com"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/users/5931a75ae4bbd512a88c680b",
+ "type": "Microsoft.ApiManagement/service/users",
+ "name": "5931a75ae4bbd512a88c680b",
+ "properties": {
+ "firstName": "foo",
+ "lastName": "bar",
+ "email": "foobar@outlook.com",
+ "state": "active",
+ "registrationDate": "2017-06-02T17:58:50.357Z",
+ "identities": [
+ {
+ "provider": "Microsoft",
+ "id": "*************"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUserConfirmationPasswordSend.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUserConfirmationPasswordSend.json
new file mode 100644
index 000000000000..f8a24bd75354
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUserConfirmationPasswordSend.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "userId": "57127d485157a511ace86ae7"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUserGenerateSsoUrl.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUserGenerateSsoUrl.json
new file mode 100644
index 000000000000..3b97a599accb
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUserGenerateSsoUrl.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "userId": "57127d485157a511ace86ae7"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": "https://apimService1.portal.azure-api.net/signin-sso?token=57127d485157a511ace86ae7%26201706051624%267VY18MlwAom***********2bYr2bDQHg21OzQsNakExQ%3d%3d"
+ }
+ }
+ }
+}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUserToken.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUserToken.json
new file mode 100644
index 000000000000..6213f36318c1
--- /dev/null
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2020-06-01-preview/examples/ApiManagementUserToken.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "serviceName": "apimService1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01-preview",
+ "subscriptionId": "subid",
+ "userId": "userId1718",
+ "parameters": {
+ "properties": {
+ "keyType": "primary",
+ "expiry": "2019-04-21T00:44:24.2845269Z"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": "userId1718&201904210044&9A1GR1f5WIhFvFmzQG+xxxxxxxxxxx/kBeu87DWad3tkasUXuvPL+MgzlwUHyg=="
+ }
+ }
+ }
+}
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/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/examples/ApiManagementCreateContentType.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/examples/ApiManagementCreateContentType.json
index 1ef1cbc9f30f..8ff951e395bc 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/examples/ApiManagementCreateContentType.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/examples/ApiManagementCreateContentType.json
@@ -12,12 +12,6 @@
"schema": {
"properties": {
"en_us": {
- "$ref": "#/definitions/metadata"
- }
- },
- "additionalProperties": false,
- "definitions": {
- "metadata": {
"type": "object",
"properties": {
"title": {
@@ -57,7 +51,8 @@
"documentId"
]
}
- }
+ },
+ "additionalProperties": false
},
"version": "1.0.0"
}
@@ -75,12 +70,6 @@
"schema": {
"properties": {
"en_us": {
- "$ref": "#/definitions/metadata"
- }
- },
- "additionalProperties": false,
- "definitions": {
- "metadata": {
"type": "object",
"properties": {
"title": {
@@ -120,7 +109,8 @@
"documentId"
]
}
- }
+ },
+ "additionalProperties": false
},
"version": "1.0.0"
}
@@ -137,12 +127,6 @@
"schema": {
"properties": {
"en_us": {
- "$ref": "#/definitions/metadata"
- }
- },
- "additionalProperties": false,
- "definitions": {
- "metadata": {
"type": "object",
"properties": {
"title": {
@@ -182,7 +166,8 @@
"documentId"
]
}
- }
+ },
+ "additionalProperties": false
},
"version": "1.0.0"
}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/examples/ApiManagementListContentTypes.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/examples/ApiManagementListContentTypes.json
index 4a008fed1b45..fe7ccc552877 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/examples/ApiManagementListContentTypes.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/examples/ApiManagementListContentTypes.json
@@ -19,12 +19,6 @@
"schema": {
"properties": {
"en_us": {
- "$ref": "#/definitions/metadata"
- }
- },
- "additionalProperties": false,
- "definitions": {
- "metadata": {
"type": "object",
"properties": {
"title": {
@@ -64,7 +58,8 @@
"documentId"
]
}
- }
+ },
+ "additionalProperties": false
},
"version": "1.0.0"
}
diff --git a/specification/apimanagement/resource-manager/readme.azureresourceschema.md b/specification/apimanagement/resource-manager/readme.azureresourceschema.md
index 7afd9c95a116..99e3ce1ce490 100644
--- a/specification/apimanagement/resource-manager/readme.azureresourceschema.md
+++ b/specification/apimanagement/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-apimanagement-2020-06-01-preview
- tag: schema-apimanagement-2019-12-01-preview
- tag: schema-apimanagement-2019-12-01
- tag: schema-apimanagement-2019-01-01
@@ -19,6 +20,52 @@ batch:
Please also specify `--azureresourceschema-folder=`.
+### Tag: schema-apimanagement-2020-06-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-apimanagement-2020-06-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimanagement.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimapis.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimapisByTags.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimapiversionsets.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimauthorizationservers.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimbackends.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimcaches.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimcertificates.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimcontenttypes.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimdeletedservices.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimdeployment.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimdiagnostics.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimemailtemplates.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimgateways.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimgroups.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimidentityprovider.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimissues.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimloggers.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimnamedvalues.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimnetworkstatus.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimnotifications.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimopenidconnectproviders.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimpolicies.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimpolicydescriptions.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimportalsettings.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimproducts.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimproductsByTags.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimquotas.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimregions.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimreports.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimsubscriptions.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimtagresources.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimtags.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimtenant.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimusers.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/definitions.json
+
+```
+
### Tag: schema-apimanagement-2019-12-01-preview and azureresourceschema
``` yaml $(tag) == 'schema-apimanagement-2019-12-01-preview' && $(azureresourceschema)
diff --git a/specification/apimanagement/resource-manager/readme.md b/specification/apimanagement/resource-manager/readme.md
index 623baea81b75..38edc5918a9e 100644
--- a/specification/apimanagement/resource-manager/readme.md
+++ b/specification/apimanagement/resource-manager/readme.md
@@ -28,10 +28,53 @@ These are the global settings for the ApiManagement API.
title: ApiManagementClient
description: ApiManagement Client
openapi-type: arm
-tag: package-2019-12
+tag: package-preview-2020-06
```
+### Tag: package-preview-2020-06
+
+These settings apply only when `--tag=package-preview-2020-06` is specified on the command line.
+
+```yaml $(tag) == 'package-preview-2020-06'
+input-file:
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimanagement.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimapis.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimapisByTags.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimapiversionsets.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimauthorizationservers.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimbackends.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimcaches.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimcertificates.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimcontenttypes.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimdeletedservices.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimdeployment.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimdiagnostics.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimemailtemplates.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimgateways.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimgroups.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimidentityprovider.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimissues.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimloggers.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimnamedvalues.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimnetworkstatus.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimnotifications.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimopenidconnectproviders.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimpolicies.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimpolicydescriptions.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimportalsettings.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimproducts.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimproductsByTags.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimquotas.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimregions.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimreports.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimsubscriptions.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimtagresources.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimtags.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimtenant.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/apimusers.json
+ - Microsoft.ApiManagement/preview/2020-06-01-preview/definitions.json
+```
### Tag: package-2019-12
These settings apply only when `--tag=package-2019-12` is specified on the command line.
@@ -74,6 +117,7 @@ input-file:
- Microsoft.ApiManagement/stable/2019-12-01/apimusers.json
- Microsoft.ApiManagement/stable/2019-12-01/definitions.json
```
+
### Tag: package-preview-2019-12
These settings apply only when `--tag=package-preview-2019-12` is specified on the command line.
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/appconfiguration.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/appconfiguration.json
new file mode 100644
index 000000000000..e8822e146841
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/appconfiguration.json
@@ -0,0 +1,1960 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-07-01-preview",
+ "title": "AppConfigurationManagementClient"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AppConfiguration/configurationStores": {
+ "get": {
+ "tags": [
+ "ConfigurationStores"
+ ],
+ "description": "Lists the configuration stores for a given subscription.",
+ "operationId": "ConfigurationStores_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "A skip token is used to continue retrieving items after an operation returns a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skipToken parameter that specifies a starting point to use for subsequent calls.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationStoreListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ConfigurationStores_List": {
+ "$ref": "./examples/ConfigurationStoresList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppConfiguration/configurationStores": {
+ "get": {
+ "tags": [
+ "ConfigurationStores"
+ ],
+ "description": "Lists the configuration stores for a given resource group.",
+ "operationId": "ConfigurationStores_ListByResourceGroup",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "A skip token is used to continue retrieving items after an operation returns a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skipToken parameter that specifies a starting point to use for subsequent calls.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationStoreListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ConfigurationStores_ListByResourceGroup": {
+ "$ref": "./examples/ConfigurationStoresListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppConfiguration/configurationStores/{configStoreName}": {
+ "get": {
+ "tags": [
+ "ConfigurationStores"
+ ],
+ "description": "Gets the properties of the specified configuration store.",
+ "operationId": "ConfigurationStores_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationStore"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ConfigurationStores_Get": {
+ "$ref": "./examples/ConfigurationStoresGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ConfigurationStores"
+ ],
+ "description": "Creates a configuration store with the specified parameters.",
+ "operationId": "ConfigurationStores_Create",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "configStoreCreationParameters",
+ "in": "body",
+ "description": "The parameters for creating a configuration store.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConfigurationStore"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationStore"
+ }
+ },
+ "201": {
+ "description": "The request was successfully accepted; the operation will complete asynchronously. The provisioning state of the resource should indicate the current state of the resource.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationStore"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ConfigurationStores_Create": {
+ "$ref": "./examples/ConfigurationStoresCreate.json"
+ },
+ "ConfigurationStores_Create_WithIdentity": {
+ "$ref": "./examples/ConfigurationStoresCreateWithIdentity.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "ConfigurationStores"
+ ],
+ "description": "Deletes a configuration store.",
+ "operationId": "ConfigurationStores_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "202": {
+ "description": "The request was successful; the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "No Content - the specified resource was not found."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ConfigurationStores_Delete": {
+ "$ref": "./examples/ConfigurationStoresDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "ConfigurationStores"
+ ],
+ "description": "Updates a configuration store with the specified parameters.",
+ "operationId": "ConfigurationStores_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "configStoreUpdateParameters",
+ "in": "body",
+ "description": "The parameters for updating a configuration store.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConfigurationStoreUpdateParameters"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationStore"
+ }
+ },
+ "201": {
+ "description": "The request was successfully accepted; the operation will complete asynchronously. The provisioning state of the resource should indicate the current state of the resource.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationStore"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ConfigurationStores_Update": {
+ "$ref": "./examples/ConfigurationStoresUpdate.json"
+ },
+ "ConfigurationStores_Update_WithIdentity": {
+ "$ref": "./examples/ConfigurationStoresUpdateWithIdentity.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AppConfiguration/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Checks whether the configuration store name is available for use.",
+ "operationId": "Operations_CheckNameAvailability",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "checkNameAvailabilityParameters",
+ "in": "body",
+ "description": "The object containing information for the availability request.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CheckNameAvailabilityParameters"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/NameAvailabilityStatus"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ConfigurationStores_CheckNameAvailable": {
+ "$ref": "./examples/CheckNameAvailable.json"
+ },
+ "ConfigurationStores_CheckNameNotAvailable": {
+ "$ref": "./examples/CheckNameNotAvailable.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppConfiguration/configurationStores/{configStoreName}/listKeys": {
+ "post": {
+ "tags": [
+ "ConfigurationStores"
+ ],
+ "description": "Lists the access key for the specified configuration store.",
+ "operationId": "ConfigurationStores_ListKeys",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "A skip token is used to continue retrieving items after an operation returns a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skipToken parameter that specifies a starting point to use for subsequent calls.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/ApiKeyListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ConfigurationStores_ListKeys": {
+ "$ref": "./examples/ConfigurationStoresListKeys.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppConfiguration/configurationStores/{configStoreName}/regenerateKey": {
+ "post": {
+ "tags": [
+ "ConfigurationStores"
+ ],
+ "description": "Regenerates an access key for the specified configuration store.",
+ "operationId": "ConfigurationStores_RegenerateKey",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "regenerateKeyParameters",
+ "in": "body",
+ "description": "The parameters for regenerating an access key.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RegenerateKeyParameters"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/ApiKey"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ConfigurationStores_RegenerateKey": {
+ "$ref": "./examples/ConfigurationStoresRegenerateKey.json"
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.AppConfiguration/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Lists the operations available from this provider.",
+ "operationId": "Operations_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "A skip token is used to continue retrieving items after an operation returns a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skipToken parameter that specifies a starting point to use for subsequent calls.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/OperationDefinitionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {},
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppConfiguration/configurationStores/{configStoreName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_ListByConfigurationStore",
+ "description": "Lists all private endpoint connections for a configuration store.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateEndpointConnection_List": {
+ "$ref": "./examples/ConfigurationStoresListPrivateEndpointConnections.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppConfiguration/configurationStores/{configStoreName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Get",
+ "description": "Gets the specified private endpoint connection associated with the configuration store.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "description": "Private endpoint connection name",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateEndpointConnection_GetConnection": {
+ "$ref": "./examples/ConfigurationStoresGetPrivateEndpointConnection.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_CreateOrUpdate",
+ "description": "Update the state of the specified private endpoint connection associated with the configuration store.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "description": "Private endpoint connection name",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "privateEndpointConnection",
+ "in": "body",
+ "description": "The private endpoint connection properties.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "201": {
+ "description": "The request was successfully accepted; the operation will complete asynchronously. The provisioning state of the resource should indicate the current state of the resource.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateEndpointConnection_CreateOrUpdate": {
+ "$ref": "./examples/ConfigurationStoresCreatePrivateEndpointConnection.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "description": "Deletes a private endpoint connection.",
+ "operationId": "PrivateEndpointConnections_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "description": "Private endpoint connection name",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "202": {
+ "description": "The request was successful; the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "No Content - the specified resource was not found."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateEndpointConnections_Delete": {
+ "$ref": "./examples/ConfigurationStoresDeletePrivateEndpointConnection.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppConfiguration/configurationStores/{configStoreName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "PrivateLinkResources"
+ ],
+ "operationId": "PrivateLinkResources_ListByConfigurationStore",
+ "description": "Gets the private link resources that need to be created for a configuration store.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResourceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateLinkResources_ListGroupIds": {
+ "$ref": "./examples/PrivateLinkResourcesListByConfigurationStore.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppConfiguration/configurationStores/{configStoreName}/privateLinkResources/{groupName}": {
+ "get": {
+ "tags": [
+ "PrivateLinkResources"
+ ],
+ "operationId": "PrivateLinkResources_Get",
+ "description": "Gets a private link resource that need to be created for a configuration store.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "groupName",
+ "in": "path",
+ "description": "The name of the private link resource group.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateLinkResources_Get": {
+ "$ref": "./examples/PrivateLinkResourceGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppConfiguration/configurationStores/{configStoreName}/keyValues": {
+ "get": {
+ "tags": [
+ "KeyValues"
+ ],
+ "description": "Lists the key-values for a given configuration store.",
+ "operationId": "KeyValues_ListByConfigurationStore",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "A skip token is used to continue retrieving items after an operation returns a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skipToken parameter that specifies a starting point to use for subsequent calls.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/KeyValueListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "KeyValues_ListByConfigurationStore": {
+ "$ref": "./examples/ConfigurationStoresListKeyValues.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppConfiguration/configurationStores/{configStoreName}/keyValues/{keyValueName}": {
+ "get": {
+ "tags": [
+ "KeyValues"
+ ],
+ "description": "Gets the properties of the specified key-value.",
+ "operationId": "KeyValues_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "keyValueName",
+ "in": "path",
+ "description": "Identifier of key and label combination. Key and label are joined by $ character. Label is optional.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/KeyValue"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "KeyValues_Get": {
+ "$ref": "./examples/ConfigurationStoresGetKeyValue.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "KeyValues"
+ ],
+ "description": "Creates a key-value.",
+ "operationId": "KeyValues_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "keyValueName",
+ "in": "path",
+ "description": "Identifier of key and label combination. Key and label are joined by $ character. Label is optional.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "keyValueParameters",
+ "in": "body",
+ "description": "The parameters for creating a key-value.",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/KeyValue"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/KeyValue"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "KeyValues_CreateOrUpdate": {
+ "$ref": "./examples/ConfigurationStoresCreateKeyValue.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "KeyValues"
+ ],
+ "description": "Deletes a key-value.",
+ "operationId": "KeyValues_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConfigStoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "keyValueName",
+ "in": "path",
+ "description": "Identifier of key and label combination. Key and label are joined by $ character. Label is optional.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "202": {
+ "description": "The request was successful; the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "No Content - the specified resource was not found."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "KeyValues_Delete": {
+ "$ref": "./examples/ConfigurationStoresDeleteKeyValue.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ }
+ },
+ "definitions": {
+ "ConfigurationStoreListResult": {
+ "description": "The result of a request to list configuration stores.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The collection value.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ConfigurationStore"
+ }
+ },
+ "nextLink": {
+ "description": "The URI that can be used to request the next set of paged results.",
+ "type": "string"
+ }
+ }
+ },
+ "ConfigurationStore": {
+ "description": "The configuration store along with all resource properties. The Configuration Store will have all information to begin utilizing it.",
+ "required": [
+ "location",
+ "sku"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "identity": {
+ "$ref": "#/definitions/ResourceIdentity",
+ "description": "The managed identity information, if configured."
+ },
+ "properties": {
+ "$ref": "#/definitions/ConfigurationStoreProperties",
+ "description": "The properties of a configuration store.",
+ "x-ms-client-flatten": true
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The sku of the configuration store."
+ }
+ }
+ },
+ "ConfigurationStoreProperties": {
+ "description": "The properties of a configuration store.",
+ "type": "object",
+ "properties": {
+ "provisioningState": {
+ "description": "The provisioning state of the configuration store.",
+ "enum": [
+ "Creating",
+ "Updating",
+ "Deleting",
+ "Succeeded",
+ "Failed",
+ "Canceled"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "creationDate": {
+ "format": "date-time",
+ "description": "The creation date of configuration store.",
+ "type": "string",
+ "readOnly": true
+ },
+ "endpoint": {
+ "description": "The DNS endpoint where the configuration store API will be available.",
+ "type": "string",
+ "readOnly": true
+ },
+ "encryption": {
+ "$ref": "#/definitions/EncryptionProperties",
+ "description": "The encryption settings of the configuration store."
+ },
+ "privateEndpointConnections": {
+ "description": "The list of private endpoint connections that are set up for this resource.",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnectionReference"
+ }
+ },
+ "publicNetworkAccess": {
+ "description": "Control permission for data plane traffic coming from public networks while private endpoint is enabled.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "PublicNetworkAccess",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "EncryptionProperties": {
+ "type": "object",
+ "description": "The encryption settings for a configuration store.",
+ "properties": {
+ "keyVaultProperties": {
+ "$ref": "#/definitions/KeyVaultProperties",
+ "description": "Key vault properties."
+ }
+ }
+ },
+ "PrivateEndpointConnectionReference": {
+ "type": "object",
+ "description": "A reference to a related private endpoint connection.",
+ "properties": {
+ "id": {
+ "description": "The resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "The name of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "The type of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "description": "The properties of a private endpoint connection.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "KeyVaultProperties": {
+ "type": "object",
+ "description": "Settings concerning key vault encryption for a configuration store.",
+ "properties": {
+ "keyIdentifier": {
+ "description": "The URI of the key vault key used to encrypt data.",
+ "type": "string"
+ },
+ "identityClientId": {
+ "description": "The client id of the identity which will be used to access key vault.",
+ "type": "string"
+ }
+ }
+ },
+ "ConfigurationStoreUpdateParameters": {
+ "description": "The parameters for updating a configuration store.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ConfigurationStorePropertiesUpdateParameters",
+ "description": "The properties for updating a configuration store.",
+ "x-ms-client-flatten": true
+ },
+ "identity": {
+ "$ref": "#/definitions/ResourceIdentity",
+ "description": "The managed identity information for the configuration store."
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The SKU of the configuration store."
+ },
+ "tags": {
+ "description": "The ARM resource tags.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "ConfigurationStorePropertiesUpdateParameters": {
+ "description": "The properties for updating a configuration store.",
+ "type": "object",
+ "properties": {
+ "encryption": {
+ "$ref": "#/definitions/EncryptionProperties",
+ "description": "The encryption settings of the configuration store."
+ }
+ }
+ },
+ "CheckNameAvailabilityParameters": {
+ "description": "Parameters used for checking whether a resource name is available.",
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name to check for availability.",
+ "type": "string"
+ },
+ "type": {
+ "description": "The resource type to check for name availability.",
+ "enum": [
+ "Microsoft.AppConfiguration/configurationStores"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ConfigurationResourceType",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "NameAvailabilityStatus": {
+ "description": "The result of a request to check the availability of a resource name.",
+ "type": "object",
+ "properties": {
+ "nameAvailable": {
+ "description": "The value indicating whether the resource name is available.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "message": {
+ "description": "If any, the error message that provides more detail for the reason that the name is not available.",
+ "type": "string",
+ "readOnly": true
+ },
+ "reason": {
+ "description": "If any, the reason that the name is not available.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ApiKeyListResult": {
+ "description": "The result of a request to list API keys.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The collection value.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApiKey"
+ }
+ },
+ "nextLink": {
+ "description": "The URI that can be used to request the next set of paged results.",
+ "type": "string"
+ }
+ }
+ },
+ "ApiKey": {
+ "description": "An API key used for authenticating with a configuration store endpoint.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The key ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "A name for the key describing its usage.",
+ "type": "string",
+ "readOnly": true
+ },
+ "value": {
+ "description": "The value of the key that is used for authentication purposes.",
+ "type": "string",
+ "readOnly": true
+ },
+ "connectionString": {
+ "description": "A connection string that can be used by supporting clients for authentication.",
+ "type": "string",
+ "readOnly": true
+ },
+ "lastModified": {
+ "format": "date-time",
+ "description": "The last time any of the key's properties were modified.",
+ "type": "string",
+ "readOnly": true
+ },
+ "readOnly": {
+ "description": "Whether this key can only be used for read operations.",
+ "type": "boolean",
+ "readOnly": true
+ }
+ }
+ },
+ "RegenerateKeyParameters": {
+ "description": "The parameters used to regenerate an API key.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The id of the key to regenerate.",
+ "type": "string"
+ }
+ }
+ },
+ "KeyValueListResult": {
+ "description": "The result of a request to list key-values.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The collection value.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/KeyValue"
+ }
+ },
+ "nextLink": {
+ "description": "The URI that can be used to request the next set of paged results.",
+ "type": "string"
+ }
+ }
+ },
+ "KeyValue": {
+ "description": "The key-value resource along with all resource properties.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "The name of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "The type of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/KeyValueProperties",
+ "description": "All key-value properties.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "KeyValueProperties": {
+ "description": "All key-value properties.",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "The primary identifier of a key-value.\r\nThe key is used in unison with the label to uniquely identify a key-value.",
+ "type": "string",
+ "readOnly": true
+ },
+ "label": {
+ "description": "A value used to group key-values.\r\nThe label is used in unison with the key to uniquely identify a key-value.",
+ "type": "string",
+ "readOnly": true
+ },
+ "value": {
+ "description": "The value of the key-value.",
+ "type": "string"
+ },
+ "contentType": {
+ "description": "The content type of the key-value's value.\r\nProviding a proper content-type can enable transformations of values when they are retrieved by applications.",
+ "type": "string"
+ },
+ "eTag": {
+ "description": "An ETag indicating the state of a key-value within a configuration store.",
+ "type": "string",
+ "readOnly": true
+ },
+ "lastModified": {
+ "format": "date-time",
+ "description": "The last time a modifying operation was performed on the given key-value.",
+ "type": "string",
+ "readOnly": true
+ },
+ "locked": {
+ "description": "A value indicating whether the key-value is locked.\r\nA locked key-value may not be modified until it is unlocked.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "tags": {
+ "description": "A dictionary of tags that can help identify what a key-value may be applicable for.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "OperationDefinitionListResult": {
+ "description": "The result of a request to list configuration store operations.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The collection value.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationDefinition"
+ }
+ },
+ "nextLink": {
+ "description": "The URI that can be used to request the next set of paged results.",
+ "type": "string"
+ }
+ }
+ },
+ "OperationDefinition": {
+ "description": "The definition of a configuration store operation.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}.",
+ "type": "string"
+ },
+ "isDataAction": {
+ "description": "Indicates whether the operation is a data action",
+ "type": "boolean"
+ },
+ "display": {
+ "$ref": "#/definitions/OperationDefinitionDisplay",
+ "description": "The display information for the configuration store operation."
+ },
+ "origin": {
+ "description": "Origin of the operation",
+ "type": "string"
+ },
+ "properties": {
+ "$ref": "#/definitions/OperationProperties",
+ "description": "Properties of the operation"
+ }
+ }
+ },
+ "OperationDefinitionDisplay": {
+ "description": "The display information for a configuration store operation.",
+ "type": "object",
+ "properties": {
+ "provider": {
+ "description": "The resource provider name: Microsoft App Configuration.\"",
+ "type": "string",
+ "readOnly": true
+ },
+ "resource": {
+ "description": "The resource on which the operation is performed.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "The operation that users can perform.",
+ "type": "string"
+ },
+ "description": {
+ "description": "The description for the operation.",
+ "type": "string"
+ }
+ }
+ },
+ "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"
+ },
+ "aggregationType": {
+ "description": "Only provide one value for this field. Valid values: Average, Minimum, Maximum, Total, Count.",
+ "type": "string"
+ },
+ "internalMetricName": {
+ "description": "Internal metric name.",
+ "type": "string"
+ },
+ "dimensions": {
+ "description": "Dimensions of the metric",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricDimension"
+ }
+ }
+ }
+ },
+ "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"
+ },
+ "internalName": {
+ "description": "Internal name of the dimension.",
+ "type": "string"
+ }
+ }
+ },
+ "ResourceIdentity": {
+ "type": "object",
+ "description": "An identity that can be associated with a resource.",
+ "properties": {
+ "type": {
+ "description": "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identities.",
+ "enum": [
+ "None",
+ "SystemAssigned",
+ "UserAssigned",
+ "SystemAssigned, UserAssigned"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IdentityType",
+ "modelAsString": true
+ }
+ },
+ "userAssignedIdentities": {
+ "description": "The list of user-assigned identities associated with the resource. The user-assigned identity dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/UserIdentity"
+ }
+ },
+ "principalId": {
+ "description": "The principal id of the identity. This property will only be provided for a system-assigned identity.",
+ "type": "string",
+ "readOnly": true
+ },
+ "tenantId": {
+ "description": "The tenant id associated with the resource's identity. This property will only be provided for a system-assigned identity.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UserIdentity": {
+ "type": "object",
+ "description": "A resource identity that is managed by the user of the service.",
+ "properties": {
+ "principalId": {
+ "description": "The principal ID of the user-assigned identity.",
+ "type": "string",
+ "readOnly": true
+ },
+ "clientId": {
+ "description": "The client ID of the user-assigned identity.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "Sku": {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The SKU name of the configuration store.",
+ "type": "string"
+ }
+ },
+ "description": "Describes a configuration store SKU."
+ },
+ "ErrorDetails": {
+ "description": "The details of the error.",
+ "properties": {
+ "code": {
+ "description": "Error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ErrorResponse": {
+ "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": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "Resource": {
+ "description": "An Azure resource.",
+ "required": [
+ "location"
+ ],
+ "properties": {
+ "id": {
+ "description": "The resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "The name of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "The type of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "location": {
+ "description": "The location of the resource. This cannot be changed after the resource is created.",
+ "type": "string",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "tags": {
+ "description": "The tags of the resource.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "PrivateEndpointConnectionListResult": {
+ "type": "object",
+ "description": "A list of private endpoint connections",
+ "properties": {
+ "value": {
+ "description": "The collection value.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "nextLink": {
+ "description": "The URI that can be used to request the next set of paged results.",
+ "type": "string"
+ }
+ }
+ },
+ "PrivateEndpointConnection": {
+ "description": "A private endpoint connection",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "The name of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "The type of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "description": "The properties of a private endpoint.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "PrivateEndpointConnectionProperties": {
+ "type": "object",
+ "description": "Properties of a private endpoint connection.",
+ "properties": {
+ "provisioningState": {
+ "enum": [
+ "Creating",
+ "Updating",
+ "Deleting",
+ "Succeeded",
+ "Failed",
+ "Canceled"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "description": "The provisioning status of the private endpoint connection.",
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "privateEndpoint": {
+ "$ref": "#/definitions/PrivateEndpoint",
+ "description": "The resource of private endpoint."
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "#/definitions/PrivateLinkServiceConnectionState",
+ "description": "A collection of information about the state of the connection between service consumer and provider."
+ }
+ },
+ "required": [
+ "privateLinkServiceConnectionState"
+ ]
+ },
+ "PrivateEndpoint": {
+ "type": "object",
+ "description": "Private endpoint which a connection belongs to.",
+ "properties": {
+ "id": {
+ "description": "The resource Id for private endpoint",
+ "type": "string"
+ }
+ }
+ },
+ "PrivateLinkServiceConnectionState": {
+ "description": "The state of a private link service connection.",
+ "type": "object",
+ "properties": {
+ "status": {
+ "enum": [
+ "Pending",
+ "Approved",
+ "Rejected",
+ "Disconnected"
+ ],
+ "type": "string",
+ "description": "The private link service connection status.",
+ "x-ms-enum": {
+ "name": "ConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "description": {
+ "type": "string",
+ "description": "The private link service connection description."
+ },
+ "actionsRequired": {
+ "enum": [
+ "None",
+ "Recreate"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "description": "Any action that is required beyond basic workflow (approve/ reject/ disconnect)",
+ "x-ms-enum": {
+ "name": "ActionsRequired",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "PrivateLinkResourceListResult": {
+ "type": "object",
+ "description": "A list of private link resources.",
+ "properties": {
+ "value": {
+ "description": "The collection value.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ }
+ },
+ "nextLink": {
+ "description": "The URI that can be used to request the next set of paged results.",
+ "type": "string"
+ }
+ }
+ },
+ "PrivateLinkResource": {
+ "type": "object",
+ "description": "A resource that supports private link capabilities.",
+ "properties": {
+ "id": {
+ "description": "The resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "The name of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "The type of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/PrivateLinkResourceProperties",
+ "description": "Private link resource properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "PrivateLinkResourceProperties": {
+ "type": "object",
+ "properties": {
+ "groupId": {
+ "description": "The private link resource group id.",
+ "type": "string",
+ "readOnly": true
+ },
+ "requiredMembers": {
+ "description": "The private link resource required member names.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "requiredZoneNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true,
+ "description": "The list of required DNS zone names of the private link resource."
+ }
+ },
+ "description": "Properties of a private link resource."
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "The Microsoft Azure subscription ID.",
+ "required": true,
+ "type": "string"
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "description": "The name of the resource group to which the container registry belongs.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "ConfigStoreNameParameter": {
+ "name": "configStoreName",
+ "in": "path",
+ "description": "The name of the configuration store.",
+ "required": true,
+ "type": "string",
+ "maxLength": 50,
+ "minLength": 5,
+ "pattern": "^[a-zA-Z0-9_-]*$",
+ "x-ms-parameter-location": "method"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "description": "The client API version.",
+ "required": true,
+ "type": "string"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ },
+ "type": "oauth2",
+ "description": "Azure Active Directory OAuth2 Flow"
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/CheckNameAvailable.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/CheckNameAvailable.json
new file mode 100644
index 000000000000..60426fdaac53
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/CheckNameAvailable.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "api-version": "2020-07-01-preview",
+ "checkNameAvailabilityParameters": {
+ "name": "contoso",
+ "type": "Microsoft.AppConfiguration/configurationStores"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": true,
+ "message": "The specified name is available.",
+ "reason": null
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/CheckNameNotAvailable.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/CheckNameNotAvailable.json
new file mode 100644
index 000000000000..10e2a074401d
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/CheckNameNotAvailable.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "api-version": "2020-07-01-preview",
+ "checkNameAvailabilityParameters": {
+ "name": "contoso",
+ "type": "Microsoft.AppConfiguration/configurationStores"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": false,
+ "reason": "AlreadyExists",
+ "message": "The specified name is already in use."
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresCreate.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresCreate.json
new file mode 100644
index 000000000000..0e5185e46219
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresCreate.json
@@ -0,0 +1,73 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview",
+ "configStoreCreationParameters": {
+ "location": "westus",
+ "sku": {
+ "name": "Standard"
+ },
+ "tags": {
+ "myTag": "myTagValue"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "type": "Microsoft.AppConfiguration/configurationStores",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "creationDate": "2018-04-24T16:30:55+00:00",
+ "endpoint": "https://contoso.azconfig.io",
+ "encryption": {
+ "keyVaultProperties": {
+ "keyIdentifier": null,
+ "identityClientId": null
+ }
+ },
+ "privateEndpointConnections": [],
+ "publicNetworkAccess": "Disabled"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso",
+ "name": "contoso",
+ "location": "westus",
+ "tags": {
+ "myTag": "myTagValue"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "type": "Microsoft.AppConfiguration/configurationStores",
+ "properties": {
+ "provisioningState": "Creating",
+ "creationDate": "2018-04-24T16:30:55+00:00",
+ "endpoint": "https://contoso.azconfig.io",
+ "encryption": {
+ "keyVaultProperties": {
+ "keyIdentifier": null,
+ "identityClientId": null
+ }
+ },
+ "privateEndpointConnections": [],
+ "publicNetworkAccess": "Disabled"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso",
+ "name": "contoso",
+ "location": "westus",
+ "tags": {
+ "myTag": "myTagValue"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresCreateKeyValue.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresCreateKeyValue.json
new file mode 100644
index 000000000000..3fa26edbd9ed
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresCreateKeyValue.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview",
+ "keyValueName": "myKey$myLabel",
+ "keyValueParameters": {
+ "properties": {
+ "value": "myValue",
+ "tags": {
+ "tag1": "tagValue1",
+ "tag2": "tagValue2"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "type": "Microsoft.AppConfiguration/configurationStores/keyValues",
+ "properties": {
+ "key": "myKey",
+ "label": "myLabel",
+ "value": "myValue",
+ "contentType": "",
+ "eTag": "IhDxoa8VkXxPsYsemBlxvV0d5fp",
+ "lastModified": "2020-06-23T06:42:24+00:00",
+ "locked": false,
+ "tags": {
+ "tag1": "tagValue1",
+ "tag2": "tagValue2"
+ }
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso/keyValues/myKey$myLabel",
+ "name": "myKey$myLabel"
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresCreatePrivateEndpointConnection.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresCreatePrivateEndpointConnection.json
new file mode 100644
index 000000000000..a026b6f66db1
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresCreatePrivateEndpointConnection.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "privateEndpointConnectionName": "myConnection",
+ "api-version": "2020-07-01-preview",
+ "privateEndpointConnection": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso/privateEndpointConnections/myConnection",
+ "name": "myConnection",
+ "type": "Microsoft.AppConfiguration/configurationStores/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/peexample01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso/privateEndpointConnections/myConnection",
+ "name": "myConnection",
+ "type": "Microsoft.AppConfiguration/configurationStores/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/peexample01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresCreateWithIdentity.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresCreateWithIdentity.json
new file mode 100644
index 000000000000..79d2c7e12504
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresCreateWithIdentity.json
@@ -0,0 +1,101 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview",
+ "configStoreCreationParameters": {
+ "location": "westus",
+ "sku": {
+ "name": "Standard"
+ },
+ "tags": {
+ "myTag": "myTagValue"
+ },
+ "identity": {
+ "type": "SystemAssigned, UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourcegroups/myResourceGroup1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity2": {}
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "type": "Microsoft.AppConfiguration/configurationStores",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "creationDate": "2018-04-24T16:30:55+00:00",
+ "endpoint": "https://contoso.azconfig.io",
+ "encryption": {
+ "keyVaultProperties": {
+ "keyIdentifier": null,
+ "identityClientId": null
+ }
+ },
+ "privateEndpointConnections": [],
+ "publicNetworkAccess": "Disabled"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "identity": {
+ "principalId": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
+ "tenantId": "BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB",
+ "type": "SystemAssigned, UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourcegroups/myResourceGroup1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity2": {
+ "clientId": "CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC",
+ "principalId": "DDDDDDDD-DDDD-DDDD-DDDD-DDDDDDDDDDDD"
+ }
+ }
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso",
+ "name": "contoso",
+ "location": "westus",
+ "tags": {
+ "myTag": "myTagValue"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "type": "Microsoft.AppConfiguration/configurationStores",
+ "properties": {
+ "provisioningState": "Creating",
+ "creationDate": "2018-04-24T16:30:55+00:00",
+ "endpoint": "https://contoso.azconfig.io",
+ "encryption": {
+ "keyVaultProperties": {
+ "keyIdentifier": null,
+ "identityClientId": null
+ }
+ },
+ "privateEndpointConnections": [],
+ "publicNetworkAccess": "Disabled"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "identity": {
+ "principalId": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
+ "tenantId": "BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB",
+ "type": "SystemAssigned, UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourcegroups/myResourceGroup1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity2": {
+ "clientId": "CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC",
+ "principalId": "DDDDDDDD-DDDD-DDDD-DDDD-DDDDDDDDDDDD"
+ }
+ }
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso",
+ "name": "contoso",
+ "location": "westus",
+ "tags": {
+ "myTag": "myTagValue"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresDelete.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresDelete.json
new file mode 100644
index 000000000000..34d501fb71f3
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresDeleteKeyValue.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresDeleteKeyValue.json
new file mode 100644
index 000000000000..6ca474efd8aa
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresDeleteKeyValue.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview",
+ "keyValueName": "myKey$myLabel"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresDeletePrivateEndpointConnection.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresDeletePrivateEndpointConnection.json
new file mode 100644
index 000000000000..ecbb9f0539e4
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresDeletePrivateEndpointConnection.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "privateEndpointConnectionName": "myConnection",
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresGet.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresGet.json
new file mode 100644
index 000000000000..d41981042b67
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresGet.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "type": "Microsoft.AppConfiguration/configurationStores",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "creationDate": "2018-04-24T16:30:55+00:00",
+ "endpoint": "https://contoso.azconfig.io",
+ "encryption": {
+ "keyVaultProperties": {
+ "keyIdentifier": null,
+ "identityClientId": null
+ }
+ },
+ "privateEndpointConnections": [],
+ "publicNetworkAccess": "Disabled"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "identity": {
+ "principalId": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
+ "tenantId": "BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB",
+ "type": "SystemAssigned"
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso",
+ "name": "contoso",
+ "location": "westus",
+ "tags": {}
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresGetKeyValue.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresGetKeyValue.json
new file mode 100644
index 000000000000..356021bb1e5e
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresGetKeyValue.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview",
+ "keyValueName": "myKey$myLabel"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "type": "Microsoft.AppConfiguration/configurationStores/keyValues",
+ "properties": {
+ "key": "myKey",
+ "label": "myLabel",
+ "value": "myValue",
+ "contentType": "",
+ "eTag": "IhDxoa8VkXxPsYsemBlxvV0d5fp",
+ "lastModified": "2020-06-23T06:42:24+00:00",
+ "locked": false,
+ "tags": {
+ "tag1": "tagValue1",
+ "tag2": "tagValue2"
+ }
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso/keyValues/myKey$myLabel",
+ "name": "myKey$myLabel"
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresGetPrivateEndpointConnection.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresGetPrivateEndpointConnection.json
new file mode 100644
index 000000000000..9ce8bf38b42b
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresGetPrivateEndpointConnection.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "privateEndpointConnectionName": "myConnection",
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso/privateEndpointConnections/myConnection",
+ "name": "myConnection",
+ "type": "Microsoft.AppConfiguration/configurationStores/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/peexample01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresList.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresList.json
new file mode 100644
index 000000000000..c1ba19057f81
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresList.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "type": "Microsoft.AppConfiguration/configurationStores",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "creationDate": "2018-04-24T16:30:55+00:00",
+ "endpoint": "https://contoso.azconfig.io",
+ "encryption": {
+ "keyVaultProperties": {
+ "keyIdentifier": null,
+ "identityClientId": null
+ }
+ },
+ "privateEndpointConnections": [],
+ "publicNetworkAccess": "Disabled"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "identity": {
+ "principalId": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
+ "tenantId": "BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB",
+ "type": "SystemAssigned"
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso",
+ "name": "contoso",
+ "location": "westus",
+ "tags": {}
+ },
+ {
+ "type": "Microsoft.AppConfiguration/configurationStores",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "creationDate": "2018-04-24T23:06:59+00:00",
+ "endpoint": "https://contoso2.azconfig.io",
+ "encryption": {
+ "keyVaultProperties": {
+ "keyIdentifier": null,
+ "identityClientId": null
+ }
+ },
+ "privateEndpointConnections": [],
+ "publicNetworkAccess": "Disabled"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "identity": {
+ "principalId": "CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC",
+ "tenantId": "BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB",
+ "type": "SystemAssigned"
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso2",
+ "name": "contoso2",
+ "location": "westus",
+ "tags": {}
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresListByResourceGroup.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresListByResourceGroup.json
new file mode 100644
index 000000000000..551d59e280a4
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresListByResourceGroup.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "type": "Microsoft.AppConfiguration/configurationStores",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "creationDate": "2018-04-24T16:30:55+00:00",
+ "endpoint": "https://contoso.azconfig.io",
+ "encryption": {
+ "keyVaultProperties": {
+ "keyIdentifier": null,
+ "identityClientId": null
+ }
+ },
+ "privateEndpointConnections": [],
+ "publicNetworkAccess": "Disabled"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso",
+ "name": "contoso",
+ "location": "westus",
+ "tags": {}
+ },
+ {
+ "type": "Microsoft.AppConfiguration/configurationStores",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "creationDate": "2018-04-24T23:06:59+00:00",
+ "endpoint": "https://contoso2.azconfig.io",
+ "encryption": {
+ "keyVaultProperties": {
+ "keyIdentifier": null,
+ "identityClientId": null
+ }
+ },
+ "privateEndpointConnections": [],
+ "publicNetworkAccess": "Disabled"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso2",
+ "name": "contoso2",
+ "location": "westus",
+ "tags": {}
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresListKeyValues.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresListKeyValues.json
new file mode 100644
index 000000000000..43c85eb330f1
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresListKeyValues.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "type": "Microsoft.AppConfiguration/configurationStores/keyValues",
+ "properties": {
+ "key": "myKey",
+ "label": "myLabel",
+ "value": "myValue",
+ "contentType": "",
+ "eTag": "IhDxoa8VkXxPsYsemBlxvV0d5fp",
+ "lastModified": "2020-06-23T06:42:24+00:00",
+ "locked": false,
+ "tags": {
+ "tag1": "tagValue1",
+ "tag2": "tagValue2"
+ }
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso/keyValues/myKey$myLabel",
+ "name": "myKey$myLabel"
+ },
+ {
+ "type": "Microsoft.AppConfiguration/configurationStores/keyValues",
+ "properties": {
+ "key": "myKey2",
+ "label": "myLabel2",
+ "value": "myValue",
+ "contentType": "",
+ "eTag": "IfDxoa8VkXxPsYsemBlxvV0d5fp",
+ "lastModified": "2020-06-23T06:42:24+00:00",
+ "locked": false,
+ "tags": {
+ "tag1": "tagValue1",
+ "tag2": "tagValue2"
+ }
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso/keyValues/myKey2$myLabel2",
+ "name": "myKey2$myLabel2"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresListKeys.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresListKeys.json
new file mode 100644
index 000000000000..f064d35f0ed6
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresListKeys.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "439AD01B4BE67DB1",
+ "name": "Primary",
+ "value": "000000000000000000000000000000000000000000000000000000",
+ "connectionString": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
+ "lastModified": "2018-04-24T16:30:54+00:00",
+ "readOnly": false
+ },
+ {
+ "id": "CB45E100456857B9",
+ "name": "Secondary",
+ "value": "000000000000000000000000000000000000000000000000000000",
+ "connectionString": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
+ "lastModified": "2018-04-24T16:30:54+00:00",
+ "readOnly": false
+ },
+ {
+ "id": "B3AC55B7E71431A9",
+ "name": "Primary Read Only",
+ "value": "000000000000000000000000000000000000000000000000000000",
+ "connectionString": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
+ "lastModified": "2018-04-24T16:30:54+00:00",
+ "readOnly": true
+ },
+ {
+ "id": "E2AF6A9A89DCC177",
+ "name": "Secondary Read Only",
+ "value": "000000000000000000000000000000000000000000000000000000",
+ "connectionString": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
+ "lastModified": "2018-04-24T16:30:54+00:00",
+ "readOnly": true
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresListPrivateEndpointConnections.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresListPrivateEndpointConnections.json
new file mode 100644
index 000000000000..36721dcecc33
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresListPrivateEndpointConnections.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso/privateEndpointConnections/myConnection",
+ "name": "myConnection",
+ "type": "Microsoft.AppConfiguration/configurationStores/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/peexample01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresRegenerateKey.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresRegenerateKey.json
new file mode 100644
index 000000000000..8176bceba950
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresRegenerateKey.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview",
+ "regenerateKeyParameters": {
+ "id": "439AD01B4BE67DB1"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "439AD01B4BE67DB1",
+ "name": "Primary",
+ "value": "000000000000000000000000000000000000000000000000000000",
+ "connectionString": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
+ "lastModified": "2018-04-26T22:59:24.2370906+00:00",
+ "readOnly": false
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresUpdate.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresUpdate.json
new file mode 100644
index 000000000000..72378ed10084
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresUpdate.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview",
+ "configStoreUpdateParameters": {
+ "tags": {
+ "Category": "Marketing"
+ },
+ "sku": {
+ "name": "Standard"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "type": "Microsoft.AppConfiguration/configurationStores",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "creationDate": "2018-04-24T16:30:55+00:00",
+ "endpoint": "https://contoso.azconfig.io",
+ "encryption": {
+ "keyVaultProperties": {
+ "keyIdentifier": null,
+ "identityClientId": null
+ }
+ },
+ "privateEndpointConnections": [],
+ "publicNetworkAccess": "Disabled"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso",
+ "name": "contoso",
+ "location": "westus",
+ "tags": {
+ "Category": "Marketing"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "type": "Microsoft.AppConfiguration/configurationStores",
+ "properties": {
+ "provisioningState": "Updating",
+ "creationDate": "2018-04-24T16:30:55+00:00",
+ "endpoint": "https://contoso.azconfig.io",
+ "encryption": {
+ "keyVaultProperties": {
+ "keyIdentifier": null,
+ "identityClientId": null
+ }
+ },
+ "privateEndpointConnections": [],
+ "publicNetworkAccess": "Disabled"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso",
+ "name": "contoso",
+ "location": "westus",
+ "tags": {
+ "Category": "Marketing"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresUpdateWithIdentity.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresUpdateWithIdentity.json
new file mode 100644
index 000000000000..986fcb164e24
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/ConfigurationStoresUpdateWithIdentity.json
@@ -0,0 +1,100 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview",
+ "configStoreUpdateParameters": {
+ "tags": {
+ "Category": "Marketing"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "identity": {
+ "type": "SystemAssigned, UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourcegroups/myResourceGroup1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity2": {}
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "type": "Microsoft.AppConfiguration/configurationStores",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "creationDate": "2018-04-24T16:30:55+00:00",
+ "endpoint": "https://contoso.azconfig.io",
+ "encryption": {
+ "keyVaultProperties": {
+ "keyIdentifier": null,
+ "identityClientId": null
+ }
+ },
+ "privateEndpointConnections": [],
+ "publicNetworkAccess": "Disabled"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "identity": {
+ "principalId": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
+ "tenantId": "BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB",
+ "type": "SystemAssigned, UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourcegroups/myResourceGroup1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity2": {
+ "clientId": "CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC",
+ "principalId": "DDDDDDDD-DDDD-DDDD-DDDD-DDDDDDDDDDDD"
+ }
+ }
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso",
+ "name": "contoso",
+ "location": "westus",
+ "tags": {
+ "Category": "Marketing"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "type": "Microsoft.AppConfiguration/configurationStores",
+ "properties": {
+ "provisioningState": "Updating",
+ "creationDate": "2018-04-24T16:30:55+00:00",
+ "endpoint": "https://contoso.azconfig.io",
+ "encryption": {
+ "keyVaultProperties": {
+ "keyIdentifier": null,
+ "identityClientId": null
+ }
+ },
+ "privateEndpointConnections": [],
+ "publicNetworkAccess": "Disabled"
+ },
+ "sku": {
+ "name": "Standard"
+ },
+ "identity": {
+ "principalId": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
+ "tenantId": "BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB",
+ "type": "SystemAssigned, UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourcegroups/myResourceGroup1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity2": {
+ "clientId": "CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC",
+ "principalId": "DDDDDDDD-DDDD-DDDD-DDDD-DDDDDDDDDDDD"
+ }
+ }
+ },
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso",
+ "name": "contoso",
+ "location": "westus",
+ "tags": {
+ "Category": "Marketing"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/PrivateLinkResourceGet.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/PrivateLinkResourceGet.json
new file mode 100644
index 000000000000..73499f7a781c
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/PrivateLinkResourceGet.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview",
+ "groupName": "configurationStores"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso/privateLinkResources/configurationStores",
+ "name": "configurationStores",
+ "type": "Microsoft.AppConfiguraiton/configurationStores/privateLinkResources",
+ "properties": {
+ "groupId": "configurationStores",
+ "requiredMembers": [
+ "configurationStores"
+ ],
+ "requiredZoneNames": [
+ "privatelink.azconfig.io"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/PrivateLinkResourcesListByConfigurationStore.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/PrivateLinkResourcesListByConfigurationStore.json
new file mode 100644
index 000000000000..c1e4767ffe02
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2020-07-01-preview/examples/PrivateLinkResourcesListByConfigurationStore.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "c80fb759-c965-4c6a-9110-9b2b2d038882",
+ "resourceGroupName": "myResourceGroup",
+ "configStoreName": "contoso",
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/c80fb759-c965-4c6a-9110-9b2b2d038882/resourceGroups/myResourceGroup/providers/Microsoft.AppConfiguration/configurationStores/contoso/privateLinkResources/configurationStores",
+ "name": "configurationStores",
+ "type": "Microsoft.AppConfiguraiton/configurationStores/privateLinkResources",
+ "properties": {
+ "groupId": "configurationStores",
+ "requiredMembers": [
+ "configurationStores"
+ ],
+ "requiredZoneNames": [
+ "privatelink.azconfig.io"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/appconfiguration/resource-manager/readme.go.md b/specification/appconfiguration/resource-manager/readme.go.md
index 8b9ca1624935..cdcf3496c0b5 100644
--- a/specification/appconfiguration/resource-manager/readme.go.md
+++ b/specification/appconfiguration/resource-manager/readme.go.md
@@ -13,12 +13,22 @@ go:
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-2020-07-01-preview
- tag: package-2020-06-01
- tag: package-2019-11-01-preview
- tag: package-2019-10-01
- tag: package-2019-02-01-preview
```
+### 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)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-07-01-preview/$(namespace)
+```
+
### Tag: package-2020-06-01 and go
These settings apply only when `--tag=package-2020-06-01 --go` is specified on the command line.
diff --git a/specification/appconfiguration/resource-manager/readme.java.md b/specification/appconfiguration/resource-manager/readme.java.md
index f20aca80ff98..deefcca752c4 100644
--- a/specification/appconfiguration/resource-manager/readme.java.md
+++ b/specification/appconfiguration/resource-manager/readme.java.md
@@ -16,11 +16,25 @@ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-appconfiguration
``` yaml $(java) && $(multiapi)
batch:
+ - tag: package-2020-07-01-preview
- tag: package-2020-06-01
- tag: package-2019-10-01
- tag: package-2019-02-01-preview
```
+### Tag: package-2020-07-01-preview and java
+
+These settings apply only when `--tag=package-2020-07-01-preview --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag)=='package-2020-07-01-preview' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.appconfiguration.v2020_07_01_preview
+ output-folder: $(azure-libraries-for-java-folder)/sdk/appconfiguration/mgmt-v2020_07_01_preview
+regenerate-manager: true
+generate-interface: true
+```
+
### Tag: package-2020-06-01 and java
These settings apply only when `--tag=package-2020-06-01 --java` is specified on the command line.
diff --git a/specification/appconfiguration/resource-manager/readme.md b/specification/appconfiguration/resource-manager/readme.md
index 8f59f70c2a43..920bdb01695d 100644
--- a/specification/appconfiguration/resource-manager/readme.md
+++ b/specification/appconfiguration/resource-manager/readme.md
@@ -26,7 +26,16 @@ These are the global settings for the AppConfiguration API.
``` yaml
openapi-type: arm
-tag: package-2020-06-01
+tag: package-2020-07-01-preview
+```
+
+### Tag: package-2020-07-01-preview
+
+These settings apply only when `--tag=2020-07-01-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-07-01-preview'
+input-file:
+- Microsoft.AppConfiguration/preview/2020-07-01-preview/appconfiguration.json
```
### Tag: package-2020-06-01
@@ -128,7 +137,7 @@ directive:
reason: We did consider using an enum instead but found it to not be helpful.
- suppress: EnumInsteadOfBoolean
from: appconfiguration.json
- where: $.definitions.KeyValue.properties.locked
+ where: $.definitions.KeyValueProperties.properties.locked
reason: This is data plane level information proxied through the RP and cannot be changed.
```
diff --git a/specification/applicationinsights/data-plane/Monitor.Exporters/preview/2020-09-15_Preview/swagger.json b/specification/applicationinsights/data-plane/Monitor.Exporters/preview/2020-09-15_Preview/swagger.json
index 53f0815ec32c..3c790353ec37 100644
--- a/specification/applicationinsights/data-plane/Monitor.Exporters/preview/2020-09-15_Preview/swagger.json
+++ b/specification/applicationinsights/data-plane/Monitor.Exporters/preview/2020-09-15_Preview/swagger.json
@@ -849,6 +849,7 @@
},
"time": {
"type": "string",
+ "format": "date-time",
"description": "Event date time when telemetry item was created. This is the wall clock time on the client when the event was generated. There is no guarantee that the client's time is accurate. This field must be formatted in UTC ISO 8601 format, with a trailing 'Z' character, as described publicly on https://en.wikipedia.org/wiki/ISO_8601#UTC. Note: the number of decimal seconds digits provided are variable (and unspecified). Consumers should handle this, i.e. managed code consumers should not use format 'O' for parsing as it specifies a fixed length. Example: 2009-06-15T13:45:30.0000000Z."
},
"sampleRate": {
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/Operations_List.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/Operations_List.json
new file mode 100644
index 000000000000..02bcba3635f9
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/Operations_List.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "api-version": "2020-10-05-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.insights/webtests",
+ "display": {
+ "provider": "Microsoft Container Instance",
+ "resource": "webtests",
+ "operation": "CRUD operations on webtest",
+ "description": "CRUD operations on webtest"
+ },
+ "origin": "User"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestCreate.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestCreate.json
new file mode 100644
index 000000000000..d4a592e3395a
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestCreate.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "api-version": "2020-10-05-preview",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "webTestName": "my-webtest-my-component",
+ "WebTestDefinition": {
+ "location": "South Central US",
+ "kind": "ping",
+ "properties": {
+ "Name": "my-webtest-my-component",
+ "SyntheticMonitorId": "my-webtest-my-component",
+ "Configuration": {
+ "WebTest": ""
+ },
+ "Description": "Ping web test alert for mytestwebapp",
+ "Enabled": true,
+ "Frequency": 900,
+ "Timeout": 120,
+ "Kind": "ping",
+ "RetryEnabled": true,
+ "Locations": [
+ {
+ "Id": "us-fl-mia-edge"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/webtests/my-webtest-my-component",
+ "name": "my-webtest-my-component",
+ "type": "Microsoft.Insights/webtests",
+ "location": "southcentralus",
+ "tags": {
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/components/my-component": "Resource",
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Web/sites/mytestwebapp": "Resource"
+ },
+ "kind": "ping",
+ "properties": {
+ "Name": "my-webtest-my-component",
+ "SyntheticMonitorId": "my-webtest-my-component",
+ "Description": "Ping web test alert for mytestwebapp",
+ "Enabled": true,
+ "Frequency": 900,
+ "Timeout": 120,
+ "Kind": "ping",
+ "RetryEnabled": true,
+ "Locations": [
+ {
+ "Id": "us-fl-mia-edge"
+ }
+ ],
+ "Configuration": {
+ "WebTest": ""
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestDelete.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestDelete.json
new file mode 100644
index 000000000000..c1438fa108c3
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-10-05-preview",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "webTestName": "my-webtest-01-mywebservice"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestGet.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestGet.json
new file mode 100644
index 000000000000..af81591ea12f
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestGet.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "api-version": "2020-10-05-preview",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "webTestName": "my-webtest-01-mywebservice"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/my-test-resources/providers/Microsoft.Insights/webtests/my-webtest-01-mywebservice",
+ "name": "my-webtest-01-mywebservice",
+ "type": "Microsoft.Insights/webtests",
+ "location": "southcentralus",
+ "tags": {
+ "hidden-link:/subscriptions/subid/resourceGroups/my-test-resources/providers/Microsoft.Insights/components/mytester": "Resource",
+ "hidden-link:/subscriptions/subid/resourceGroups/my-test-resources/providers/Microsoft.Web/sites/mytester": "Resource"
+ },
+ "kind": "ping",
+ "properties": {
+ "SyntheticMonitorId": "my-webtest-01-mywebservice",
+ "Name": "mytest-webtest-01",
+ "Description": "",
+ "Enabled": false,
+ "Frequency": 900,
+ "Timeout": 30,
+ "Kind": "ping",
+ "RetryEnabled": true,
+ "Locations": [
+ {
+ "Id": "us-fl-mia-edge"
+ },
+ {
+ "Id": "apac-hk-hkn-azr"
+ }
+ ],
+ "Configuration": {
+ "WebTest": ""
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestList.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestList.json
new file mode 100644
index 000000000000..033c6ebec7b7
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestList.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "api-version": "2020-10-05-preview",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/webtests/my-webtest-my-component",
+ "name": "my-webtest-my-component",
+ "type": "Microsoft.Insights/webtests",
+ "location": "southcentralus",
+ "tags": {
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/components/my-component": "Resource",
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Web/sites/mytestwebapp": "Resource"
+ },
+ "kind": "ping",
+ "properties": {
+ "SyntheticMonitorId": "my-webtest-my-component",
+ "Name": "my-webtest",
+ "Description": "",
+ "Enabled": false,
+ "Frequency": 900,
+ "Timeout": 120,
+ "Kind": "ping",
+ "RetryEnabled": true,
+ "Locations": [],
+ "Configuration": {
+ "WebTest": ""
+ },
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/my-other-resource-group/providers/Microsoft.Insights/webtests/my-webtest-my-other-component",
+ "name": "my-webtest-my-other-component",
+ "type": "Microsoft.Insights/webtests",
+ "location": "southcentralus",
+ "tags": {
+ "Test": "You can delete this synthetic monitor anytime",
+ "hidden-link:/subscriptions/subid/resourceGroups/my-other-resource-group/providers/Microsoft.Insights/components/my-other-component": "Resource"
+ },
+ "kind": "ping",
+ "properties": {
+ "SyntheticMonitorId": "my-webtest-my-other-component",
+ "Name": "342bccf4-722f-496d-b064-123456789abc",
+ "Description": "",
+ "Enabled": false,
+ "Frequency": 900,
+ "Timeout": 120,
+ "Kind": "ping",
+ "RetryEnabled": false,
+ "Locations": [],
+ "Configuration": {
+ "WebTest": ""
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestListByComponent.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestListByComponent.json
new file mode 100644
index 000000000000..b8f6f6901248
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestListByComponent.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "api-version": "2020-10-05-preview",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "componentName": "my-component"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/webtests/my-webtest-my-component",
+ "name": "my-webtest-my-component",
+ "type": "Microsoft.Insights/webtests",
+ "location": "southcentralus",
+ "tags": {
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/components/my-component": "Resource",
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Web/sites/mytestwebapp": "Resource"
+ },
+ "kind": "ping",
+ "properties": {
+ "SyntheticMonitorId": "my-webtest-my-component",
+ "Name": "my-webtest",
+ "Description": "",
+ "Enabled": false,
+ "Frequency": 900,
+ "Timeout": 120,
+ "Kind": "ping",
+ "RetryEnabled": true,
+ "Locations": [
+ {
+ "Id": "apac-hk-hkn-azr"
+ }
+ ],
+ "Configuration": {
+ "WebTest": ""
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestListByResourceGroup.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestListByResourceGroup.json
new file mode 100644
index 000000000000..06a2118a79bb
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestListByResourceGroup.json
@@ -0,0 +1,76 @@
+{
+ "parameters": {
+ "api-version": "2020-10-05-preview",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/webtests/my-webtest-my-component",
+ "name": "my-webtest-my-component",
+ "type": "Microsoft.Insights/webtests",
+ "location": "southcentralus",
+ "tags": {
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/components/my-component": "Resource",
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Web/sites/mytestwebapp": "Resource"
+ },
+ "kind": "ping",
+ "properties": {
+ "SyntheticMonitorId": "my-webtest-my-component",
+ "Name": "my-webtest",
+ "Description": "",
+ "Enabled": false,
+ "Frequency": 900,
+ "Timeout": 120,
+ "Kind": "ping",
+ "RetryEnabled": true,
+ "Locations": [
+ {
+ "Id": "apac-hk-hkn-azr"
+ }
+ ],
+ "Configuration": {
+ "WebTest": ""
+ },
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/webtests/my-webtest-my-other-component",
+ "name": "my-webtest-my-other-component",
+ "type": "Microsoft.Insights/webtests",
+ "location": "southcentralus",
+ "tags": {
+ "Test": "You can delete this synthetic monitor anytime",
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/components/my-other-component": "Resource"
+ },
+ "kind": "ping",
+ "properties": {
+ "SyntheticMonitorId": "my-webtest-my-other-component",
+ "Name": "342bccf4-722f-496d-b064-123456789abc",
+ "Description": "",
+ "Enabled": false,
+ "Frequency": 300,
+ "Timeout": 90,
+ "Kind": "ping",
+ "RetryEnabled": false,
+ "Locations": [
+ {
+ "Id": "us-fl-mia-edge"
+ }
+ ],
+ "Configuration": {
+ "WebTest": ""
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestUpdate.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestUpdate.json
new file mode 100644
index 000000000000..4db95f82f2cd
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestUpdate.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "api-version": "2020-10-05-preview",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "webTestName": "my-webtest-my-component",
+ "WebTestDefinition": {
+ "location": "South Central US",
+ "kind": "ping",
+ "properties": {
+ "Configuration": {
+ "WebTest": ""
+ },
+ "Frequency": 600,
+ "Timeout": 30,
+ "Locations": [
+ {
+ "Id": "us-fl-mia-edge"
+ },
+ {
+ "Id": "apac-hk-hkn-azr"
+ }
+ ],
+ "Kind": "ping",
+ "Name": "my-webtest-my-component",
+ "SyntheticMonitorId": "my-webtest-my-component"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/webtests/my-webtest-my-component",
+ "name": "my-webtest-my-component",
+ "type": "Microsoft.Insights/webtests",
+ "location": "southcentralus",
+ "tags": {
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/components/my-component": "Resource",
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Web/sites/mytestwebapp": "Resource"
+ },
+ "kind": "ping",
+ "properties": {
+ "Name": "my-webtest-my-component",
+ "SyntheticMonitorId": "my-webtest-my-component",
+ "Description": "Ping web test alert for mytestwebapp",
+ "Enabled": true,
+ "Frequency": 600,
+ "Timeout": 30,
+ "Kind": "ping",
+ "RetryEnabled": true,
+ "Locations": [
+ {
+ "Id": "us-fl-mia-edge"
+ },
+ {
+ "Id": "apac-hk-hkn-azr"
+ }
+ ],
+ "Configuration": {
+ "WebTest": ""
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestUpdateTagsOnly.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestUpdateTagsOnly.json
new file mode 100644
index 000000000000..517323cb7cfe
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/examples/WebTestUpdateTagsOnly.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "api-version": "2020-10-05-preview",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "webTestName": "my-webtest-my-component",
+ "WebTestTags": {
+ "tags": {
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/components/my-component": "Resource",
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Web/sites/mytestwebapp": "Resource",
+ "CustomField-01": "This is a random value",
+ "SystemType": "A08",
+ "Color": "AzureBlue"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/webtests/my-webtest-my-component",
+ "name": "my-webtest-my-component",
+ "type": "Microsoft.Insights/webtests",
+ "location": "southcentralus",
+ "tags": {
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/components/my-component": "Resource",
+ "hidden-link:/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Web/sites/mytestwebapp": "Resource",
+ "CustomField-01": "This is a random value",
+ "SystemType": "A08",
+ "Color": "AzureBlue"
+ },
+ "kind": "ping",
+ "properties": {
+ "Name": "my-webtest-my-component",
+ "SyntheticMonitorId": "my-webtest-my-component",
+ "Description": "Ping web test alert for mytestwebapp",
+ "Enabled": true,
+ "Frequency": 600,
+ "Timeout": 30,
+ "Kind": "ping",
+ "RetryEnabled": true,
+ "Locations": [
+ {
+ "Id": "us-fl-mia-edge"
+ },
+ {
+ "Id": "apac-hk-hkn-azr"
+ }
+ ],
+ "Configuration": {
+ "WebTest": ""
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/webTests_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/webTests_API.json
new file mode 100644
index 000000000000..cf128cdb0556
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-10-05-preview/webTests_API.json
@@ -0,0 +1,678 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApplicationInsightsManagementClient",
+ "description": "Azure Application Insights client for web test based alerting.",
+ "version": "2020-10-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": {
+ "/providers/Microsoft.Insights/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "summary": "List available operations.",
+ "description": "List the available operations supported by the Microsoft.EventGrid resource provider.",
+ "operationId": "Operations_List",
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/OperationsListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Operations_List": {
+ "$ref": "./examples/Operations_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/webtests": {
+ "get": {
+ "description": "Get all Application Insights web tests defined within a specified resource group.",
+ "operationId": "WebTests_ListByResourceGroup",
+ "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": "A list containing 0 or more web test definitions.",
+ "schema": {
+ "$ref": "#/definitions/webTestListResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "webTestListByResourceGroup": {
+ "$ref": "./examples/WebTestListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/webtests/{webTestName}": {
+ "get": {
+ "description": "Get a specific Application Insights web test definition.",
+ "operationId": "WebTests_Get",
+ "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"
+ },
+ {
+ "$ref": "#/parameters/WebTestNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Ann Application Insights web test definition.",
+ "schema": {
+ "$ref": "#/definitions/WebTest"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "webTestGet": {
+ "$ref": "./examples/WebTestGet.json"
+ }
+ }
+ },
+ "put": {
+ "description": "Creates or updates an Application Insights web test definition.",
+ "operationId": "WebTests_CreateOrUpdate",
+ "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"
+ },
+ {
+ "$ref": "#/parameters/WebTestNameParameter"
+ },
+ {
+ "name": "WebTestDefinition",
+ "description": "Properties that need to be specified to create or update an Application Insights web test definition.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WebTest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Adding the Application Insights web test was successful. Web test properties are updated and returned.",
+ "schema": {
+ "$ref": "#/definitions/WebTest"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "webTestCreate": {
+ "$ref": "./examples/WebTestCreate.json"
+ },
+ "webTestUpdate": {
+ "$ref": "./examples/WebTestUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Creates or updates an Application Insights web test definition.",
+ "operationId": "WebTests_UpdateTags",
+ "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"
+ },
+ {
+ "$ref": "#/parameters/WebTestNameParameter"
+ },
+ {
+ "name": "WebTestTags",
+ "description": "Updated tag information to set into the web test instance.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TagsResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Updating the Application Insights web test tags was successful. Web test tags are updated and returned with the rest of the WebTest object properties.",
+ "schema": {
+ "$ref": "#/definitions/WebTest"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "webTestUpdateTags": {
+ "$ref": "./examples/WebTestUpdateTagsOnly.json"
+ }
+ }
+ },
+ "delete": {
+ "description": "Deletes an Application Insights web test.",
+ "operationId": "WebTests_Delete",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WebTestNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No content: the request was successful, but the response is empty (the request to delete failed because the specified web test does not exist)."
+ },
+ "200": {
+ "description": "Successful request to delete a web test definition."
+ }
+ },
+ "x-ms-examples": {
+ "webTestDelete": {
+ "$ref": "./examples/WebTestDelete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Insights/webtests": {
+ "get": {
+ "description": "Get all Application Insights web test alerts definitions within a subscription.",
+ "operationId": "WebTests_List",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A list of 0 or more Application Insights web test definitions.",
+ "schema": {
+ "$ref": "#/definitions/webTestListResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "webTestList": {
+ "$ref": "./examples/WebTestList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{componentName}/webtests": {
+ "get": {
+ "description": "Get all Application Insights web tests defined for the specified component.",
+ "operationId": "WebTests_ListByComponent",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ComponentNameParameter"
+ },
+ {
+ "$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": "A list containing 0 or more web test definitions.",
+ "schema": {
+ "$ref": "#/definitions/webTestListResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "webTestListByComponent": {
+ "$ref": "./examples/WebTestListByComponent.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "WebtestsResource": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource Id"
+ },
+ "name": {
+ "type": "string",
+ "description": "Azure resource name",
+ "readOnly": true
+ },
+ "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"
+ },
+ "TagsResource": {
+ "properties": {
+ "tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "description": "A container holding only the Tags for a resource, allowing the user to update the tags on a WebTest instance."
+ },
+ "webTestListResult": {
+ "description": "A list of 0 or more Application Insights WebTest definitions.",
+ "required": [
+ "value"
+ ],
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "Set of Application Insights WebTest definitions.",
+ "items": {
+ "$ref": "#/definitions/WebTest"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The link to get the next part of the returned list of WebTest, should the return set be too large for a single request. May be null."
+ }
+ }
+ },
+ "WebTest": {
+ "description": "An Application Insights WebTest definition.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/WebtestsResource"
+ }
+ ],
+ "properties": {
+ "kind": {
+ "type": "string",
+ "description": "The kind of WebTest that this web test watches. Choices are ping and multistep.",
+ "default": "ping",
+ "enum": [
+ "ping",
+ "multistep"
+ ],
+ "x-ms-enum": {
+ "name": "WebTestKind",
+ "modelAsString": false
+ }
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Metadata describing a web test for an Azure resource.",
+ "$ref": "#/definitions/WebTestProperties"
+ }
+ }
+ },
+ "WebTestProperties": {
+ "description": "Metadata describing a web test for an Azure resource.",
+ "required": [
+ "Name",
+ "Kind",
+ "Locations",
+ "SyntheticMonitorId"
+ ],
+ "properties": {
+ "SyntheticMonitorId": {
+ "type": "string",
+ "description": "Unique ID of this WebTest. This is typically the same value as the Name field."
+ },
+ "Name": {
+ "x-ms-client-name": "WebTestName",
+ "type": "string",
+ "description": "User defined name if this WebTest."
+ },
+ "Description": {
+ "type": "string",
+ "description": "User defined description for this WebTest."
+ },
+ "Enabled": {
+ "type": "boolean",
+ "description": "Is the test actively being monitored."
+ },
+ "Frequency": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Interval in seconds between test runs for this WebTest. Default value is 300.",
+ "default": 300
+ },
+ "Timeout": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Seconds until this WebTest will timeout and fail. Default value is 30.",
+ "default": 30
+ },
+ "Kind": {
+ "x-ms-client-name": "WebTestKind",
+ "type": "string",
+ "description": "The kind of web test this is, valid choices are ping, multistep, basic, and standard.",
+ "default": "ping",
+ "enum": [
+ "ping",
+ "multistep",
+ "basic",
+ "standard"
+ ],
+ "x-ms-enum": {
+ "name": "WebTestKindEnum",
+ "modelAsString": false
+ }
+ },
+ "RetryEnabled": {
+ "type": "boolean",
+ "description": "Allow for retries should this WebTest fail."
+ },
+ "Locations": {
+ "type": "array",
+ "description": "A list of where to physically run the tests from to give global coverage for accessibility of your application.",
+ "items": {
+ "$ref": "#/definitions/WebTestGeolocation"
+ }
+ },
+ "Configuration": {
+ "type": "object",
+ "description": "An XML configuration specification for a WebTest.",
+ "properties": {
+ "WebTest": {
+ "type": "string",
+ "description": "The XML specification of a WebTest to run against an application."
+ }
+ }
+ },
+ "provisioningState": {
+ "type": "string",
+ "description": "Current state of this component, whether or not is has been provisioned within the resource group it is defined. Users cannot change this value but are able to read from it. Values will include Succeeded, Deploying, Canceled, and Failed.",
+ "readOnly": true
+ },
+ "Request": {
+ "type": "object",
+ "description": "The collection of request properties",
+ "properties": {
+ "RequestUrl": {
+ "type": "string",
+ "description": "Url location to test."
+ },
+ "Headers": {
+ "type": "array",
+ "description": "List of headers and their values to add to the WebTest call.",
+ "items": {
+ "$ref": "#/definitions/HeaderField"
+ }
+ },
+ "HttpVerb": {
+ "type": "string",
+ "description": "Http verb to use for this web test."
+ },
+ "RequestBody": {
+ "type": "string",
+ "description": "Base64 encoded string body to send with this web test."
+ },
+ "ParseDependentRequests": {
+ "type": "boolean",
+ "description": "Parse Dependent request for this WebTest."
+ },
+ "FollowRedirects": {
+ "type": "boolean",
+ "description": "Follow redirects for this web test."
+ }
+ }
+ },
+ "ContentValidation": {
+ "type": "object",
+ "description": "The collection of content validation properties",
+ "properties": {
+ "ContentMatch": {
+ "type": "string",
+ "description": "Content to look for in the return of the WebTest."
+ },
+ "IgnoreCase": {
+ "type": "boolean",
+ "description": "When set, this value makes the ContentMatch validation case insensitive."
+ },
+ "PassIfTextFound": {
+ "type": "boolean",
+ "description": "When true, validation will pass if there is a match for the ContentMatch string. If false, validation will fail if there is a match"
+ }
+ }
+ },
+ "SSLCheck": {
+ "type": "boolean",
+ "description": "Checks to see if the SSL cert is still valid."
+ },
+ "SSLCertRemainingLifetimeCheck": {
+ "type": "integer",
+ "format": "int32",
+ "description": "A number of days to check still remain before the the existing SSL cert expires."
+ },
+ "ExpectedHttpStatusCode": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Validate that the WebTest returns the http status code provided."
+ },
+ "IgnoreHttpsStatusCode": {
+ "type": "boolean",
+ "description": "When set, validation will ignore the status code."
+ }
+ }
+ },
+ "WebTestGeolocation": {
+ "description": "Geo-physical location to run a WebTest from. You must specify one or more locations for the test to run from.",
+ "type": "object",
+ "properties": {
+ "Id": {
+ "x-ms-client-name": "location",
+ "type": "string",
+ "description": "Location ID for the WebTest to run from."
+ }
+ }
+ },
+ "HeaderField": {
+ "description": "A header to add to the WebTest.",
+ "type": "object",
+ "properties": {
+ "key": {
+ "x-ms-client-name": "headerFieldName",
+ "type": "string",
+ "description": "The name of the header."
+ },
+ "value": {
+ "x-ms-client-name": "headerFieldValue",
+ "type": "string",
+ "description": "The value of the header."
+ }
+ }
+ },
+ "OperationsListResult": {
+ "description": "Result of the List Operations operation",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A collection of operations",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "Operation": {
+ "description": "Represents an operation returned by the GetOperations request",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the operation",
+ "type": "string"
+ },
+ "display": {
+ "$ref": "#/definitions/OperationInfo",
+ "description": "Display name of the operation"
+ },
+ "origin": {
+ "description": "Origin of the operation",
+ "type": "string"
+ },
+ "properties": {
+ "description": "Properties of the operation",
+ "type": "object",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "OperationInfo": {
+ "description": "Information about an operation",
+ "type": "object",
+ "properties": {
+ "provider": {
+ "description": "Name of the provider",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Name of the resource type",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Name of the operation",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the operation",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ComponentNameParameter": {
+ "name": "componentName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Application Insights component resource.",
+ "x-ms-parameter-location": "method"
+ },
+ "WebTestNameParameter": {
+ "name": "webTestName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Application Insights WebTest resource.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
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 5c0ad5cb963a..d1aac3e4b801 100644
--- a/specification/applicationinsights/resource-manager/readme.md
+++ b/specification/applicationinsights/resource-manager/readme.md
@@ -28,7 +28,7 @@ These are the global settings for the ApplicationInsights API.
title: ApplicationInsightsManagementClient
description: Composite Swagger for Application Insights Management Client
openapi-type: arm
-tag: package-preview-2020-06
+tag: package-preview-2020-10
```
## Suppression
@@ -103,6 +103,135 @@ 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
+
+These settings apply only when `--tag=package-preview-2020-10` is specified on the command line.
+
+```yaml $(tag) == 'package-preview-2020-10'
+input-file:
+ - Microsoft.Insights/preview/2020-10-05-preview/webTests_API.json
```
### Tag: package-preview-2020-06-only
@@ -351,4 +480,3 @@ input-file:
## AzureResourceSchema
See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-
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/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/automanage/resource-manager/readme.md b/specification/automanage/resource-manager/readme.md
index a99434672cf5..4e54a1d44f3c 100644
--- a/specification/automanage/resource-manager/readme.md
+++ b/specification/automanage/resource-manager/readme.md
@@ -18,6 +18,8 @@ To see additional help and options, run:
---
+## Configuration
+
### Basic Information
These are the global settings for the Automanage API.
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/ScaleUnit.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/ScaleUnit.json
new file mode 100644
index 000000000000..b0cd34d29890
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/ScaleUnit.json
@@ -0,0 +1,599 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "description": "Scale unit operation endpoints and objects.",
+ "title": "FabricAdminClient",
+ "version": "2020-10-01"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnits/{scaleUnit}/scaleOut": {
+ "post": {
+ "x-ms-examples": {
+ "Scales out a scale unit.": {
+ "$ref": "./examples/ScaleUnit/ScaleOut.json"
+ }
+ },
+ "tags": [
+ "ScaleUnits"
+ ],
+ "description": "Scales out a scale unit.",
+ "operationId": "ScaleUnits_ScaleOut",
+ "parameters": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ScaleUnitParameter"
+ },
+ {
+ "$ref": "#/parameters/ScaleOutScaleUnitParametersInBody"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "ACCEPTED"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnits/{scaleUnit}/setGpuPartitionSize": {
+ "post": {
+ "x-ms-examples": {
+ "Set GPU partition size.": {
+ "$ref": "./examples/ScaleUnit/SetGpuPartitionSize.json"
+ }
+ },
+ "tags": [
+ "ScaleUnits"
+ ],
+ "description": "Set GPU partition size.",
+ "operationId": "ScaleUnits_SetGPUPartitionSize",
+ "parameters": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ScaleUnitParameter"
+ },
+ {
+ "$ref": "#/parameters/GpuPartitionSizeParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "ACCEPTED"
+ },
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedErrorInfo"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnits/{scaleUnit}/createFromJson": {
+ "post": {
+ "x-ms-examples": {
+ "Add a new scale unit.": {
+ "$ref": "./examples/ScaleUnit/CreateFromJson.json"
+ }
+ },
+ "tags": [
+ "ScaleUnits"
+ ],
+ "description": "Add a new scale unit.",
+ "operationId": "ScaleUnits_CreateFromJson",
+ "parameters": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ScaleUnitParameter"
+ },
+ {
+ "$ref": "#/parameters/CreateFromJsonScaleUnitParametersInBody"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "ACCEPTED"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnits/{scaleUnit}": {
+ "get": {
+ "x-ms-examples": {
+ "Returns the requested scale unit": {
+ "$ref": "./examples/ScaleUnit/Get.json"
+ }
+ },
+ "tags": [
+ "ScaleUnits"
+ ],
+ "description": "Returns the requested scale unit.",
+ "operationId": "ScaleUnits_Get",
+ "parameters": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ScaleUnitParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ScaleUnit"
+ }
+ },
+ "404": {
+ "description": "NOT FOUND"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnits": {
+ "get": {
+ "x-ms-examples": {
+ "Returns a list of all scale units at a location.": {
+ "$ref": "./examples/ScaleUnit/List.json"
+ }
+ },
+ "tags": [
+ "ScaleUnits"
+ ],
+ "description": "Returns a list of all scale units at a location.",
+ "operationId": "ScaleUnits_List",
+ "parameters": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/FilterParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ScaleUnitList"
+ }
+ },
+ "404": {
+ "description": "NOT FOUND"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "#/definitions/ScaleUnit"
+ }
+ }
+ },
+ "definitions": {
+ "ScaleUnitCapacity": {
+ "description": "The capacity information for a physical machine.",
+ "type": "object",
+ "properties": {
+ "memoryGB": {
+ "description": "The memory for the physical machine.",
+ "type": "number",
+ "format": "float"
+ },
+ "cores": {
+ "description": "The number of CPU cores for the physical machine.",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "ScaleUnit": {
+ "description": "Represents a cluster. Generally, the cluster will be a collection of hosts backed by failover cluster manager.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "Properties of a scale unit.",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ScaleUnitModel"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/definitions/Resource"
+ }
+ ]
+ },
+ "ScaleUnitModel": {
+ "description": "Properties of a scale unit.",
+ "type": "object",
+ "properties": {
+ "scaleUnitType": {
+ "description": "Type of cluster.",
+ "enum": [
+ "Unknown",
+ "ComputeOnly",
+ "StorageOnly",
+ "HyperConverged"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "ScaleUnitType"
+ }
+ },
+ "logicalFaultDomain": {
+ "description": "Fault domain name of the cluster.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "nodes": {
+ "description": "List of nodes in the server.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "state": {
+ "description": "Current state of the cluster.",
+ "enum": [
+ "Unknown",
+ "Creating",
+ "Running",
+ "Upgrading",
+ "Deleting"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "ScaleUnitState"
+ }
+ },
+ "model": {
+ "description": "Model of the servers in the cluster.",
+ "type": "string"
+ },
+ "totalCapacity": {
+ "description": "Capacity information for the cluster.",
+ "$ref": "#/definitions/ScaleUnitCapacity"
+ },
+ "isMultiNode": {
+ "description": "Denotes if more than one node in cluster.",
+ "type": "boolean"
+ },
+ "isGpuAvailable": {
+ "description": "Denotes if GPU resource is available in the cluster.",
+ "type": "boolean"
+ },
+ "gpuPartitionSize": {
+ "description": "GPU partition size.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "gpuType": {
+ "description": "Type of GPU.",
+ "enum": [
+ "GPUP",
+ "DDA",
+ "None"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "GpuType"
+ }
+ }
+ }
+ },
+ "ScaleUnitList": {
+ "description": "A pageable list of scale units.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of scale units.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ScaleUnit"
+ }
+ },
+ "nextLink": {
+ "description": "URI to the next page.",
+ "type": "string"
+ }
+ }
+ },
+ "SetGpuPartitionSizeParameter": {
+ "description": "Input data for setting GPU partitions.",
+ "type": "object",
+ "properties": {
+ "gpuPartitionSize": {
+ "x-ms-client-name": "GpuPartitionSize",
+ "description": "Number of GPU partitions",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "ScaleOutScaleUnitParameters": {
+ "description": "Input data that allows for adding a scale unit node.",
+ "type": "object",
+ "properties": {
+ "bmcIpv4Address": {
+ "x-ms-client-name": "BMCIPv4Address",
+ "description": "BMC address of the physical machine.",
+ "type": "string"
+ },
+ "computerName": {
+ "description": "Computer name of the physical machine.",
+ "type": "string"
+ }
+ }
+ },
+ "ScaleOutScaleUnitParametersList": {
+ "description": "A list of input data that allows for adding a set of scale unit nodes.",
+ "type": "object",
+ "properties": {
+ "nodeList": {
+ "description": "List of nodes in the scale unit.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ScaleOutScaleUnitParameters"
+ }
+ },
+ "awaitStorageConvergence": {
+ "description": "Flag indicates if the operation should wait for storage to converge before returning.",
+ "type": "boolean"
+ }
+ }
+ },
+ "NetworkDefinitionParameter": {
+ "description": "A definition of the network received from a new cluster operation.",
+ "type": "object",
+ "properties": {
+ "subnet": {
+ "description": "The subnet IP mask in the example format 10.0.0.0/25.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "vlanId": {
+ "description": "The Vlan ID of the subnet.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "DeploymentJsonPhysicalNodeParameters": {
+ "description": "Description of a bare metal node used for scale unit scale out operations.",
+ "type": "object",
+ "properties": {
+ "bmcIpAddress": {
+ "x-ms-client-name": "BMCIPAddress",
+ "description": "BMC address of the physical machine.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Computer name of the physical machine.",
+ "type": "string"
+ }
+ }
+ },
+ "CreateFromJsonScaleUnitParametersList": {
+ "description": "A list of input data that allows for creating the new scale unit.",
+ "type": "object",
+ "properties": {
+ "clusterName": {
+ "description": "Cluster name for the new scale unit.",
+ "type": "string"
+ },
+ "physicalNodes": {
+ "description": "List of nodes in the scale unit.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeploymentJsonPhysicalNodeParameters"
+ }
+ },
+ "torSwitchBgpAsn": {
+ "description": "The ASN for the cluster's rack TOR.",
+ "type": "string"
+ },
+ "softwareBgpAsn": {
+ "description": "The software ASN for the cluster's rack.",
+ "type": "string"
+ },
+ "torSwitchBgpPeerIp": {
+ "description": "The list of IP addresses used for TOR communication.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "infrastructureNetwork": {
+ "description": "The information associated with the infrastructure network that will be subdivided into subnets.",
+ "$ref": "#/definitions/NetworkDefinitionParameter"
+ },
+ "storageNetwork": {
+ "description": "The information associated with the storage network that will be subdivided into subnets.",
+ "$ref": "#/definitions/NetworkDefinitionParameter"
+ },
+ "netQosPriority": {
+ "description": "The network QOS priority setting.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "ExtendedErrorInfo": {
+ "type": "object",
+ "description": "Error response.",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/ErrorDefinition",
+ "description": "The error details."
+ }
+ }
+ },
+ "ErrorDefinition": {
+ "type": "object",
+ "description": "Error definition.",
+ "properties": {
+ "code": {
+ "description": "Service specific error code which serves as the substatus for the HTTP error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Description of the error.",
+ "type": "string",
+ "readOnly": true
+ },
+ "details": {
+ "description": "Internal error details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDefinition"
+ },
+ "readOnly": true
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "description": "Client API Version.",
+ "required": true,
+ "type": "string",
+ "default": "2020-10-01"
+ },
+ "ScaleUnitParameter": {
+ "name": "scaleUnit",
+ "description": "Name of the scale units.",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "GpuPartitionSizeParameter": {
+ "name": "gpuPartitionSizeParameters",
+ "description": "Number of GPU partitions.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SetGpuPartitionSizeParameter"
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "ScaleOutScaleUnitParametersInBody": {
+ "name": "scaleUnitNodeParameters",
+ "description": "A list of input data that allows for adding a set of scale unit nodes.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ScaleOutScaleUnitParametersList"
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "CreateFromJsonScaleUnitParametersInBody": {
+ "name": "creationData",
+ "description": "A list of input data that allows for creating the new scale unit.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CreateFromJsonScaleUnitParametersList"
+ },
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Authorization uses an Azure Active Directory OAuth2 flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/ScaleUnitNode.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/ScaleUnitNode.json
new file mode 100644
index 000000000000..3c8918b40b98
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/ScaleUnitNode.json
@@ -0,0 +1,588 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "description": "Scale unit node operation endpoints and objects.",
+ "title": "FabricAdminClient",
+ "version": "2020-10-01"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnitNodes/{scaleUnitNode}/Shutdown": {
+ "post": {
+ "x-ms-examples": {
+ "Shutdown a scale unit node.": {
+ "$ref": "./examples/ScaleUnitNode/Shutdown.json"
+ }
+ },
+ "tags": [
+ "ScaleUnitNodes"
+ ],
+ "description": "Shutdown a scale unit node.",
+ "operationId": "ScaleUnitNodes_Shutdown",
+ "parameters": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ScaleUnitNodeParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "ACCEPTED"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnitNodes/{scaleUnitNode}/PowerOff": {
+ "post": {
+ "x-ms-examples": {
+ "Power off a scale unit node.": {
+ "$ref": "./examples/ScaleUnitNode/PowerOff.json"
+ }
+ },
+ "tags": [
+ "ScaleUnitNodes"
+ ],
+ "description": "Power off a scale unit node.",
+ "operationId": "ScaleUnitNodes_PowerOff",
+ "parameters": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ScaleUnitNodeParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "ACCEPTED"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnitNodes/{scaleUnitNode}/PowerOn": {
+ "post": {
+ "x-ms-examples": {
+ "Power on a scale unit node.": {
+ "$ref": "./examples/ScaleUnitNode/PowerOn.json"
+ }
+ },
+ "tags": [
+ "ScaleUnitNodes"
+ ],
+ "description": "Power on a scale unit node.",
+ "operationId": "ScaleUnitNodes_PowerOn",
+ "parameters": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ScaleUnitNodeParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "ACCEPTED"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnitNodes/{scaleUnitNode}/StartMaintenanceMode": {
+ "post": {
+ "x-ms-examples": {
+ "Start maintenance mode on a scale unit node.": {
+ "$ref": "./examples/ScaleUnitNode/StartMaintenanceMode.json"
+ }
+ },
+ "tags": [
+ "ScaleUnitNodes"
+ ],
+ "description": "Start maintenance mode for a scale unit node.",
+ "operationId": "ScaleUnitNodes_StartMaintenanceMode",
+ "parameters": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ScaleUnitNodeParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "ACCEPTED"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnitNodes/{scaleUnitNode}/StopMaintenanceMode": {
+ "post": {
+ "x-ms-examples": {
+ "Stop maintenance mode on a scale unit node.": {
+ "$ref": "./examples/ScaleUnitNode/StopMaintenanceMode.json"
+ }
+ },
+ "tags": [
+ "ScaleUnitNodes"
+ ],
+ "description": "Stop maintenance mode for a scale unit node.",
+ "operationId": "ScaleUnitNodes_StopMaintenanceMode",
+ "parameters": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ScaleUnitNodeParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "ACCEPTED"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnitNodes/{scaleUnitNode}/Repair": {
+ "post": {
+ "x-ms-examples": {
+ "Repairs a node of the cluster.": {
+ "$ref": "./examples/ScaleUnitNode/Repair.json"
+ }
+ },
+ "tags": [
+ "ScaleUnitNodes"
+ ],
+ "description": "Repairs a node of the cluster.",
+ "operationId": "ScaleUnitNodes_Repair",
+ "parameters": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ScaleUnitNodeParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/BareMetalNodeParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "ACCEPTED"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnitNodes/{scaleUnitNode}": {
+ "get": {
+ "x-ms-examples": {
+ "Return the requested scale unit node.": {
+ "$ref": "./examples/ScaleUnitNode/Get.json"
+ }
+ },
+ "tags": [
+ "ScaleUnitNodes"
+ ],
+ "description": "Return the requested scale unit node.",
+ "operationId": "ScaleUnitNodes_Get",
+ "parameters": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ScaleUnitNodeParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ScaleUnitNode"
+ }
+ },
+ "404": {
+ "description": "NOT FOUND"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Fabric.Admin/fabricLocations/{location}/scaleUnitNodes": {
+ "get": {
+ "x-ms-examples": {
+ "List all scale unit node": {
+ "$ref": "./examples/ScaleUnitNode/List.json"
+ }
+ },
+ "tags": [
+ "ScaleUnitNodes"
+ ],
+ "description": "Returns a list of all scale unit nodes in a location.",
+ "operationId": "ScaleUnitNodes_List",
+ "parameters": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Fabric.json#/parameters/FilterParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ScaleUnitNodeList"
+ }
+ },
+ "404": {
+ "description": "NOT FOUND"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "#/definitions/ScaleUnitNode"
+ }
+ }
+ },
+ "definitions": {
+ "BareMetalNodeDescription": {
+ "description": "Description of a bare metal node used for ScaleOut operation on a cluster.",
+ "type": "object",
+ "properties": {
+ "bmcIpv4Address": {
+ "x-ms-client-name": "BMCIPv4Address",
+ "description": "BMC address of the physical machine.",
+ "type": "string"
+ },
+ "vendor": {
+ "description": "Vendor of the physical machine.",
+ "type": "string"
+ },
+ "model": {
+ "description": "Model of the physical machine.",
+ "type": "string"
+ },
+ "serialNumber": {
+ "description": "Serial number of the physical machine.",
+ "type": "string"
+ },
+ "biosVersion": {
+ "description": "Bios version of the physical machine.",
+ "type": "string"
+ },
+ "computerName": {
+ "description": "Name of the computer.",
+ "type": "string"
+ },
+ "clusterName": {
+ "description": "Name of the cluster.",
+ "type": "string"
+ },
+ "macAddress": {
+ "description": "Name of the MAC address of the bare metal node.",
+ "type": "string"
+ }
+ }
+ },
+ "ScaleUnitNode": {
+ "description": "The physical server in a cluster.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "Holds all properties related to a scale unit node.",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ScaleUnitNodeModel"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../2016-05-01/Fabric.json#/definitions/Resource"
+ }
+ ]
+ },
+ "ScaleUnitNodeModel": {
+ "description": "Holds all properties related to a scale unit node.",
+ "type": "object",
+ "properties": {
+ "scaleUnitNodeStatus": {
+ "description": "Status of the physical machine.",
+ "enum": [
+ "Running",
+ "Maintenance",
+ "Stopped"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "ScaleUnitNodeStatus"
+ }
+ },
+ "powerState": {
+ "description": "PowerState of the physical machine.",
+ "enum": [
+ "Stopped",
+ "Starting",
+ "Running",
+ "Stopping"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "PowerState"
+ }
+ },
+ "bmcAddress": {
+ "description": "BMC address of the physical machine.",
+ "type": "string"
+ },
+ "scaleUnitName": {
+ "description": "Cluster name of the physical machine.",
+ "type": "string"
+ },
+ "scaleUnitUri": {
+ "description": "URI of the corresponding cluster.",
+ "type": "string"
+ },
+ "canPowerOff": {
+ "description": "Value indicating whether the node can be powered off.",
+ "type": "boolean"
+ },
+ "vendor": {
+ "description": "Vendor of the physical machine.",
+ "type": "string"
+ },
+ "model": {
+ "description": "Model of the physical machine.",
+ "type": "string"
+ },
+ "serialNumber": {
+ "description": "Serial number of the physical machine.",
+ "type": "string"
+ },
+ "biosVersion": {
+ "description": "BIOS version of the physical machine.",
+ "type": "string"
+ },
+ "capacity": {
+ "description": "Capacity of the physical machine.",
+ "$ref": "ScaleUnit.json#/definitions/ScaleUnitCapacity"
+ },
+ "gpus": {
+ "description": "GPU resource list of the physical machine.",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "$ref": "#/definitions/GpuModel"
+ }
+ }
+ }
+ },
+ "GpuModel": {
+ "description": "The GPU information on the physical machine.",
+ "type": "object",
+ "properties": {
+ "hostDriverVersion": {
+ "description": "GPU host driver version.",
+ "type": "string"
+ },
+ "name": {
+ "description": "GPU name.",
+ "type": "string"
+ },
+ "partitionSize": {
+ "description": "GPU partition size.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "slotLocation": {
+ "description": "GPU slot location.",
+ "type": "string"
+ },
+ "oem": {
+ "description": "GPU OEM information",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of GPU.",
+ "enum": [
+ "GPUP",
+ "DDA",
+ "None"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "GpuType"
+ }
+ }
+ }
+ },
+ "ScaleUnitNodeList": {
+ "description": "A pageable list of scale unit nodes.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of scale unit nodes.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ScaleUnitNode"
+ }
+ },
+ "nextLink": {
+ "description": "The URI to the next page.",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "description": "Client API Version.",
+ "required": true,
+ "type": "string",
+ "default": "2020-10-01"
+ },
+ "ScaleUnitNodeParameter": {
+ "name": "scaleUnitNode",
+ "description": "Name of the scale unit node.",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "BareMetalNodeParameter": {
+ "name": "bareMetalNode",
+ "description": "Description of a node.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BareMetalNodeDescription"
+ },
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Authorization uses an Azure Active Directory OAuth2 flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/CreateFromJson.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/CreateFromJson.json
new file mode 100644
index 000000000000..3fabf00b0637
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/CreateFromJson.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "resourceGroupName": "System.local",
+ "location": "local",
+ "scaleUnit": "cluster",
+ "creationData": {
+ "clusterName": "cluster",
+ "physicalNodes": [
+ {
+ "bmcIpAddress": "192.0.0.1",
+ "name": "machine"
+ }
+ ],
+ "torSwitchBgpAsn": "64703",
+ "softwareBgpAsn": "64703",
+ "torSwitchBgpPeerIp": [
+ "10.0.0.1"
+ ],
+ "infrastructureNetwork": {
+ "subnet": [
+ "10.0.0.1/24"
+ ],
+ "vlanId": [
+ "0"
+ ]
+ },
+ "storageNetwork": {
+ "subnet": [
+ "10.0.0.1/24"
+ ],
+ "vlanId": [
+ "0"
+ ]
+ },
+ "netQosPriority": 1
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/Get.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/Get.json
new file mode 100644
index 000000000000..f756a3cd1e0f
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/Get.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "resourceGroupName": "System.local",
+ "location": "local",
+ "scaleUnit": "S-Cluster"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/23a94a7f-64b3-42d8-807c-733284339015/resourceGroups/System.local/providers/Microsoft.Fabric.Admin/fabricLocations/local/scaleUnits/S-Cluster",
+ "name": "S-Cluster",
+ "type": "Microsoft.Fabric.Admin/fabricLocations/scaleUnits",
+ "location": "local",
+ "tags": {},
+ "properties": {
+ "isGpuAvailable": true,
+ "gpuType": "DDA",
+ "gpuPartitionSize": 8,
+ "scaleUnitType": "HyperConverged",
+ "logicalFaultDomain": 0,
+ "nodes": [
+ "/subscriptions/23a94a7f-64b3-42d8-807c-733284339015/resourceGroups/system.local/providers/Microsoft.Fabric.Admin/fabricLocations/local/scaleUnitNodes/HC1u15a2437"
+ ],
+ "state": "Running",
+ "totalCapacity": {
+ "memoryGB": 511.8877,
+ "cores": 32
+ },
+ "isMultiNode": false
+ }
+ }
+ },
+ "404": {}
+ }
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/List.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/List.json
new file mode 100644
index 000000000000..15d5eb427db8
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/List.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "resourceGroupName": "System.local",
+ "location": "local"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/23a94a7f-64b3-42d8-807c-733284339015/resourceGroups/System.local/providers/Microsoft.Fabric.Admin/fabricLocations/local/scaleUnits/S-Cluster",
+ "name": "S-Cluster",
+ "type": "Microsoft.Fabric.Admin/fabricLocations/scaleUnits",
+ "location": "local",
+ "tags": {},
+ "properties": {
+ "isGpuAvailable": true,
+ "gpuType": "GPUP",
+ "gpuPartitionSize": 8,
+ "scaleUnitType": "HyperConverged",
+ "logicalFaultDomain": 0,
+ "nodes": [
+ "/subscriptions/23a94a7f-64b3-42d8-807c-733284339015/resourceGroups/system.local/providers/Microsoft.Fabric.Admin/fabricLocations/local/scaleUnitNodes/HC1u15a2437"
+ ],
+ "state": "Running",
+ "totalCapacity": {
+ "memoryGB": 511.8877,
+ "cores": 32
+ },
+ "isMultiNode": false
+ }
+ }
+ ]
+ }
+ },
+ "404": {}
+ }
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/ScaleOut.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/ScaleOut.json
new file mode 100644
index 000000000000..f422cfcb0a53
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/ScaleOut.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "resourceGroupName": "System.local",
+ "location": "local",
+ "scaleUnit": "S-Cluster",
+ "scaleUnitNodeParameters": {
+ "nodeList": [
+ {
+ "bmcIpv4Address": "192.0.0.1",
+ "computerName": "N1S2"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/SetGpuPartitionSize.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/SetGpuPartitionSize.json
new file mode 100644
index 000000000000..c4d5ca48f9c2
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnit/SetGpuPartitionSize.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "resourceGroupName": "System.local",
+ "location": "local",
+ "scaleUnit": "S-Cluster",
+ "gpuPartitionSizeParameters": {
+ "gpuPartitionSize": 4
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/Get.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/Get.json
new file mode 100644
index 000000000000..6dc22b8439e4
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/Get.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "resourceGroupName": "System.local",
+ "location": "local",
+ "scaleUnitNode": "N1S2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/System.local/providers/Microsoft.Fabric.Admin/fabricLocations/local/scaleUnitNodes/N1S2",
+ "name": "N1S2",
+ "type": "Microsoft.Fabric.Admin/fabricLocations/scaleUnitNodes",
+ "location": "local",
+ "tags": {},
+ "properties": {
+ "scaleUnitNodeStatus": "Running",
+ "powerState": "Running",
+ "scaleUnitName": "S-Cluster",
+ "scaleUnitUri": "/fabricLocations/local/scaleUnits/S-Cluster",
+ "canPowerOff": false,
+ "capacity": {
+ "memoryGB": 255.875,
+ "cores": 56
+ },
+ "gpus": [
+ {
+ "slotLocation": "PCI bus 59, device 0, function 0, UINumber 1",
+ "oem": "Nvidia",
+ "name": "Nvidia Tesla P40",
+ "type": "DDA",
+ "partitionSize": 8,
+ "hostDriverVersion": "12.34.5698.90"
+ }
+ ]
+ }
+ }
+ },
+ "404": {}
+ }
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/List.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/List.json
new file mode 100644
index 000000000000..2e5480c3c458
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/List.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "resourceGroupName": "System.local",
+ "location": "local"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/System.local/providers/Microsoft.Fabric.Admin/fabricLocations/local/scaleUnitNodes/N1S2",
+ "name": "N1S2",
+ "type": "Microsoft.Fabric.Admin/fabricLocations/scaleUnitNodes",
+ "location": "local",
+ "tags": {},
+ "properties": {
+ "scaleUnitNodeStatus": "Running",
+ "powerState": "Running",
+ "scaleUnitName": "S-Cluster",
+ "scaleUnitUri": "/fabricLocations/local/scaleUnits/S-Cluster",
+ "canPowerOff": false,
+ "capacity": {
+ "memoryGB": 255.875,
+ "cores": 56
+ },
+ "gpus": [
+ {
+ "slotLocation": "PCI bus 59, device 0, function 0, UINumber 1",
+ "oem": "Nvidia",
+ "name": "Nvidia Tesla P40",
+ "type": "DDA",
+ "partitionSize": 8,
+ "hostDriverVersion": "12.34.5698.90"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ "404": {}
+ }
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/PowerOff.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/PowerOff.json
new file mode 100644
index 000000000000..c729fdcfc69e
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/PowerOff.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "resourceGroupName": "System.local",
+ "location": "local",
+ "scaleUnitNode": "N1S2"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/PowerOn.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/PowerOn.json
new file mode 100644
index 000000000000..c729fdcfc69e
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/PowerOn.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "resourceGroupName": "System.local",
+ "location": "local",
+ "scaleUnitNode": "N1S2"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/Repair.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/Repair.json
new file mode 100644
index 000000000000..bd3d5e31bbb5
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/Repair.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "resourceGroupName": "System.local",
+ "location": "local",
+ "scaleUnitNode": "N1S2",
+ "bareMetalNode": {
+ "bmcIpv4Address": "192.168.1.1",
+ "vendor": "Commodore",
+ "model": "64",
+ "serialNumber": "123456789",
+ "biosVersion": "0.0.1",
+ "computerName": "Gibson",
+ "clusterName": "T-Cluster",
+ "macAddress": "00-14-22-01-23-45"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/Shutdown.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/Shutdown.json
new file mode 100644
index 000000000000..c729fdcfc69e
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/Shutdown.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "resourceGroupName": "System.local",
+ "location": "local",
+ "scaleUnitNode": "N1S2"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/StartMaintenanceMode.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/StartMaintenanceMode.json
new file mode 100644
index 000000000000..c729fdcfc69e
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/StartMaintenanceMode.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "resourceGroupName": "System.local",
+ "location": "local",
+ "scaleUnitNode": "N1S2"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/StopMaintenanceMode.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/StopMaintenanceMode.json
new file mode 100644
index 000000000000..c729fdcfc69e
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2020-10-01/examples/ScaleUnitNode/StopMaintenanceMode.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "resourceGroupName": "System.local",
+ "location": "local",
+ "scaleUnitNode": "N1S2"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/azsadmin/resource-manager/fabric/readme.azsautogen.md b/specification/azsadmin/resource-manager/fabric/readme.azsautogen.md
index 351a32ded328..1f4ce0188bd8 100644
--- a/specification/azsadmin/resource-manager/fabric/readme.azsautogen.md
+++ b/specification/azsadmin/resource-manager/fabric/readme.azsautogen.md
@@ -51,6 +51,8 @@ input-file:
- $(this-folder)/Microsoft.Fabric.Admin/preview/2019-05-01/Drive.json
- $(this-folder)/Microsoft.Fabric.Admin/preview/2019-05-01/Volume.json
- $(this-folder)/Microsoft.Fabric.Admin/preview/2019-05-01/NasCluster.json"
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2020-10-01/ScaleUnit.json"
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2020-10-01/ScaleUnitNode.json"
```
---
diff --git a/specification/azsadmin/resource-manager/fabric/readme.md b/specification/azsadmin/resource-manager/fabric/readme.md
index 742e9b9ab447..238e9584cb6d 100644
--- a/specification/azsadmin/resource-manager/fabric/readme.md
+++ b/specification/azsadmin/resource-manager/fabric/readme.md
@@ -107,14 +107,14 @@ input-file:
- "Microsoft.Fabric.Admin/preview/2016-05-01/LogicalSubnet.json"
- "Microsoft.Fabric.Admin/preview/2016-05-01/MacAddressPool.json"
- "Microsoft.Fabric.Admin/preview/2016-05-01/NetworkOperationResults.json"
- - "Microsoft.Fabric.Admin/preview/2016-05-01/ScaleUnit.json"
- - "Microsoft.Fabric.Admin/preview/2016-05-01/ScaleUnitNode.json"
- "Microsoft.Fabric.Admin/preview/2016-05-01/SlbMuxInstance.json"
- "Microsoft.Fabric.Admin/preview/2016-05-01/StorageOperationResults.json"
- "Microsoft.Fabric.Admin/preview/2018-10-01/StorageSubSystem.json"
- "Microsoft.Fabric.Admin/preview/2019-05-01/Drive.json"
- "Microsoft.Fabric.Admin/preview/2019-05-01/Volume.json"
- "Microsoft.Fabric.Admin/preview/2019-05-01/NasCluster.json"
+ - "Microsoft.Fabric.Admin/preview/2020-10-01/ScaleUnit.json"
+ - "Microsoft.Fabric.Admin/preview/2020-10-01/ScaleUnitNode.json"
```
## Suppression
@@ -187,6 +187,8 @@ input-file:
- $(this-folder)/Microsoft.Fabric.Admin/preview/2019-05-01/Drive.json
- $(this-folder)/Microsoft.Fabric.Admin/preview/2019-05-01/Volume.json
- $(this-folder)/Microsoft.Fabric.Admin/preview/2019-05-01/NasCluster.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2020-10-01/ScaleUnit.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2020-10-01/ScaleUnitNode.json
```
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/azure-kusto/resource-manager/readme.go.md b/specification/azure-kusto/resource-manager/readme.go.md
index ed01044bbc85..53a36056359e 100644
--- a/specification/azure-kusto/resource-manager/readme.go.md
+++ b/specification/azure-kusto/resource-manager/readme.go.md
@@ -13,6 +13,7 @@ go:
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-2020-09-18
- tag: package-2018-09-07-preview
- tag: package-2019-01-21
- tag: package-2019-05-15
@@ -22,6 +23,15 @@ batch:
- tag: package-2020-06-14
```
+### Tag: package-2020-09-18 and go
+
+These settings apply only when `--tag=package-2020-09-18 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-09-18' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-09-18/$(namespace)
+```
+
### Tag: package-2018-09-07-preview and go
These settings apply only when `--tag=package-2018-09-07-preview --go` is specified on the command line.
diff --git a/specification/azure-kusto/resource-manager/readme.java.md b/specification/azure-kusto/resource-manager/readme.java.md
index aad8458d0f18..5e32600d1a18 100644
--- a/specification/azure-kusto/resource-manager/readme.java.md
+++ b/specification/azure-kusto/resource-manager/readme.java.md
@@ -18,7 +18,8 @@ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-kusto
batch:
- tag: package-2019-11-09
- tag: package-2020-02-15
- - tag: package-2020-06-14
+ - tag: package-2020-06-14
+ - tag: package-2020-09
```
### Tag: package-2018-09-07-preview and java
@@ -110,4 +111,17 @@ java:
output-folder: $(azure-libraries-for-java-folder)/sdk/kusto/mgmt-v2020_06_14
regenerate-manager: true
generate-interface: true
+```
+
+### Tag: package-2020-09 and java
+
+These settings apply only when `--tag=package-2020-09 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2020-09' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.kusto.v2020_09_18
+ output-folder: $(azure-libraries-for-java-folder)/sdk/kusto/mgmt-v2020_09_18
+regenerate-manager: true
+generate-interface: true
```
\ No newline at end of file
diff --git a/specification/azurestackhci/resource-manager/readme.go.md b/specification/azurestackhci/resource-manager/readme.go.md
index fddd0e002a49..6d7b9a0233d3 100644
--- a/specification/azurestackhci/resource-manager/readme.go.md
+++ b/specification/azurestackhci/resource-manager/readme.go.md
@@ -12,9 +12,20 @@ go:
```yaml $(go) && $(multiapi)
batch:
+ - tag: package-2020-10
- tag: package-2020-03-01-preview
```
+### Tag: package-2020-10 and go
+
+These settings apply only when `--tag=package-2020-10 --go` is specified on the command line.
+Please also specify `--go-sdks-folder=`.
+
+```yaml $(tag) == 'package-2020-10' && $(go)
+namespace: azurestackhci
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-10-01/$(namespace)
+```
+
### 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/azurestackhci/resource-manager/readme.java.md b/specification/azurestackhci/resource-manager/readme.java.md
new file mode 100644
index 000000000000..bf96908f4e24
--- /dev/null
+++ b/specification/azurestackhci/resource-manager/readme.java.md
@@ -0,0 +1,36 @@
+## 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.azurestackhci
+license-header: MICROSOFT_MIT_NO_CODEGEN
+payload-flattening-threshold: 1
+output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-azurestackhci
+```
+
+# Validation
+
+
+### Java multi-api
+
+``` yaml $(java) && $(multiapi)
+batch:
+ - tag: package-2020-10
+```
+
+### 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.azurestackhci.v2020_10_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/azurestackhci/mgmt-v2020_10_01
+regenerate-manager: true
+generate-interface: true
+```
diff --git a/specification/azurestackhci/resource-manager/readme.md b/specification/azurestackhci/resource-manager/readme.md
index 616dfed3ca60..64b34d2f9f98 100644
--- a/specification/azurestackhci/resource-manager/readme.md
+++ b/specification/azurestackhci/resource-manager/readme.md
@@ -85,6 +85,10 @@ swagger-to-sdk:
See configuration in [readme.go.md](./readme.go.md)
+## Java
+
+See configuration in [readme.java.md](./readme.java.md)
+
## Python
See configuration in [readme.python.md](./readme.python.md)
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/Microsoft.Billing/preview/2019-10-01-preview/billing.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/billing.json
index 2f6b7a0b47ad..f9c58116ddc2 100644
--- a/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/billing.json
+++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/billing.json
@@ -766,7 +766,7 @@
"Customers"
],
"x-ms-examples": {
- "CustomersListByBillingAccount": {
+ "CustomersListByBillingProfile": {
"$ref": "./examples/CustomersListByBillingProfile.json"
}
},
@@ -1691,16 +1691,16 @@
"Invoices"
],
"x-ms-examples": {
- "InvoiceDownload": {
+ "EAInvoiceDownload": {
"$ref": "./examples/MultipleInvoiceDownload.json"
}
},
- "operationId": "Invoices_DownloadMultipleEAInvoice",
+ "operationId": "Invoices_DownloadMultipleEAInvoices",
"x-ms-long-running-operation": true,
"x-ms-long-running-operation-options": {
"final-state-via": "location"
},
- "description": "Gets a URL to download an multiple invoices documents (invoice pdf, tax receipts, credit notes) as a zip file.",
+ "description": "Gets a URL to download multiple invoice documents (invoice pdf, tax receipts, credit notes) as a zip file.",
"externalDocs": {
"url": "https://docs.microsoft.com/en-us/rest/api/billing/"
},
@@ -1802,12 +1802,12 @@
"$ref": "./examples/MultipleBillingSubscriptionInvoiceDownload.json"
}
},
- "operationId": "Invoices_DownloadMultipleBillingSubscriptionInvoice",
+ "operationId": "Invoices_DownloadMultipleBillingSubscriptionInvoices",
"x-ms-long-running-operation": true,
"x-ms-long-running-operation-options": {
"final-state-via": "location"
},
- "description": "Gets a URL to download multiple invoices documents (invoice pdf, tax receipts, credit notes) as a zip file.",
+ "description": "Gets a URL to download multiple invoice documents (invoice pdf, tax receipts, credit notes) as a zip file.",
"externalDocs": {
"url": "https://docs.microsoft.com/en-us/rest/api/billing/"
},
@@ -2042,16 +2042,16 @@
"Invoices"
],
"x-ms-examples": {
- "ModernInvoiceDownload": {
+ "BillingProfileInvoiceDownload": {
"$ref": "./examples/MultipleModernInvoiceDownload.json"
}
},
- "operationId": "Invoices_DownloadMultipleModernInvoice",
+ "operationId": "Invoices_DownloadMultipleBillingProfileInvoices",
"x-ms-long-running-operation": true,
"x-ms-long-running-operation-options": {
"final-state-via": "location"
},
- "description": "Gets a URL to download multiple invoices documents (invoice pdf, tax receipts, credit notes) as a zip file.",
+ "description": "Gets a URL to download multiple invoice documents (invoice pdf, tax receipts, credit notes) as a zip file.",
"externalDocs": {
"url": "https://docs.microsoft.com/en-us/rest/api/billing/"
},
diff --git a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/billing.json b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/billing.json
index 65048a244a9f..ede1bac4407f 100644
--- a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/billing.json
+++ b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/billing.json
@@ -607,7 +607,7 @@
"Customers"
],
"x-ms-examples": {
- "CustomersListByBillingAccount": {
+ "CustomersListByBillingProfile": {
"$ref": "./examples/CustomersListByBillingProfile.json"
}
},
@@ -1339,16 +1339,16 @@
"Invoices"
],
"x-ms-examples": {
- "InvoiceDownload": {
+ "BillingProfileInvoiceDownload": {
"$ref": "./examples/MultipleModernInvoiceDownload.json"
}
},
- "operationId": "Invoices_DownloadMultipleModernInvoice",
+ "operationId": "Invoices_DownloadMultipleBillingProfileInvoices",
"x-ms-long-running-operation": true,
"x-ms-long-running-operation-options": {
"final-state-via": "location"
},
- "description": "Gets a URL to download an multiple invoices documents (invoice pdf, tax receipts, credit notes) as a zip file. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement.",
+ "description": "Gets a URL to download multiple invoice documents (invoice pdf, tax receipts, credit notes) as a zip file. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement.",
"externalDocs": {
"url": "https://docs.microsoft.com/en-us/rest/api/billing/"
},
@@ -1617,12 +1617,12 @@
"$ref": "./examples/MultipleBillingSubscriptionInvoiceDownload.json"
}
},
- "operationId": "Invoices_DownloadMultipleBillingSubscriptionInvoice",
+ "operationId": "Invoices_DownloadMultipleBillingSubscriptionInvoices",
"x-ms-long-running-operation": true,
"x-ms-long-running-operation-options": {
"final-state-via": "location"
},
- "description": "Gets a URL to download multiple invoices documents (invoice pdf, tax receipts, credit notes) as a zip file.",
+ "description": "Gets a URL to download multiple invoice documents (invoice pdf, tax receipts, credit notes) as a zip file.",
"externalDocs": {
"url": "https://docs.microsoft.com/en-us/rest/api/billing/"
},
diff --git a/specification/billing/resource-manager/readme.az.md b/specification/billing/resource-manager/readme.az.md
new file mode 100644
index 000000000000..5b72c1e2e0af
--- /dev/null
+++ b/specification/billing/resource-manager/readme.az.md
@@ -0,0 +1,299 @@
+## AZ
+These settings apply only when `--az` is specified on the command line.
+``` yaml $(az) && $(target-mode) != 'core'
+az:
+ extensions: billing
+ namespace: azure.mgmt.billing
+ package-name: azure-mgmt-billing
+az-output-folder: $(azure-cli-extension-folder)/src/billing
+python-sdk-output-folder: "$(az-output-folder)/azext_billing/vendored_sdks/billing"
+#cli:
+# cli-directive:
+# - where:
+# group: MachineLearningCompute
+# op: CreateOrUpdate
+# param: properties
+# poly-resource: true
+```
+``` yaml $(az) && $(target-mode) == 'core'
+az:
+ extensions: billing
+ namespace: azure.mgmt.billing
+ package-name: azure-mgmt-billing
+az-output-folder: $(azure-cli-folder)/src/azure-cli/azure/cli/command_modules/billing
+python-sdk-output-folder: "$(az-output-folder)/vendored_sdks/billing"
+```
+
+# Az.Billing
+This directory contains the Cli common model for the Billing service.
+
+> Metadata
+``` yaml
+# Migrated from Powershell's readme
+
+extension-mode: stable
+
+directive:
+ - where:
+ group: billing invoice-section
+ set:
+ group: billing invoice section
+
+cli:
+ cli-directive:
+# -------- DO NOT generate those command groups --------
+ - select: 'operationGroup'
+ where:
+ operationGroup: BillingPeriods|EnrollmentAccounts|Address.*$
+ hidden: true
+
+ # rename --billing-profile-name to --profile-name
+ - where:
+ 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:
+ param: billingAccountName
+ name: account_name
+ # shorten the name in billing account command group
+ - where:
+ group: billingAccounts
+ param: billingAccountName
+ alias:
+ - name
+ - n
+ - where:
+ operationGroup: billingAccounts
+ set:
+ groupExtensionMode: preview
+ - where:
+ operationGroup: BillingAccounts
+ name: account
+ # Shouldn't appear in accounts command group, the responses is not related to BollingAccount
+ - where:
+ group: BillingAccounts
+ op: ListInvoiceSectionsByCreateSubscriptionPermission
+ hidden: true
+
+# -------- BillingProfile --------
+ - where:
+ operationGroup: BillingProfiles
+ set:
+ groupExtensionMode: preview
+ - where:
+ operationGroup: BillingProfiles
+ name: profile
+ - where:
+ group: billingProfiles
+ param: billingProfileName
+ alias:
+ - name
+ - n
+ - select: 'property'
+ where:
+ objectSchema: 'billingProfileCreationRequest'
+ property: 'poNumber'
+ set:
+ name: 'purchase_order_number'
+
+# -------- Balance --------
+ - where:
+ group: 'availableBalances'
+ set:
+ name: 'balance'
+ - where:
+ group: availableBalances
+ set:
+ groupExtensionMode: preview
+
+# -------- Customer --------
+ - where:
+ group: Customers
+ set:
+ groupExtensionMode: preview
+
+# -------- Invoice --------
+ # customize for download command by manual for ungraceful implmentation by default
+ - where:
+ group: Invoices
+ op: DownloadInvoice
+ hidden: true
+ - where:
+ group: Invoices
+ op: DownloadMultipleBillingProfileInvoices
+ hidden: true
+ - where:
+ group: Invoices
+ op: DownloadBillingSubscriptionInvoice
+ hidden: true
+ - where:
+ group: Invoices
+ op: DownloadMultipleBillingSubscriptionInvoices
+ hidden: true
+ # customize for series of get commands by manual for ungraceful implmentation by default
+ - where:
+ group: Invoices
+ op: GetById
+ hidden: true
+ - where:
+ group: Invoices
+ op: GetBySubscriptionAndInvoiceId
+ hidden: true
+ - where:
+ group: Invoices
+ param: invoiceName
+ name: name
+ alias: # --invoice-name is unnecessary under "billing invoice" command group
+ - name
+ - n
+
+# -------- InvoiceSection --------
+ - where:
+ group: InvoiceSections
+ set:
+ groupExtensionMode: preview # bug, won't take effect
+
+# -------- Policy -------
+ - where:
+ group: Policies
+ set:
+ groupExtensionMode: preview
+ # GetByBillingProfile and GetByCustomer will be implemented in manually customized show command
+ - where:
+ group: Policies
+ op: GetByBillingProfile
+ hidden: true
+ - where:
+ group: Policies
+ op: GetByCustomer
+ hidden: true
+ - where:
+ group: Policies
+ op: UpdateCustomer
+ hidden: true
+
+# ------ Product ------
+ - where:
+ group: Products
+ set:
+ groupExtensionMode: preview
+
+# ------ Subscription ------
+ - where:
+ group: BillingSubscriptions
+ set:
+ name: subscription
+ groupExtensionMode: preview
+
+# ------ Property ------
+ - where:
+ group: BillingProperty
+ set:
+ name: property
+ groupExtensionMode: preview
+ - select: 'property'
+ where:
+ objectSchema: 'BillingProfileProperties'
+ property: 'poNumber'
+ set:
+ name: 'purchase_order_number'
+
+# ------ Transaction ------
+ - where:
+ group: Transactions
+ set:
+ groupExtensionMode: preview
+```
diff --git a/specification/billing/resource-manager/readme.cli.md b/specification/billing/resource-manager/readme.cli.md
index c13b35b5db95..0016d91bd5e7 100644
--- a/specification/billing/resource-manager/readme.cli.md
+++ b/specification/billing/resource-manager/readme.cli.md
@@ -1,33 +1,9 @@
-# Az.Aks
-This directory contains the Cli common model for the Aks service.
+# Az.Billing
+This directory contains the Cli common model for the Billing service.
> Metadata
``` yaml
# Migrated from Powershell's readme
-title: Billing
-cli:
- cli-directive:
- - select: 'property'
- where:
- objectSchema: 'billingProfileCreationRequest'
- property: 'poNumber'
- set:
- name: 'purchase_order_number'
- - select: 'operationGroup'
- where:
- operationGroup: 'availableBalances'
- set:
- name: 'available_credit_balance'
- - select: 'property'
- where:
- objectSchema: 'BillingProfileProperties'
- property: 'poNumber'
- set:
- name: 'purchase_order_number'
- - select: 'operationGroup'
- where:
- operationGroup: ^(?!^billingPeriod$)(?!^budget$)(?!^enrollmentAccounts$)(?!^invoices$)(?!^marketplace$)(?!^priceSheet$)(?!^reservationDetail$)(?!^reservationSummary$)(?!^usageAggregate$)(?!^usageDetail$).*$
- hidden: true
```
diff --git a/specification/billing/resource-manager/readme.md b/specification/billing/resource-manager/readme.md
index 133322e3dbd8..54b10224deae 100644
--- a/specification/billing/resource-manager/readme.md
+++ b/specification/billing/resource-manager/readme.md
@@ -102,6 +102,7 @@ swagger-to-sdk:
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
- repo: azure-sdk-for-ruby
+ - repo: azure-cli-extensions
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_billing']
- repo: azure-resource-manager-schemas
@@ -237,4 +238,3 @@ generate-interface: true
## AzureResourceSchema
See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/Training.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/Training.json
new file mode 100644
index 000000000000..a7e681725a7d
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/Training.json
@@ -0,0 +1,5759 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "3.4-preview",
+ "title": "Custom Vision Training Client"
+ },
+ "host": "southcentralus.api.cognitive.microsoft.com",
+ "basePath": "/customvision/v3.4-preview/training",
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/domains": {
+ "get": {
+ "tags": [
+ "DomainsApi"
+ ],
+ "summary": "Get a list of the available domains.",
+ "operationId": "GetDomains",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Domain"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetDomains request": {
+ "$ref": "./examples/GetDomains.json"
+ }
+ }
+ }
+ },
+ "/domains/{domainId}": {
+ "get": {
+ "tags": [
+ "DomainsApi"
+ ],
+ "summary": "Get information about a specific domain.",
+ "operationId": "GetDomain",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "domainId",
+ "in": "path",
+ "description": "The id of the domain to get information about.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Domain"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetDomain request": {
+ "$ref": "./examples/GetDomain.json"
+ }
+ }
+ }
+ },
+ "/projects": {
+ "get": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Get your projects.",
+ "operationId": "GetProjects",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Project"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetProjects request": {
+ "$ref": "./examples/GetProjects.json"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Create a project.",
+ "operationId": "CreateProject",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "name",
+ "in": "query",
+ "description": "Name of the project.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "description",
+ "in": "query",
+ "description": "The description of the project.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "domainId",
+ "in": "query",
+ "description": "The id of the domain to use for this project. Defaults to General.",
+ "required": false,
+ "type": "string",
+ "format": "uuid"
+ },
+ {
+ "name": "classificationType",
+ "in": "query",
+ "description": "The type of classifier to create for this project.",
+ "required": false,
+ "type": "string",
+ "enum": [
+ "Multiclass",
+ "Multilabel"
+ ]
+ },
+ {
+ "name": "targetExportPlatforms",
+ "in": "query",
+ "description": "List of platforms the trained model is intending exporting to.",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "CoreML",
+ "TensorFlow",
+ "DockerFile",
+ "ONNX",
+ "VAIDK",
+ "OpenVino"
+ ]
+ },
+ "collectionFormat": "csv"
+ },
+ {
+ "name": "options",
+ "in": "body",
+ "description": "Additional project creation options.",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/CreateProjectOptions"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Project"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful CreateProject request": {
+ "$ref": "./examples/CreateProject.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}": {
+ "get": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Get a specific project.",
+ "operationId": "GetProject",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The id of the project to get.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Project"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetProject request": {
+ "$ref": "./examples/GetProject.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Delete a specific project.",
+ "operationId": "DeleteProject",
+ "consumes": [],
+ "produces": [],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful DeleteProject request": {
+ "$ref": "./examples/DeleteProject.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Update a specific project.",
+ "operationId": "UpdateProject",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The id of the project to update.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "updatedProject",
+ "in": "body",
+ "description": "The updated project model.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Project"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Project"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful UpdateProject request": {
+ "$ref": "./examples/UpdateProject.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/artifacts": {
+ "get": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Get artifact content from blob storage, based on artifact relative path in the blob.",
+ "operationId": "GetArtifact",
+ "consumes": [],
+ "produces": [
+ "application/octet-stream"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "path",
+ "in": "query",
+ "description": "The relative path for artifact.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "file"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetArtifact request": {
+ "$ref": "./examples/GetArtifact.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/export": {
+ "get": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Exports a project.",
+ "operationId": "ExportProject",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id of the project to export.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ProjectExport"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful ExportProject request": {
+ "$ref": "./examples/ExportProject.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images": {
+ "get": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Get images for a given project iteration or workspace.",
+ "description": "This API supports batching and range selection. By default it will only return first 50 images matching images.\r\nUse the {take} and {skip} parameters to control how many images to return in a given batch.\r\nThe filtering is on an and/or relationship. For example, if the provided tag ids are for the \"Dog\" and\r\n\"Cat\" tags, then only images tagged with Dog and/or Cat will be returned",
+ "operationId": "GetImages",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "query",
+ "description": "The iteration id. Defaults to workspace.",
+ "required": false,
+ "type": "string",
+ "format": "uuid"
+ },
+ {
+ "name": "tagIds",
+ "in": "query",
+ "description": "A list of tags ids to filter the images. Defaults to all tagged images when null. Limited to 20.",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv",
+ "maxItems": 20,
+ "minItems": 0
+ },
+ {
+ "name": "taggingStatus",
+ "in": "query",
+ "description": "The tagging status filter. It can be 'All', 'Tagged', or 'Untagged'. Defaults to 'All'.",
+ "required": false,
+ "type": "string",
+ "enum": [
+ "All",
+ "Tagged",
+ "Untagged"
+ ]
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "description": "An expression to filter the images against image metadata. Only images where the expression evaluates to true are included in the response.\r\nThe expression supports eq (Equal), ne (Not equal), and (Logical and), or (Logical or) operators.\r\nHere is an example, metadata=key1 eq 'value1' and key2 ne 'value2'.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "orderBy",
+ "in": "query",
+ "description": "The ordering. Defaults to newest.",
+ "required": false,
+ "type": "string",
+ "enum": [
+ "Newest",
+ "Oldest"
+ ]
+ },
+ {
+ "name": "take",
+ "in": "query",
+ "description": "Maximum number of images to return. Defaults to 50, limited to 256.",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 256,
+ "minimum": 0
+ },
+ {
+ "name": "skip",
+ "in": "query",
+ "description": "Number of images to skip before beginning the image batch. Defaults to 0.",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 0
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Image"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetImages request": {
+ "$ref": "./examples/GetImages.json"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Add the provided images to the set of training images.",
+ "description": "This API accepts body content as multipart/form-data and application/octet-stream. When using multipart\r\nmultiple image files can be sent at once, with a maximum of 64 files.\r\nIf all images are successful created, 200(OK) status code will be returned.\r\nOtherwise, 207 (Multi-Status) status code will be returned and detail status for each image will be listed in the response payload.",
+ "operationId": "CreateImagesFromData",
+ "consumes": [
+ "multipart/form-data",
+ "application/octet-stream"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "tagIds",
+ "in": "query",
+ "description": "The tags ids with which to tag each image. Limited to 20.",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv",
+ "maxItems": 20,
+ "minItems": 0
+ },
+ {
+ "name": "imageData",
+ "in": "formData",
+ "description": "Binary image data. Supported formats are JPEG, GIF, PNG, and BMP. Supports images up to 6MB.",
+ "required": true,
+ "type": "file"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ImageCreateSummary"
+ }
+ },
+ "207": {
+ "description": "207",
+ "schema": {
+ "$ref": "#/definitions/ImageCreateSummary"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful CreateImagesFromData request": {
+ "$ref": "./examples/CreateImagesFromData.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Delete images from the set of training images.",
+ "operationId": "DeleteImages",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "imageIds",
+ "in": "query",
+ "description": "Ids of the images to be deleted. Limited to 256 images per batch.",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv",
+ "maxItems": 256,
+ "minItems": 0
+ },
+ {
+ "name": "allImages",
+ "in": "query",
+ "description": "Flag to specify delete all images, specify this flag or a list of images. Using this flag will return a 202 response to indicate the images are being deleted.",
+ "required": false,
+ "type": "boolean"
+ },
+ {
+ "name": "allIterations",
+ "in": "query",
+ "description": "Removes these images from all iterations, not just the current workspace. Using this flag will return a 202 response to indicate the images are being deleted.",
+ "required": false,
+ "type": "boolean"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful DeleteImages request": {
+ "$ref": "./examples/DeleteImages.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/{imageId}/regionproposals": {
+ "post": {
+ "tags": [
+ "ImageRegionProposalApi"
+ ],
+ "summary": "Get region proposals for an image. Returns empty array if no proposals are found.",
+ "description": "This API will get region proposals for an image along with confidences for the region. It returns an empty array if no proposals are found.",
+ "operationId": "GetImageRegionProposals",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "imageId",
+ "in": "path",
+ "description": "The image id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ImageRegionProposal"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetImageRegionProposals request": {
+ "$ref": "./examples/GetImageRegionProposals.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/count": {
+ "get": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Get the number of images.",
+ "description": "The filtering is on an and/or relationship. For example, if the provided tag ids are for the \"Dog\" and\r\n\"Cat\" tags, then only images tagged with Dog and/or Cat will be returned",
+ "operationId": "GetImageCount",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "query",
+ "description": "The iteration id. Defaults to workspace.",
+ "required": false,
+ "type": "string",
+ "format": "uuid"
+ },
+ {
+ "name": "taggingStatus",
+ "in": "query",
+ "description": "The tagging status filter. It can be 'All', 'Tagged', or 'Untagged'. Defaults to 'All'.",
+ "required": false,
+ "type": "string",
+ "enum": [
+ "All",
+ "Tagged",
+ "Untagged"
+ ]
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "description": "An expression to filter the images against image metadata. Only images where the expression evaluates to true are included in the response.\r\nThe expression supports eq (Equal), ne (Not equal), and (Logical and), or (Logical or) operators.\r\nHere is an example, metadata=key1 eq 'value1' and key2 ne 'value2'.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "tagIds",
+ "in": "query",
+ "description": "A list of tags ids to filter the images to count. Defaults to all tags when null.",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetImageCount request": {
+ "$ref": "./examples/GetImageCount.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/files": {
+ "post": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Add the provided batch of images to the set of training images.",
+ "description": "This API accepts a batch of files, and optionally tags, to create images. There is a limit of 64 images and 20 tags.\r\nIf all images are successful created, 200(OK) status code will be returned.\r\nOtherwise, 207 (Multi-Status) status code will be returned and detail status for each image will be listed in the response payload.",
+ "operationId": "CreateImagesFromFiles",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "batch",
+ "in": "body",
+ "description": "The batch of image files to add. Limited to 64 images and 20 tags per batch.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ImageFileCreateBatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ImageCreateSummary"
+ }
+ },
+ "207": {
+ "description": "207",
+ "schema": {
+ "$ref": "#/definitions/ImageCreateSummary"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful CreateImagesFromFiles request": {
+ "$ref": "./examples/CreateImagesFromFiles.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/id": {
+ "get": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Get images by id for a given project iteration.",
+ "description": "This API will return a set of Images for the specified tags and optionally iteration. If no iteration is specified the\r\ncurrent workspace is used.",
+ "operationId": "GetImagesByIds",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "imageIds",
+ "in": "query",
+ "description": "The list of image ids to retrieve. Limited to 256.",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv",
+ "maxItems": 256,
+ "minItems": 0
+ },
+ {
+ "name": "iterationId",
+ "in": "query",
+ "description": "The iteration id. Defaults to workspace.",
+ "required": false,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Image"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetImagesByIds request": {
+ "$ref": "./examples/GetImagesByIds.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/metadata": {
+ "post": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Update metadata of images.",
+ "description": "This API accepts a batch of image Ids, and metadata, to update images. There is a limit of 64 images.",
+ "operationId": "UpdateImageMetadata",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "imageIds",
+ "in": "query",
+ "description": "The list of image ids to update. Limited to 64.",
+ "required": true,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv",
+ "maxItems": 256,
+ "minItems": 0
+ },
+ {
+ "name": "metadata",
+ "in": "body",
+ "description": "The metadata to be updated to the specified images. Limited to 10 key-value pairs per image. The length of key is limited to 128. The length of value is limited to 256.",
+ "required": true,
+ "schema": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ImageMetadataUpdateSummary"
+ }
+ },
+ "207": {
+ "description": "207",
+ "schema": {
+ "$ref": "#/definitions/ImageMetadataUpdateSummary"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful UpdateImageMetadata request": {
+ "$ref": "./examples/UpdateImageMetadata.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/predictions": {
+ "post": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Add the specified predicted images to the set of training images.",
+ "description": "This API creates a batch of images from predicted images specified. There is a limit of 64 images and 20 tags.\r\nIf all images are successful created, 200(OK) status code will be returned.\r\nOtherwise, 207 (Multi-Status) status code will be returned and detail status for each image will be listed in the response payload.",
+ "operationId": "CreateImagesFromPredictions",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "batch",
+ "in": "body",
+ "description": "Image, tag ids, and metadata. Limited to 64 images and 20 tags per batch.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ImageIdCreateBatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ImageCreateSummary"
+ }
+ },
+ "207": {
+ "description": "207",
+ "schema": {
+ "$ref": "#/definitions/ImageCreateSummary"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful CreateImagesFromPredictions request": {
+ "$ref": "./examples/CreateImagesFromPredictions.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/regions": {
+ "post": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Create a set of image regions.",
+ "description": "This API accepts a batch of image regions, and optionally tags, to update existing images with region information.\r\nThere is a limit of 64 entries in the batch.\r\nIf all regions are successful created, 200(OK) status code will be returned.\r\nOtherwise, 207 (Multi-Status) status code will be returned and detail status for each region will be listed in the response payload.",
+ "operationId": "CreateImageRegions",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "batch",
+ "in": "body",
+ "description": "Batch of image regions which include a tag and bounding box. Limited to 64.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ImageRegionCreateBatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ImageRegionCreateSummary"
+ }
+ },
+ "207": {
+ "description": "207",
+ "schema": {
+ "$ref": "#/definitions/ImageRegionCreateSummary"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful CreateImageRegions request": {
+ "$ref": "./examples/CreateImageRegions.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Delete a set of image regions.",
+ "operationId": "DeleteImageRegions",
+ "consumes": [],
+ "produces": [],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "regionIds",
+ "in": "query",
+ "description": "Regions to delete. Limited to 64.",
+ "required": true,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv",
+ "maxItems": 64,
+ "minItems": 0
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful DeleteImageRegions request": {
+ "$ref": "./examples/DeleteImageRegions.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/suggested": {
+ "post": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Get untagged images whose suggested tags match given tags. Returns empty array if no images are found.",
+ "description": "This API will fetch untagged images filtered by suggested tags Ids. It returns an empty array if no images are found.",
+ "operationId": "QuerySuggestedImages",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "query",
+ "description": "IterationId to use for the suggested tags and regions.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "query",
+ "in": "body",
+ "description": "Contains properties we need to query suggested images.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SuggestedTagAndRegionQueryToken"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SuggestedTagAndRegionQuery"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful QuerySuggestedImages request": {
+ "$ref": "./examples/QuerySuggestedImages.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/suggested/count": {
+ "post": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Get count of images whose suggested tags match given tags and their probabilities are greater than or equal to the given threshold. Returns count as 0 if none found.",
+ "description": "This API takes in tagIds to get count of untagged images per suggested tags for a given threshold.",
+ "operationId": "QuerySuggestedImageCount",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "query",
+ "description": "IterationId to use for the suggested tags and regions.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "query",
+ "in": "body",
+ "description": "Model that contains tagIds, threshold and projectType to query by.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TagFilter"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "object",
+ "additionalProperties": {
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful QuerySuggestedImageCount request": {
+ "$ref": "./examples/QuerySuggestedImageCount.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/tagged": {
+ "get": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Get tagged images for a given project iteration.",
+ "description": "This API supports batching and range selection. By default it will only return first 50 images matching images.\r\nUse the {take} and {skip} parameters to control how many images to return in a given batch.\r\nThe filtering is on an and/or relationship. For example, if the provided tag ids are for the \"Dog\" and\r\n\"Cat\" tags, then only images tagged with Dog and/or Cat will be returned",
+ "operationId": "GetTaggedImages",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "query",
+ "description": "The iteration id. Defaults to workspace.",
+ "required": false,
+ "type": "string",
+ "format": "uuid"
+ },
+ {
+ "name": "tagIds",
+ "in": "query",
+ "description": "A list of tags ids to filter the images. Defaults to all tagged images when null. Limited to 20.",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv",
+ "maxItems": 20,
+ "minItems": 0
+ },
+ {
+ "name": "orderBy",
+ "in": "query",
+ "description": "The ordering. Defaults to newest.",
+ "required": false,
+ "type": "string",
+ "enum": [
+ "Newest",
+ "Oldest"
+ ]
+ },
+ {
+ "name": "take",
+ "in": "query",
+ "description": "Maximum number of images to return. Defaults to 50, limited to 256.",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 256,
+ "minimum": 0
+ },
+ {
+ "name": "skip",
+ "in": "query",
+ "description": "Number of images to skip before beginning the image batch. Defaults to 0.",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 0
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Image"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetTaggedImages request": {
+ "$ref": "./examples/GetTaggedImages.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/tagged/count": {
+ "get": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Gets the number of images tagged with the provided {tagIds}.",
+ "description": "The filtering is on an and/or relationship. For example, if the provided tag ids are for the \"Dog\" and\r\n\"Cat\" tags, then only images tagged with Dog and/or Cat will be returned",
+ "operationId": "GetTaggedImageCount",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "query",
+ "description": "The iteration id. Defaults to workspace.",
+ "required": false,
+ "type": "string",
+ "format": "uuid"
+ },
+ {
+ "name": "tagIds",
+ "in": "query",
+ "description": "A list of tags ids to filter the images to count. Defaults to all tags when null.",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetTaggedImageCount request": {
+ "$ref": "./examples/GetTaggedImageCount.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/tags": {
+ "post": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Associate a set of images with a set of tags.",
+ "operationId": "CreateImageTags",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "batch",
+ "in": "body",
+ "description": "Batch of image tags. Limited to 128 tags per batch.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ImageTagCreateBatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ImageTagCreateSummary"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful CreateImageTags request": {
+ "$ref": "./examples/CreateImageTags.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Remove a set of tags from a set of images.",
+ "operationId": "DeleteImageTags",
+ "consumes": [],
+ "produces": [],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "imageIds",
+ "in": "query",
+ "description": "Image ids. Limited to 64 images.",
+ "required": true,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv",
+ "maxItems": 64,
+ "minItems": 0
+ },
+ {
+ "name": "tagIds",
+ "in": "query",
+ "description": "Tags to be deleted from the specified images. Limited to 20 tags.",
+ "required": true,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv",
+ "maxItems": 20,
+ "minItems": 0
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful DeleteImageTags request": {
+ "$ref": "./examples/DeleteImageTags.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/untagged": {
+ "get": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Get untagged images for a given project iteration.",
+ "description": "This API supports batching and range selection. By default it will only return first 50 images matching images.\r\nUse the {take} and {skip} parameters to control how many images to return in a given batch.",
+ "operationId": "GetUntaggedImages",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "query",
+ "description": "The iteration id. Defaults to workspace.",
+ "required": false,
+ "type": "string",
+ "format": "uuid"
+ },
+ {
+ "name": "orderBy",
+ "in": "query",
+ "description": "The ordering. Defaults to newest.",
+ "required": false,
+ "type": "string",
+ "enum": [
+ "Newest",
+ "Oldest"
+ ]
+ },
+ {
+ "name": "take",
+ "in": "query",
+ "description": "Maximum number of images to return. Defaults to 50, limited to 256.",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 256,
+ "minimum": 0
+ },
+ {
+ "name": "skip",
+ "in": "query",
+ "description": "Number of images to skip before beginning the image batch. Defaults to 0.",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 0
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Image"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetUntaggedImages request": {
+ "$ref": "./examples/GetUntaggedImages.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/untagged/count": {
+ "get": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Gets the number of untagged images.",
+ "description": "This API returns the images which have no tags for a given project and optionally an iteration. If no iteration is specified the\r\ncurrent workspace is used.",
+ "operationId": "GetUntaggedImageCount",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "query",
+ "description": "The iteration id. Defaults to workspace.",
+ "required": false,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetUntaggedImageCount request": {
+ "$ref": "./examples/GetUntaggedImageCount.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/images/urls": {
+ "post": {
+ "tags": [
+ "ImageApi"
+ ],
+ "summary": "Add the provided images urls to the set of training images.",
+ "description": "This API accepts a batch of urls, and optionally tags, to create images. There is a limit of 64 images and 20 tags.\r\nIf all images are successful created, 200(OK) status code will be returned.\r\nOtherwise, 207 (Multi-Status) status code will be returned and detail status for each image will be listed in the response payload.",
+ "operationId": "CreateImagesFromUrls",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "batch",
+ "in": "body",
+ "description": "Image urls, tag ids, and metadata. Limited to 64 images and 20 tags per batch.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ImageUrlCreateBatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ImageCreateSummary"
+ }
+ },
+ "207": {
+ "description": "207",
+ "schema": {
+ "$ref": "#/definitions/ImageCreateSummary"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful CreateImagesFromUrls request": {
+ "$ref": "./examples/CreateImagesFromUrls.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/iterations": {
+ "get": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Get iterations for the project.",
+ "operationId": "GetIterations",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Iteration"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetIterations request": {
+ "$ref": "./examples/GetIterations.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/iterations/{iterationId}": {
+ "get": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Get a specific iteration.",
+ "operationId": "GetIteration",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The id of the project the iteration belongs to.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "path",
+ "description": "The id of the iteration to get.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Iteration"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetIteration request": {
+ "$ref": "./examples/GetIteration.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Delete a specific iteration of a project.",
+ "operationId": "DeleteIteration",
+ "consumes": [],
+ "produces": [],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "path",
+ "description": "The iteration id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful DeleteIteration request": {
+ "$ref": "./examples/DeleteIteration.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Update a specific iteration.",
+ "operationId": "UpdateIteration",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "Project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "path",
+ "description": "Iteration id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "updatedIteration",
+ "in": "body",
+ "description": "The updated iteration model.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Iteration"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Iteration"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful UpdateIteration request": {
+ "$ref": "./examples/UpdateIteration.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/iterations/{iterationId}/export": {
+ "get": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Get the list of exports for a specific iteration.",
+ "operationId": "GetExports",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "path",
+ "description": "The iteration id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Export"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetExports request": {
+ "$ref": "./examples/GetExports.json"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Export a trained iteration.",
+ "operationId": "ExportIteration",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "path",
+ "description": "The iteration id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "platform",
+ "in": "query",
+ "description": "The target platform.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "CoreML",
+ "TensorFlow",
+ "DockerFile",
+ "ONNX",
+ "VAIDK",
+ "OpenVino"
+ ]
+ },
+ {
+ "name": "flavor",
+ "in": "query",
+ "description": "The flavor of the target platform.",
+ "required": false,
+ "type": "string",
+ "enum": [
+ "Linux",
+ "Windows",
+ "ONNX10",
+ "ONNX12",
+ "ARM",
+ "TensorFlowNormal",
+ "TensorFlowLite"
+ ]
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Export"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful ExportIteration request": {
+ "$ref": "./examples/ExportIteration.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/iterations/{iterationId}/performance": {
+ "get": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Get detailed performance information about an iteration.",
+ "operationId": "GetIterationPerformance",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The id of the project the iteration belongs to.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "path",
+ "description": "The id of the iteration to get.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "threshold",
+ "in": "query",
+ "description": "The threshold used to determine true predictions.",
+ "required": false,
+ "type": "number",
+ "format": "float"
+ },
+ {
+ "name": "overlapThreshold",
+ "in": "query",
+ "description": "If applicable, the bounding box overlap threshold used to determine true predictions.",
+ "required": false,
+ "type": "number",
+ "format": "float"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/IterationPerformance"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetIterationPerformance request": {
+ "$ref": "./examples/GetIterationPerformance.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/iterations/{iterationId}/performance/images": {
+ "get": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Get image with its prediction for a given project iteration.",
+ "description": "This API supports batching and range selection. By default it will only return first 50 images matching images.\r\nUse the {take} and {skip} parameters to control how many images to return in a given batch.\r\nThe filtering is on an and/or relationship. For example, if the provided tag ids are for the \"Dog\" and\r\n\"Cat\" tags, then only images tagged with Dog and/or Cat will be returned",
+ "operationId": "GetImagePerformances",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "path",
+ "description": "The iteration id. Defaults to workspace.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "tagIds",
+ "in": "query",
+ "description": "A list of tags ids to filter the images. Defaults to all tagged images when null. Limited to 20.",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv",
+ "maxItems": 20,
+ "minItems": 0
+ },
+ {
+ "name": "orderBy",
+ "in": "query",
+ "description": "The ordering. Defaults to newest.",
+ "required": false,
+ "type": "string",
+ "enum": [
+ "Newest",
+ "Oldest"
+ ]
+ },
+ {
+ "name": "take",
+ "in": "query",
+ "description": "Maximum number of images to return. Defaults to 50, limited to 256.",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 256,
+ "minimum": 0
+ },
+ {
+ "name": "skip",
+ "in": "query",
+ "description": "Number of images to skip before beginning the image batch. Defaults to 0.",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 0
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImagePerformance"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetImagePerformances request": {
+ "$ref": "./examples/GetImagePerformances.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/iterations/{iterationId}/performance/images/count": {
+ "get": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Gets the number of images tagged with the provided {tagIds} that have prediction results from\r\ntraining for the provided iteration {iterationId}.",
+ "description": "The filtering is on an and/or relationship. For example, if the provided tag ids are for the \"Dog\" and\r\n\"Cat\" tags, then only images tagged with Dog and/or Cat will be returned",
+ "operationId": "GetImagePerformanceCount",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "path",
+ "description": "The iteration id. Defaults to workspace.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "tagIds",
+ "in": "query",
+ "description": "A list of tags ids to filter the images to count. Defaults to all tags when null.",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetImagePerformanceCount request": {
+ "$ref": "./examples/GetImagePerformanceCount.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/iterations/{iterationId}/publish": {
+ "post": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Publish a specific iteration.",
+ "operationId": "PublishIteration",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "path",
+ "description": "The iteration id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "publishName",
+ "in": "query",
+ "description": "The name to give the published iteration.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "predictionId",
+ "in": "query",
+ "description": "The id of the prediction resource to publish to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "overwrite",
+ "in": "query",
+ "description": "Whether to overwrite the published model with the given name (default: false).",
+ "required": false,
+ "type": "boolean"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful PublishIteration request": {
+ "$ref": "./examples/PublishIteration.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Unpublish a specific iteration.",
+ "operationId": "UnpublishIteration",
+ "consumes": [],
+ "produces": [],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "path",
+ "description": "The iteration id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful UnpublishIteration request": {
+ "$ref": "./examples/UnpublishIteration.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/predictions": {
+ "delete": {
+ "tags": [
+ "PredictionsApi"
+ ],
+ "summary": "Delete a set of predicted images and their associated prediction results.",
+ "operationId": "DeletePrediction",
+ "consumes": [],
+ "produces": [],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "ids",
+ "in": "query",
+ "description": "The prediction ids. Limited to 64.",
+ "required": true,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv",
+ "maxItems": 64,
+ "minItems": 0
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful DeletePrediction request": {
+ "$ref": "./examples/DeletePrediction.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/predictions/query": {
+ "post": {
+ "tags": [
+ "PredictionsApi"
+ ],
+ "summary": "Get images that were sent to your prediction endpoint.",
+ "operationId": "QueryPredictions",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "query",
+ "in": "body",
+ "description": "Parameters used to query the predictions. Limited to combining 2 tags.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PredictionQueryToken"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PredictionQueryResult"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful QueryPredictions request": {
+ "$ref": "./examples/QueryPredictions.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/quicktest/image": {
+ "post": {
+ "tags": [
+ "PredictionsApi"
+ ],
+ "summary": "Quick test an image.",
+ "operationId": "QuickTestImage",
+ "consumes": [
+ "multipart/form-data",
+ "application/octet-stream"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "query",
+ "description": "Optional. Specifies the id of a particular iteration to evaluate against.\r\n The default iteration for the project will be used when not specified.",
+ "required": false,
+ "type": "string",
+ "format": "uuid"
+ },
+ {
+ "name": "store",
+ "in": "query",
+ "description": "Optional. Specifies whether or not to store the result of this prediction. The default is true, to store.",
+ "required": false,
+ "type": "boolean",
+ "default": true
+ },
+ {
+ "name": "imageData",
+ "in": "formData",
+ "description": "Binary image data. Supported formats are JPEG, GIF, PNG, and BMP. Supports images up to 6MB.",
+ "required": true,
+ "type": "file"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ImagePrediction"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful QuickTestImage request": {
+ "$ref": "./examples/QuickTestImage.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/quicktest/url": {
+ "post": {
+ "tags": [
+ "PredictionsApi"
+ ],
+ "summary": "Quick test an image url.",
+ "operationId": "QuickTestImageUrl",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project to evaluate against.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "imageUrl",
+ "in": "body",
+ "description": "An ImageUrl that contains the url of the image to be evaluated.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ImageUrl"
+ }
+ },
+ {
+ "name": "iterationId",
+ "in": "query",
+ "description": "Optional. Specifies the id of a particular iteration to evaluate against.\r\n The default iteration for the project will be used when not specified.",
+ "required": false,
+ "type": "string",
+ "format": "uuid"
+ },
+ {
+ "name": "store",
+ "in": "query",
+ "description": "Optional. Specifies whether or not to store the result of this prediction. The default is true, to store.",
+ "required": false,
+ "type": "boolean",
+ "default": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ImagePrediction"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful QuickTestImageUrl request": {
+ "$ref": "./examples/QuickTestImageUrl.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/tags": {
+ "get": {
+ "tags": [
+ "TagsApi"
+ ],
+ "summary": "Get the tags for a given project and iteration.",
+ "operationId": "GetTags",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "query",
+ "description": "The iteration id. Defaults to workspace.",
+ "required": false,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Tag"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetTags request": {
+ "$ref": "./examples/GetTags.json"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "TagsApi"
+ ],
+ "summary": "Create a tag for the project.",
+ "operationId": "CreateTag",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "name",
+ "in": "query",
+ "description": "The tag name.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "description",
+ "in": "query",
+ "description": "Optional description for the tag.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "description": "Optional type for the tag.",
+ "required": false,
+ "type": "string",
+ "enum": [
+ "Regular",
+ "Negative",
+ "GeneralProduct"
+ ]
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Tag"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful CreateTag request": {
+ "$ref": "./examples/CreateTag.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/tags/{tagId}": {
+ "get": {
+ "tags": [
+ "TagsApi"
+ ],
+ "summary": "Get information about a specific tag.",
+ "operationId": "GetTag",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project this tag belongs to.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "tagId",
+ "in": "path",
+ "description": "The tag id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "query",
+ "description": "The iteration to retrieve this tag from. Optional, defaults to current training set.",
+ "required": false,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Tag"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetTag request": {
+ "$ref": "./examples/GetTag.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "TagsApi"
+ ],
+ "summary": "Delete a tag from the project.",
+ "operationId": "DeleteTag",
+ "consumes": [],
+ "produces": [],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "tagId",
+ "in": "path",
+ "description": "Id of the tag to be deleted.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful DeleteTag request": {
+ "$ref": "./examples/DeleteTag.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "TagsApi"
+ ],
+ "summary": "Update a tag.",
+ "operationId": "UpdateTag",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "tagId",
+ "in": "path",
+ "description": "The id of the target tag.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "updatedTag",
+ "in": "body",
+ "description": "The updated tag model.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Tag"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Tag"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful UpdateTag request": {
+ "$ref": "./examples/UpdateTag.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/tagsandregions/suggestions": {
+ "post": {
+ "tags": [
+ "SuggestTagsAndRegionsApi"
+ ],
+ "summary": "Suggest tags and regions for an array/batch of untagged images. Returns empty array if no tags are found.",
+ "description": "This API will get suggested tags and regions for an array/batch of untagged images along with confidences for the tags. It returns an empty array if no tags are found.\r\nThere is a limit of 64 images in the batch.",
+ "operationId": "SuggestTagsAndRegions",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "iterationId",
+ "in": "query",
+ "description": "IterationId to use for tag and region suggestion.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "imageIds",
+ "in": "query",
+ "description": "Array of image ids tag suggestion are needed for. Use GetUntaggedImages API to get imageIds.",
+ "required": true,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "collectionFormat": "csv",
+ "maxItems": 64,
+ "minItems": 0
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SuggestedTagAndRegion"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful SuggestTagsAndRegions request": {
+ "$ref": "./examples/SuggestTagsAndRegions.json"
+ }
+ }
+ }
+ },
+ "/projects/{projectId}/train": {
+ "post": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Queues project for training.",
+ "operationId": "TrainProject",
+ "consumes": [
+ "application/json",
+ "application/xml",
+ "text/xml",
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "path",
+ "description": "The project id.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ {
+ "name": "trainingType",
+ "in": "query",
+ "description": "The type of training to use to train the project (default: Regular).",
+ "required": false,
+ "type": "string",
+ "enum": [
+ "Regular",
+ "Advanced"
+ ]
+ },
+ {
+ "name": "reservedBudgetInHours",
+ "in": "query",
+ "description": "The number of hours reserved as budget for training (if applicable).",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 0
+ },
+ {
+ "name": "forceTrain",
+ "in": "query",
+ "description": "Whether to force train even if dataset and configuration does not change (default: false).",
+ "required": false,
+ "type": "boolean",
+ "default": false
+ },
+ {
+ "name": "notificationEmailAddress",
+ "in": "query",
+ "description": "The email address to send notification to when training finishes (default: null).",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "trainingParameters",
+ "in": "body",
+ "description": "Additional training parameters passed in to control how the project is trained.",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/TrainingParameters"
+ },
+ "x-nullable": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Iteration"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful TrainProject request": {
+ "$ref": "./examples/TrainProject.json"
+ }
+ }
+ }
+ },
+ "/projects/import": {
+ "post": {
+ "tags": [
+ "ProjectApi"
+ ],
+ "summary": "Imports a project.",
+ "operationId": "ImportProject",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml",
+ "text/xml"
+ ],
+ "parameters": [
+ {
+ "name": "token",
+ "in": "query",
+ "description": "Token generated from the export project call.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "in": "query",
+ "description": "Optional, name of the project to use instead of auto-generated name.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Project"
+ }
+ },
+ "default": {
+ "description": "Error response",
+ "schema": {
+ "$ref": "#/definitions/CustomVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful ImportProject request": {
+ "$ref": "./examples/ImportProject.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "BoundingBox": {
+ "description": "Bounding box that defines a region of an image.",
+ "required": [
+ "left",
+ "top",
+ "width",
+ "height"
+ ],
+ "type": "object",
+ "properties": {
+ "left": {
+ "format": "float",
+ "description": "Coordinate of the left boundary.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "top": {
+ "format": "float",
+ "description": "Coordinate of the top boundary.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "width": {
+ "format": "float",
+ "description": "Width.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "height": {
+ "format": "float",
+ "description": "Height.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "CreateProjectOptions": {
+ "description": "Options used for createProject.",
+ "type": "object",
+ "properties": {
+ "exportModelContainerUri": {
+ "description": "The uri to the Azure Storage container that will be used to store exported models.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "notificationQueueUri": {
+ "description": "The uri to the Azure Storage queue that will be used to send project-related notifications. See Storage notifications documentation for setup and message format.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "CustomBaseModelInfo": {
+ "required": [
+ "projectId",
+ "iterationId"
+ ],
+ "type": "object",
+ "properties": {
+ "projectId": {
+ "format": "uuid",
+ "description": "Project Id of the previously trained project to be used for current iteration's training.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "iterationId": {
+ "format": "uuid",
+ "description": "Iteration Id of the previously trained project to be used for current iteration's training.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "CustomVisionError": {
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The error code.",
+ "enum": [
+ "NoError",
+ "BadRequest",
+ "BadRequestExceededBatchSize",
+ "BadRequestNotSupported",
+ "BadRequestInvalidIds",
+ "BadRequestProjectName",
+ "BadRequestProjectNameNotUnique",
+ "BadRequestProjectDescription",
+ "BadRequestProjectUnknownDomain",
+ "BadRequestProjectUnknownClassification",
+ "BadRequestProjectUnsupportedDomainTypeChange",
+ "BadRequestProjectUnsupportedExportPlatform",
+ "BadRequestProjectImagePreprocessingSettings",
+ "BadRequestProjectDuplicated",
+ "BadRequestIterationName",
+ "BadRequestIterationNameNotUnique",
+ "BadRequestIterationDescription",
+ "BadRequestIterationIsNotTrained",
+ "BadRequestIterationValidationFailed",
+ "BadRequestWorkspaceCannotBeModified",
+ "BadRequestWorkspaceNotDeletable",
+ "BadRequestTagName",
+ "BadRequestTagNameNotUnique",
+ "BadRequestTagDescription",
+ "BadRequestTagType",
+ "BadRequestMultipleNegativeTag",
+ "BadRequestMultipleGeneralProductTag",
+ "BadRequestImageTags",
+ "BadRequestImageRegions",
+ "BadRequestNegativeAndRegularTagOnSameImage",
+ "BadRequestUnsupportedDomain",
+ "BadRequestRequiredParamIsNull",
+ "BadRequestIterationIsPublished",
+ "BadRequestInvalidPublishName",
+ "BadRequestInvalidPublishTarget",
+ "BadRequestUnpublishFailed",
+ "BadRequestIterationNotPublished",
+ "BadRequestSubscriptionApi",
+ "BadRequestExceedProjectLimit",
+ "BadRequestExceedIterationPerProjectLimit",
+ "BadRequestExceedTagPerProjectLimit",
+ "BadRequestExceedTagPerImageLimit",
+ "BadRequestExceededQuota",
+ "BadRequestCannotMigrateProjectWithName",
+ "BadRequestNotLimitedTrial",
+ "BadRequestImageBatch",
+ "BadRequestImageStream",
+ "BadRequestImageUrl",
+ "BadRequestImageFormat",
+ "BadRequestImageSizeBytes",
+ "BadRequestImageDimensions",
+ "BadRequestImageAspectRatio",
+ "BadRequestImageExceededCount",
+ "BadRequestTrainingNotNeeded",
+ "BadRequestTrainingNotNeededButTrainingPipelineUpdated",
+ "BadRequestTrainingValidationFailed",
+ "BadRequestClassificationTrainingValidationFailed",
+ "BadRequestMultiClassClassificationTrainingValidationFailed",
+ "BadRequestMultiLabelClassificationTrainingValidationFailed",
+ "BadRequestDetectionTrainingValidationFailed",
+ "BadRequestTrainingAlreadyInProgress",
+ "BadRequestDetectionTrainingNotAllowNegativeTag",
+ "BadRequestInvalidEmailAddress",
+ "BadRequestRetiredDomainNotSupportedForTraining",
+ "BadRequestDomainNotSupportedForAdvancedTraining",
+ "BadRequestExportPlatformNotSupportedForAdvancedTraining",
+ "BadRequestReservedBudgetInHoursNotEnoughForAdvancedTraining",
+ "BadRequestCustomBaseModelIterationStatusNotCompleted",
+ "BadRequestCustomBaseModelDomainNotCompatible",
+ "BadRequestCustomBaseModelArchitectureRetired",
+ "BadRequestExportValidationFailed",
+ "BadRequestExportAlreadyInProgress",
+ "BadRequestPredictionIdsMissing",
+ "BadRequestPredictionIdsExceededCount",
+ "BadRequestPredictionTagsExceededCount",
+ "BadRequestPredictionResultsExceededCount",
+ "BadRequestPredictionInvalidApplicationName",
+ "BadRequestPredictionInvalidQueryParameters",
+ "BadRequestInvalidImportToken",
+ "BadRequestExportWhileTraining",
+ "BadRequestImageMetadataKey",
+ "BadRequestImageMetadataValue",
+ "BadRequestOperationNotSupported",
+ "BadRequestInvalidArtifactUri",
+ "BadRequestCustomerManagedKeyRevoked",
+ "BadRequestInvalidUri",
+ "BadRequestInvalid",
+ "UnsupportedMediaType",
+ "Forbidden",
+ "ForbiddenUser",
+ "ForbiddenUserResource",
+ "ForbiddenUserSignupDisabled",
+ "ForbiddenUserSignupAllowanceExceeded",
+ "ForbiddenUserDoesNotExist",
+ "ForbiddenUserDisabled",
+ "ForbiddenUserInsufficientCapability",
+ "ForbiddenDRModeEnabled",
+ "ForbiddenInvalid",
+ "NotFound",
+ "NotFoundProject",
+ "NotFoundProjectDefaultIteration",
+ "NotFoundIteration",
+ "NotFoundIterationPerformance",
+ "NotFoundTag",
+ "NotFoundImage",
+ "NotFoundDomain",
+ "NotFoundApimSubscription",
+ "NotFoundInvalid",
+ "Conflict",
+ "ConflictInvalid",
+ "ErrorUnknown",
+ "ErrorIterationCopyFailed",
+ "ErrorPreparePerformanceMigrationFailed",
+ "ErrorProjectInvalidWorkspace",
+ "ErrorProjectInvalidPipelineConfiguration",
+ "ErrorProjectInvalidDomain",
+ "ErrorProjectTrainingRequestFailed",
+ "ErrorProjectImportRequestFailed",
+ "ErrorProjectExportRequestFailed",
+ "ErrorFeaturizationServiceUnavailable",
+ "ErrorFeaturizationQueueTimeout",
+ "ErrorFeaturizationInvalidFeaturizer",
+ "ErrorFeaturizationAugmentationUnavailable",
+ "ErrorFeaturizationUnrecognizedJob",
+ "ErrorFeaturizationAugmentationError",
+ "ErrorExporterInvalidPlatform",
+ "ErrorExporterInvalidFeaturizer",
+ "ErrorExporterInvalidClassifier",
+ "ErrorPredictionServiceUnavailable",
+ "ErrorPredictionModelNotFound",
+ "ErrorPredictionModelNotCached",
+ "ErrorPrediction",
+ "ErrorPredictionStorage",
+ "ErrorRegionProposal",
+ "ErrorUnknownBaseModel",
+ "ErrorServerTimeOut",
+ "ErrorInvalid"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "CustomVisionErrorCodes",
+ "modelAsString": true
+ }
+ },
+ "message": {
+ "description": "A message explaining the error reported by the service.",
+ "type": "string"
+ }
+ }
+ },
+ "Domain": {
+ "description": "Domains are used as the starting point for your project. Each domain is optimized for specific types of images. Domains with compact in their name can be exported. For more information visit the domain documentation.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "format": "uuid",
+ "description": "Domain id.",
+ "type": "string",
+ "readOnly": true,
+ "example": "00000000-0000-0000-0000-000000000000",
+ "x-nullable": false
+ },
+ "name": {
+ "description": "Name of the domain, describing the types of images used to train it.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "type": {
+ "description": "Domain type: Classification or ObjectDetection.",
+ "enum": [
+ "Classification",
+ "ObjectDetection"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "DomainType",
+ "modelAsString": true
+ }
+ },
+ "exportable": {
+ "description": "Indicating if the domain is exportable.",
+ "type": "boolean",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "enabled": {
+ "description": "Indicating if the domain is enabled.",
+ "type": "boolean",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "exportablePlatforms": {
+ "description": "Platforms that the domain can be exported to.",
+ "type": "array",
+ "items": {
+ "enum": [
+ "CoreML",
+ "TensorFlow",
+ "DockerFile",
+ "ONNX",
+ "VAIDK",
+ "OpenVino"
+ ],
+ "type": "string",
+ "x-nullable": false
+ },
+ "readOnly": true
+ },
+ "modelInformation": {
+ "$ref": "#/definitions/ModelInformation",
+ "description": "Model information.",
+ "readOnly": true
+ }
+ }
+ },
+ "Export": {
+ "type": "object",
+ "properties": {
+ "platform": {
+ "description": "Platform of the export.",
+ "enum": [
+ "CoreML",
+ "TensorFlow",
+ "DockerFile",
+ "ONNX",
+ "VAIDK",
+ "OpenVino"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "ExportPlatform",
+ "modelAsString": true
+ }
+ },
+ "status": {
+ "description": "Status of the export.",
+ "enum": [
+ "Exporting",
+ "Failed",
+ "Done"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "ExportStatus",
+ "modelAsString": true
+ }
+ },
+ "downloadUri": {
+ "description": "URI used to download the model. If VNET feature is enabled this will be a relative path to be used with GetArtifact, otherwise this will be an absolute URI to the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "flavor": {
+ "description": "Flavor of the export. These are specializations of the export platform.\r\nDocker platform has valid flavors: Linux, Windows, ARM.\r\nTensorflow platform has valid flavors: TensorFlowNormal, TensorFlowLite.\r\nONNX platform has valid flavors: ONNX10, ONNX12.",
+ "enum": [
+ "Linux",
+ "Windows",
+ "ONNX10",
+ "ONNX12",
+ "ARM",
+ "TensorFlowNormal",
+ "TensorFlowLite"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": true,
+ "x-ms-enum": {
+ "name": "ExportFlavor",
+ "modelAsString": true
+ }
+ },
+ "newerVersionAvailable": {
+ "description": "Indicates an updated version of the export package is available and should be re-exported for the latest changes.",
+ "type": "boolean",
+ "readOnly": true,
+ "x-nullable": false
+ }
+ }
+ },
+ "Image": {
+ "description": "Image model to be sent as JSON.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "format": "uuid",
+ "description": "Id of the image.",
+ "type": "string",
+ "readOnly": true,
+ "example": "00000000-0000-0000-0000-000000000000",
+ "x-nullable": false
+ },
+ "created": {
+ "format": "date-time",
+ "description": "Date the image was created.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "width": {
+ "format": "int32",
+ "description": "Width of the image.",
+ "type": "integer",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "height": {
+ "format": "int32",
+ "description": "Height of the image.",
+ "type": "integer",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "resizedImageUri": {
+ "description": "The URI to the (resized) image used for training. If VNET feature is enabled this will be a relative path to be used with GetArtifact, otherwise this will be an absolute URI to the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "thumbnailUri": {
+ "description": "The URI to the thumbnail of the original image. If VNET feature is enabled this will be a relative path to be used with GetArtifact, otherwise this will be an absolute URI to the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "originalImageUri": {
+ "description": "The URI to the original uploaded image. If VNET feature is enabled this will be a relative path to be used with GetArtifact, otherwise this will be an absolute URI to the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "tags": {
+ "description": "Tags associated with this image.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageTag"
+ },
+ "readOnly": true,
+ "x-nullable": true
+ },
+ "regions": {
+ "description": "Regions associated with this image.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageRegion"
+ },
+ "readOnly": true,
+ "x-nullable": true
+ },
+ "metadata": {
+ "description": "Metadata associated with this image.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "readOnly": true,
+ "x-nullable": true
+ }
+ }
+ },
+ "ImageCreateResult": {
+ "type": "object",
+ "properties": {
+ "sourceUrl": {
+ "description": "Source URL of the image.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "status": {
+ "description": "Status of the image creation.",
+ "enum": [
+ "OK",
+ "OKDuplicate",
+ "ErrorSource",
+ "ErrorImageFormat",
+ "ErrorImageSize",
+ "ErrorStorage",
+ "ErrorLimitExceed",
+ "ErrorTagLimitExceed",
+ "ErrorRegionLimitExceed",
+ "ErrorUnknown",
+ "ErrorNegativeAndRegularTagOnSameImage",
+ "ErrorImageDimensions",
+ "ErrorInvalidTag"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "ImageCreateStatus",
+ "modelAsString": true
+ }
+ },
+ "image": {
+ "$ref": "#/definitions/Image",
+ "description": "The image.",
+ "readOnly": true
+ }
+ }
+ },
+ "ImageCreateSummary": {
+ "type": "object",
+ "properties": {
+ "isBatchSuccessful": {
+ "description": "True if all of the images in the batch were created successfully, otherwise false.",
+ "type": "boolean",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "images": {
+ "description": "List of the image creation results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageCreateResult",
+ "x-nullable": false
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "ImageFileCreateBatch": {
+ "type": "object",
+ "properties": {
+ "images": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageFileCreateEntry",
+ "x-nullable": false
+ },
+ "readOnly": false
+ },
+ "tagIds": {
+ "type": "array",
+ "items": {
+ "format": "uuid",
+ "type": "string",
+ "example": "00000000-0000-0000-0000-000000000000",
+ "x-nullable": false
+ },
+ "readOnly": false
+ },
+ "metadata": {
+ "description": "The metadata of image. Limited to 10 key-value pairs per image. The length of key is limited to 128. The length of value is limited to 256.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "readOnly": false,
+ "x-nullable": true
+ }
+ }
+ },
+ "ImageFileCreateEntry": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "contents": {
+ "format": "byte",
+ "type": "string",
+ "readOnly": false
+ },
+ "tagIds": {
+ "type": "array",
+ "items": {
+ "format": "uuid",
+ "type": "string",
+ "example": "00000000-0000-0000-0000-000000000000",
+ "x-nullable": false
+ },
+ "readOnly": false
+ },
+ "regions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Region",
+ "x-nullable": false
+ },
+ "readOnly": false
+ }
+ }
+ },
+ "ImageIdCreateBatch": {
+ "type": "object",
+ "properties": {
+ "images": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageIdCreateEntry",
+ "x-nullable": false
+ },
+ "readOnly": false
+ },
+ "tagIds": {
+ "type": "array",
+ "items": {
+ "format": "uuid",
+ "type": "string",
+ "x-nullable": false
+ },
+ "readOnly": false
+ },
+ "metadata": {
+ "description": "The metadata of image. Limited to 10 key-value pairs per image. The length of key is limited to 128. The length of value is limited to 256.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "readOnly": false,
+ "x-nullable": true
+ }
+ }
+ },
+ "ImageIdCreateEntry": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "format": "uuid",
+ "description": "Id of the image.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "tagIds": {
+ "type": "array",
+ "items": {
+ "format": "uuid",
+ "type": "string",
+ "x-nullable": false
+ },
+ "readOnly": false
+ },
+ "regions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Region",
+ "x-nullable": false
+ },
+ "readOnly": false
+ }
+ }
+ },
+ "ImageMetadataUpdateEntry": {
+ "description": "Entry associating a metadata to an image.",
+ "type": "object",
+ "properties": {
+ "imageId": {
+ "format": "uuid",
+ "description": "Id of the image.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "status": {
+ "description": "Status of the metadata update.",
+ "enum": [
+ "OK",
+ "ErrorImageNotFound",
+ "ErrorLimitExceed",
+ "ErrorUnknown"
+ ],
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "ImageMetadataUpdateStatus",
+ "modelAsString": true
+ }
+ },
+ "metadata": {
+ "description": "Metadata of the image.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "readOnly": false,
+ "x-nullable": true
+ }
+ }
+ },
+ "ImageMetadataUpdateSummary": {
+ "type": "object",
+ "properties": {
+ "isBatchSuccessful": {
+ "type": "boolean",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "images": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageMetadataUpdateEntry",
+ "x-nullable": false
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "ImagePerformance": {
+ "description": "Image performance model.",
+ "type": "object",
+ "properties": {
+ "predictions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Prediction"
+ },
+ "readOnly": true,
+ "x-nullable": true
+ },
+ "id": {
+ "format": "uuid",
+ "description": "Id of the image.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "created": {
+ "format": "date-time",
+ "description": "Date the image was created.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "width": {
+ "format": "int32",
+ "description": "Width of the image.",
+ "type": "integer",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "height": {
+ "format": "int32",
+ "description": "Height of the image.",
+ "type": "integer",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "imageUri": {
+ "description": "The URI to the image used for training. If VNET feature is enabled this will be a relative path to be used with GetArtifact, otherwise this will be an absolute URI to the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "thumbnailUri": {
+ "description": "The URI to the thumbnail of the original image. If VNET feature is enabled this will be a relative path to be used with GetArtifact, otherwise this will be an absolute URI to the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "tags": {
+ "description": "Tags associated with this image.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageTag"
+ },
+ "readOnly": true,
+ "x-nullable": true
+ },
+ "regions": {
+ "description": "Regions associated with this image.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageRegion"
+ },
+ "readOnly": true,
+ "x-nullable": true
+ }
+ }
+ },
+ "ImagePrediction": {
+ "description": "Result of an image prediction request.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "format": "uuid",
+ "description": "Prediction Id.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "project": {
+ "format": "uuid",
+ "description": "Project Id.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "iteration": {
+ "format": "uuid",
+ "description": "Iteration Id.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "created": {
+ "format": "date-time",
+ "description": "Date this prediction was created.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "predictions": {
+ "description": "List of predictions.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Prediction",
+ "x-nullable": false
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "ImageProcessingSettings": {
+ "description": "Represents image preprocessing settings used by image augmentation.",
+ "type": "object",
+ "properties": {
+ "augmentationMethods": {
+ "description": "Gets or sets enabled image transforms. The key corresponds to the transform name. If value is set to true, then correspondent transform is enabled. Otherwise this transform will not be used.\r\nAugmentation will be uniformly distributed among enabled transforms.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "boolean"
+ },
+ "readOnly": false,
+ "x-nullable": true
+ }
+ }
+ },
+ "ImageRegion": {
+ "required": [
+ "tagId",
+ "left",
+ "top",
+ "width",
+ "height"
+ ],
+ "type": "object",
+ "properties": {
+ "regionId": {
+ "format": "uuid",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "tagName": {
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "created": {
+ "format": "date-time",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "tagId": {
+ "format": "uuid",
+ "description": "Id of the tag associated with this region.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "left": {
+ "format": "float",
+ "description": "Coordinate of the left boundary.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "top": {
+ "format": "float",
+ "description": "Coordinate of the top boundary.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "width": {
+ "format": "float",
+ "description": "Width.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "height": {
+ "format": "float",
+ "description": "Height.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "ImageRegionCreateBatch": {
+ "description": "Batch of image region information to create.",
+ "type": "object",
+ "properties": {
+ "regions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageRegionCreateEntry",
+ "x-nullable": false
+ },
+ "readOnly": false
+ }
+ }
+ },
+ "ImageRegionCreateEntry": {
+ "description": "Entry associating a region to an image.",
+ "required": [
+ "imageId",
+ "tagId",
+ "left",
+ "top",
+ "width",
+ "height"
+ ],
+ "type": "object",
+ "properties": {
+ "imageId": {
+ "format": "uuid",
+ "description": "Id of the image.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "tagId": {
+ "format": "uuid",
+ "description": "Id of the tag associated with this region.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "left": {
+ "format": "float",
+ "description": "Coordinate of the left boundary.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "top": {
+ "format": "float",
+ "description": "Coordinate of the top boundary.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "width": {
+ "format": "float",
+ "description": "Width.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "height": {
+ "format": "float",
+ "description": "Height.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "ImageRegionCreateResult": {
+ "required": [
+ "tagId",
+ "left",
+ "top",
+ "width",
+ "height"
+ ],
+ "type": "object",
+ "properties": {
+ "imageId": {
+ "format": "uuid",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "regionId": {
+ "format": "uuid",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "tagName": {
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "created": {
+ "format": "date-time",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "tagId": {
+ "format": "uuid",
+ "description": "Id of the tag associated with this region.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "left": {
+ "format": "float",
+ "description": "Coordinate of the left boundary.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "top": {
+ "format": "float",
+ "description": "Coordinate of the top boundary.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "width": {
+ "format": "float",
+ "description": "Width.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "height": {
+ "format": "float",
+ "description": "Height.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "ImageRegionCreateSummary": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageRegionCreateResult"
+ },
+ "readOnly": false,
+ "x-nullable": true
+ },
+ "duplicated": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageRegionCreateEntry"
+ },
+ "readOnly": false,
+ "x-nullable": true
+ },
+ "exceeded": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageRegionCreateEntry"
+ },
+ "readOnly": false,
+ "x-nullable": true
+ }
+ }
+ },
+ "ImageRegionProposal": {
+ "type": "object",
+ "properties": {
+ "projectId": {
+ "format": "uuid",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "imageId": {
+ "format": "uuid",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "proposals": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RegionProposal",
+ "x-nullable": false
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "ImageTag": {
+ "type": "object",
+ "properties": {
+ "tagId": {
+ "format": "uuid",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "tagName": {
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "created": {
+ "format": "date-time",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ }
+ }
+ },
+ "ImageTagCreateBatch": {
+ "description": "Batch of image tags.",
+ "type": "object",
+ "properties": {
+ "tags": {
+ "description": "Image Tag entries to include in this batch.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageTagCreateEntry",
+ "x-nullable": false
+ },
+ "readOnly": false
+ }
+ }
+ },
+ "ImageTagCreateEntry": {
+ "description": "Entry associating a tag to an image.",
+ "type": "object",
+ "properties": {
+ "imageId": {
+ "format": "uuid",
+ "description": "Id of the image.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "tagId": {
+ "format": "uuid",
+ "description": "Id of the tag.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "ImageTagCreateSummary": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageTagCreateEntry"
+ },
+ "readOnly": false,
+ "x-nullable": true
+ },
+ "duplicated": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageTagCreateEntry"
+ },
+ "readOnly": false,
+ "x-nullable": true
+ },
+ "exceeded": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageTagCreateEntry"
+ },
+ "readOnly": false,
+ "x-nullable": true
+ }
+ }
+ },
+ "ImageUrl": {
+ "description": "Image url.",
+ "required": [
+ "url"
+ ],
+ "type": "object",
+ "properties": {
+ "url": {
+ "description": "Url of the image.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "ImageUrlCreateBatch": {
+ "type": "object",
+ "properties": {
+ "images": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageUrlCreateEntry",
+ "x-nullable": false
+ },
+ "readOnly": false
+ },
+ "tagIds": {
+ "type": "array",
+ "items": {
+ "format": "uuid",
+ "type": "string",
+ "x-nullable": false
+ },
+ "readOnly": false
+ },
+ "metadata": {
+ "description": "The metadata of image. Limited to 10 key-value pairs per image. The length of key is limited to 128. The length of value is limited to 256.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "readOnly": false,
+ "x-nullable": true
+ }
+ }
+ },
+ "ImageUrlCreateEntry": {
+ "required": [
+ "url"
+ ],
+ "type": "object",
+ "properties": {
+ "url": {
+ "description": "Url of the image.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "tagIds": {
+ "type": "array",
+ "items": {
+ "format": "uuid",
+ "type": "string",
+ "x-nullable": false
+ },
+ "readOnly": false
+ },
+ "regions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Region",
+ "x-nullable": false
+ },
+ "readOnly": false
+ }
+ }
+ },
+ "Iteration": {
+ "description": "Iteration model to be sent over JSON.",
+ "required": [
+ "name"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "format": "uuid",
+ "description": "Gets the id of the iteration.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "name": {
+ "description": "Gets or sets the name of the iteration.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "status": {
+ "description": "Gets the current iteration status.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "created": {
+ "format": "date-time",
+ "description": "Gets the time this iteration was completed.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "lastModified": {
+ "format": "date-time",
+ "description": "Gets the time this iteration was last modified.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "trainedAt": {
+ "format": "date-time",
+ "description": "Gets the time this iteration was last modified.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": true
+ },
+ "projectId": {
+ "format": "uuid",
+ "description": "Gets the project id of the iteration.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "exportable": {
+ "description": "Whether the iteration can be exported to another format for download.",
+ "type": "boolean",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "exportableTo": {
+ "description": "A set of platforms this iteration can export to.",
+ "type": "array",
+ "items": {
+ "enum": [
+ "CoreML",
+ "TensorFlow",
+ "DockerFile",
+ "ONNX",
+ "VAIDK",
+ "OpenVino"
+ ],
+ "type": "string",
+ "x-nullable": false
+ },
+ "readOnly": true
+ },
+ "domainId": {
+ "format": "uuid",
+ "description": "Get or sets a guid of the domain the iteration has been trained on.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": true
+ },
+ "classificationType": {
+ "description": "Gets the classification type of the project.",
+ "enum": [
+ "Multiclass",
+ "Multilabel"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": true,
+ "x-ms-enum": {
+ "name": "Classifier",
+ "modelAsString": true
+ }
+ },
+ "trainingType": {
+ "description": "Gets the training type of the iteration.",
+ "enum": [
+ "Regular",
+ "Advanced"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "TrainingType",
+ "modelAsString": true
+ }
+ },
+ "reservedBudgetInHours": {
+ "format": "int32",
+ "description": "Gets the reserved advanced training budget for the iteration.",
+ "type": "integer",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "trainingTimeInMinutes": {
+ "format": "int32",
+ "description": "Gets the training time for the iteration.",
+ "type": "integer",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "publishName": {
+ "description": "Name of the published model.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "originalPublishResourceId": {
+ "description": "Resource Provider Id this iteration was originally published to.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "customBaseModelInfo": {
+ "$ref": "#/definitions/CustomBaseModelInfo",
+ "description": "Information of the previously trained iteration which provides the base model for current iteration's training.\r\nDefault value of null specifies that no previously trained iteration will be used for incremental learning.",
+ "readOnly": true
+ },
+ "trainingErrorDetails": {
+ "description": "Training error details, when training fails.\r\nValue is null when training succeeds.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IterationPerformance": {
+ "description": "Represents the detailed performance data for a trained iteration.",
+ "type": "object",
+ "properties": {
+ "perTagPerformance": {
+ "description": "Gets the per-tag performance details for this iteration.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TagPerformance",
+ "x-nullable": false
+ },
+ "readOnly": true
+ },
+ "precision": {
+ "format": "float",
+ "description": "Gets the precision.",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "precisionStdDeviation": {
+ "format": "float",
+ "description": "Gets the standard deviation for the precision.",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "recall": {
+ "format": "float",
+ "description": "Gets the recall.",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "recallStdDeviation": {
+ "format": "float",
+ "description": "Gets the standard deviation for the recall.",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "averagePrecision": {
+ "format": "float",
+ "description": "Gets the average precision when applicable.",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": true
+ }
+ }
+ },
+ "ModelInformation": {
+ "description": "Model information.",
+ "required": [
+ "description"
+ ],
+ "type": "object",
+ "properties": {
+ "estimatedModelSizeInMegabytes": {
+ "format": "int32",
+ "description": "Estimation of the exported FP32 Onnx model size (2 tags) in megabytes. This information is not present if the model cannot be exported.",
+ "type": "integer",
+ "readOnly": false
+ },
+ "description": {
+ "description": "Model description.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "Prediction": {
+ "description": "Prediction result.",
+ "type": "object",
+ "properties": {
+ "probability": {
+ "format": "float",
+ "description": "Probability of the tag.",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "tagId": {
+ "format": "uuid",
+ "description": "Id of the predicted tag.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "tagName": {
+ "description": "Name of the predicted tag.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": true
+ },
+ "boundingBox": {
+ "$ref": "#/definitions/BoundingBox",
+ "description": "Bounding box of the prediction.",
+ "readOnly": true,
+ "x-nullable": true
+ },
+ "tagType": {
+ "description": "Type of the predicted tag.",
+ "enum": [
+ "Regular",
+ "Negative",
+ "GeneralProduct"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": true,
+ "x-ms-enum": {
+ "name": "TagType",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "PredictionQueryResult": {
+ "description": "Query result of the prediction images that were sent to your prediction endpoint.",
+ "type": "object",
+ "properties": {
+ "token": {
+ "$ref": "#/definitions/PredictionQueryToken",
+ "description": "Prediction Query Token.",
+ "readOnly": false
+ },
+ "results": {
+ "description": "Result of an image prediction request.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StoredImagePrediction",
+ "x-nullable": false
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "PredictionQueryTag": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "format": "uuid",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "minThreshold": {
+ "format": "float",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "maxThreshold": {
+ "format": "float",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "PredictionQueryToken": {
+ "type": "object",
+ "properties": {
+ "session": {
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "continuation": {
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "maxCount": {
+ "format": "int32",
+ "type": "integer",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "orderBy": {
+ "enum": [
+ "Newest",
+ "Oldest",
+ "Suggested"
+ ],
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "OrderBy",
+ "modelAsString": true
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PredictionQueryTag",
+ "x-nullable": false
+ },
+ "readOnly": false
+ },
+ "iterationId": {
+ "format": "uuid",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": true
+ },
+ "startTime": {
+ "format": "date-time",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": true
+ },
+ "endTime": {
+ "format": "date-time",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": true
+ },
+ "application": {
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "Project": {
+ "description": "Represents a project.",
+ "required": [
+ "name",
+ "description",
+ "settings"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "format": "uuid",
+ "description": "Gets the project id.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "name": {
+ "description": "Gets or sets the name of the project.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "description": {
+ "description": "Gets or sets the description of the project.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": true
+ },
+ "settings": {
+ "$ref": "#/definitions/ProjectSettings",
+ "description": "Gets or sets the project settings.",
+ "readOnly": false
+ },
+ "created": {
+ "format": "date-time",
+ "description": "Gets the date this project was created.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "lastModified": {
+ "format": "date-time",
+ "description": "Gets the date this project was last modified.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "thumbnailUri": {
+ "description": "Gets the thumbnail url representing the image. If VNET feature is enabled this will be a relative path to be used with GetArtifact, otherwise this will be an absolute URI to the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "drModeEnabled": {
+ "description": "Gets if the Disaster Recovery (DR) mode is on, indicating the project is temporarily read-only.",
+ "type": "boolean",
+ "readOnly": true,
+ "x-nullable": true
+ },
+ "status": {
+ "description": "Gets the status of the project.",
+ "enum": [
+ "Succeeded",
+ "Importing",
+ "Failed"
+ ],
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "ProjectStatus",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "ProjectExport": {
+ "description": "Represents information about a project export.",
+ "type": "object",
+ "properties": {
+ "iterationCount": {
+ "format": "int32",
+ "description": "Count of iterations that will be exported.",
+ "type": "integer",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "imageCount": {
+ "format": "int32",
+ "description": "Count of images that will be exported.",
+ "type": "integer",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "tagCount": {
+ "format": "int32",
+ "description": "Count of tags that will be exported.",
+ "type": "integer",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "regionCount": {
+ "format": "int32",
+ "description": "Count of regions that will be exported.",
+ "type": "integer",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "estimatedImportTimeInMS": {
+ "format": "int32",
+ "description": "Estimated time this project will take to import, can change based on network connectivity and load between\r\nsource and destination regions.",
+ "type": "integer",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "token": {
+ "description": "Opaque token that should be passed to ImportProject to perform the import. This token grants access to import this\r\nproject to all that have the token.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ }
+ }
+ },
+ "ProjectSettings": {
+ "description": "Represents settings associated with a project.",
+ "type": "object",
+ "properties": {
+ "domainId": {
+ "format": "uuid",
+ "description": "Gets or sets the id of the Domain to use with this project.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "classificationType": {
+ "description": "Gets or sets the classification type of the project.",
+ "enum": [
+ "Multiclass",
+ "Multilabel"
+ ],
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": true,
+ "x-ms-enum": {
+ "name": "Classifier",
+ "modelAsString": true
+ }
+ },
+ "targetExportPlatforms": {
+ "description": "A list of ExportPlatform that the trained model should be able to support.",
+ "type": "array",
+ "items": {
+ "enum": [
+ "CoreML",
+ "TensorFlow",
+ "DockerFile",
+ "ONNX",
+ "VAIDK",
+ "OpenVino"
+ ],
+ "type": "string",
+ "x-nullable": false
+ },
+ "readOnly": false
+ },
+ "useNegativeSet": {
+ "description": "Indicates if negative set is being used.",
+ "type": "boolean",
+ "readOnly": true,
+ "x-nullable": true
+ },
+ "detectionParameters": {
+ "description": "Detection parameters in use, if any.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "imageProcessingSettings": {
+ "$ref": "#/definitions/ImageProcessingSettings",
+ "description": "Gets or sets image preprocessing settings.",
+ "readOnly": false
+ },
+ "exportModelContainerUri": {
+ "description": "The uri to the Azure Storage container that will be used to store exported models.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": true
+ },
+ "notificationQueueUri": {
+ "description": "The uri to the Azure Storage queue that will be used to send project-related notifications. See Storage notifications documentation for setup and message format.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": true
+ }
+ }
+ },
+ "Region": {
+ "required": [
+ "tagId",
+ "left",
+ "top",
+ "width",
+ "height"
+ ],
+ "type": "object",
+ "properties": {
+ "tagId": {
+ "format": "uuid",
+ "description": "Id of the tag associated with this region.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "left": {
+ "format": "float",
+ "description": "Coordinate of the left boundary.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "top": {
+ "format": "float",
+ "description": "Coordinate of the top boundary.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "width": {
+ "format": "float",
+ "description": "Width.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "height": {
+ "format": "float",
+ "description": "Height.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "RegionProposal": {
+ "type": "object",
+ "properties": {
+ "confidence": {
+ "format": "float",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "boundingBox": {
+ "$ref": "#/definitions/BoundingBox",
+ "readOnly": true
+ }
+ }
+ },
+ "StoredImagePrediction": {
+ "description": "Result of an image prediction request.",
+ "type": "object",
+ "properties": {
+ "resizedImageUri": {
+ "description": "The URI to the (resized) prediction image. If VNET feature is enabled this will be a relative path to be used with GetArtifact, otherwise this will be an absolute URI to the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "thumbnailUri": {
+ "description": "The URI to the thumbnail of the original prediction image. If VNET feature is enabled this will be a relative path to be used with GetArtifact, otherwise this will be an absolute URI to the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "originalImageUri": {
+ "description": "The URI to the original prediction image. If VNET feature is enabled this will be a relative path to be used with GetArtifact, otherwise this will be an absolute URI to the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "domain": {
+ "format": "uuid",
+ "description": "Domain used for the prediction.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "id": {
+ "format": "uuid",
+ "description": "Prediction Id.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "project": {
+ "format": "uuid",
+ "description": "Project Id.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "iteration": {
+ "format": "uuid",
+ "description": "Iteration Id.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "created": {
+ "format": "date-time",
+ "description": "Date this prediction was created.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "predictions": {
+ "description": "List of predictions.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Prediction",
+ "x-nullable": false
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "StoredSuggestedTagAndRegion": {
+ "description": "Result of a suggested tags and regions request of the untagged image.",
+ "type": "object",
+ "properties": {
+ "width": {
+ "format": "int32",
+ "description": "Width of the resized image.",
+ "type": "integer",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "height": {
+ "format": "int32",
+ "description": "Height of the resized image.",
+ "type": "integer",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "resizedImageUri": {
+ "description": "The URI to the (resized) prediction image. If VNET feature is enabled this will be a relative path to be used with GetArtifact, otherwise this will be an absolute URI to the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "thumbnailUri": {
+ "description": "The URI to the thumbnail of the original prediction image. If VNET feature is enabled this will be a relative path to be used with GetArtifact, otherwise this will be an absolute URI to the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "originalImageUri": {
+ "description": "The URI to the original prediction image. If VNET feature is enabled this will be a relative path to be used with GetArtifact, otherwise this will be an absolute URI to the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "domain": {
+ "format": "uuid",
+ "description": "Domain used for the prediction.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "id": {
+ "format": "uuid",
+ "description": "Prediction Id.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "project": {
+ "format": "uuid",
+ "description": "Project Id.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "iteration": {
+ "format": "uuid",
+ "description": "Iteration Id.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "created": {
+ "format": "date-time",
+ "description": "Date this prediction was created.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "predictions": {
+ "description": "List of predictions.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Prediction",
+ "x-nullable": false
+ },
+ "readOnly": true
+ },
+ "predictionUncertainty": {
+ "format": "double",
+ "description": "Uncertainty (entropy) of suggested tags or regions per image.",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": false
+ }
+ }
+ },
+ "SuggestedTagAndRegion": {
+ "description": "Result of a suggested tags and regions request.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "format": "uuid",
+ "description": "Prediction Id.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "project": {
+ "format": "uuid",
+ "description": "Project Id.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "iteration": {
+ "format": "uuid",
+ "description": "Iteration Id.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "created": {
+ "format": "date-time",
+ "description": "Date this prediction was created.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "predictions": {
+ "description": "List of predictions.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Prediction",
+ "x-nullable": false
+ },
+ "readOnly": true
+ },
+ "predictionUncertainty": {
+ "format": "double",
+ "description": "Uncertainty (entropy) of suggested tags or regions per image.",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": false
+ }
+ }
+ },
+ "SuggestedTagAndRegionQuery": {
+ "description": "The array of result images and token containing session and continuation Ids for the next query.",
+ "type": "object",
+ "properties": {
+ "token": {
+ "$ref": "#/definitions/SuggestedTagAndRegionQueryToken",
+ "description": "Contains properties we need to fetch suggested tags for.",
+ "readOnly": false
+ },
+ "results": {
+ "description": "Result of a suggested tags and regions request of the untagged image.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StoredSuggestedTagAndRegion",
+ "x-nullable": false
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "SuggestedTagAndRegionQueryToken": {
+ "description": "Contains properties we need to fetch suggested tags for. For the first call, Session and continuation set to null.\r\nThen on subsequent calls, uses the session/continuation from the previous SuggestedTagAndRegionQuery result to fetch additional results.",
+ "type": "object",
+ "properties": {
+ "tagIds": {
+ "description": "Existing TagIds in project to filter suggested tags on.",
+ "type": "array",
+ "items": {
+ "format": "uuid",
+ "type": "string",
+ "x-nullable": false
+ },
+ "readOnly": false
+ },
+ "threshold": {
+ "format": "double",
+ "description": "Confidence threshold to filter suggested tags on.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "session": {
+ "description": "SessionId for database query. Initially set to null but later used to paginate.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "continuation": {
+ "description": "Continuation Id for database pagination. Initially null but later used to paginate.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "maxCount": {
+ "format": "int32",
+ "description": "Maximum number of results you want to be returned in the response.",
+ "type": "integer",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "sortBy": {
+ "description": "OrderBy. Ordering mechanism for your results.",
+ "enum": [
+ "UncertaintyAscending",
+ "UncertaintyDescending"
+ ],
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "SortBy",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "Tag": {
+ "description": "Represents a Tag.",
+ "required": [
+ "name",
+ "description",
+ "type"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "format": "uuid",
+ "description": "Gets the Tag ID.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "name": {
+ "description": "Gets or sets the name of the tag.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false
+ },
+ "description": {
+ "description": "Gets or sets the description of the tag.",
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": true
+ },
+ "type": {
+ "description": "Gets or sets the type of the tag.",
+ "enum": [
+ "Regular",
+ "Negative",
+ "GeneralProduct"
+ ],
+ "type": "string",
+ "readOnly": false,
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "TagType",
+ "modelAsString": true
+ }
+ },
+ "imageCount": {
+ "format": "int32",
+ "description": "Gets the number of images with this tag.",
+ "type": "integer",
+ "readOnly": true,
+ "x-nullable": false
+ }
+ }
+ },
+ "TagFilter": {
+ "description": "Model that query for counting of images whose suggested tags match given tags and their probability are greater than or equal to the given threshold.",
+ "type": "object",
+ "properties": {
+ "tagIds": {
+ "description": "Existing TagIds in project to get suggested tags count for.",
+ "type": "array",
+ "items": {
+ "format": "uuid",
+ "type": "string",
+ "x-nullable": false
+ },
+ "readOnly": false
+ },
+ "threshold": {
+ "format": "double",
+ "description": "Confidence threshold to filter suggested tags on.",
+ "type": "number",
+ "readOnly": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "TagPerformance": {
+ "description": "Represents performance data for a particular tag in a trained iteration.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "format": "uuid",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "precision": {
+ "format": "float",
+ "description": "Gets the precision.",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "precisionStdDeviation": {
+ "format": "float",
+ "description": "Gets the standard deviation for the precision.",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "recall": {
+ "format": "float",
+ "description": "Gets the recall.",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "recallStdDeviation": {
+ "format": "float",
+ "description": "Gets the standard deviation for the recall.",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "averagePrecision": {
+ "format": "float",
+ "description": "Gets the average precision when applicable.",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": true
+ }
+ }
+ },
+ "TrainingParameters": {
+ "description": "Parameters used for training.",
+ "type": "object",
+ "properties": {
+ "selectedTags": {
+ "description": "List of tags selected for this training session, other tags in the project will be ignored.",
+ "type": "array",
+ "items": {
+ "format": "uuid",
+ "type": "string",
+ "x-nullable": false
+ },
+ "readOnly": false
+ },
+ "customBaseModelInfo": {
+ "$ref": "#/definitions/CustomBaseModelInfo",
+ "description": "Information of the previously trained iteration which provides the base model for current iteration's training.",
+ "readOnly": false
+ }
+ }
+ }
+ },
+ "parameters": {
+ "Endpoint": {
+ "name": "Endpoint",
+ "in": "path",
+ "description": "Supported Cognitive Services endpoints.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "client",
+ "x-ms-skip-url-encoding": true
+ }
+ },
+ "securityDefinitions": {
+ "apim_key": {
+ "type": "apiKey",
+ "name": "Training-Key",
+ "in": "header"
+ }
+ },
+ "security": [
+ {
+ "apim_key": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{Endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImageRegions.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImageRegions.json
new file mode 100644
index 000000000000..9f554c49071c
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImageRegions.json
@@ -0,0 +1,81 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "batch": {
+ "regions": [
+ {
+ "imageId": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "left": 0.25,
+ "top": 0.25,
+ "width": 0.25,
+ "height": 0.25
+ },
+ {
+ "imageId": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "left": 0.35,
+ "top": 0.35,
+ "width": 0.25,
+ "height": 0.25
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "created": [
+ {
+ "imageId": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "left": 0.25,
+ "top": 0.25,
+ "width": 0.25,
+ "height": 0.25
+ },
+ {
+ "imageId": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "left": 0.35,
+ "top": 0.35,
+ "width": 0.25,
+ "height": 0.25
+ }
+ ],
+ "duplicated": [],
+ "exceeded": []
+ }
+ },
+ "207": {
+ "headers": {},
+ "body": {
+ "created": [
+ {
+ "imageId": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "left": 0.25,
+ "top": 0.25,
+ "width": 0.25,
+ "height": 0.25
+ }
+ ],
+ "duplicated": [],
+ "exceeded": [
+ {
+ "imageId": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "left": 0.35,
+ "top": 0.35,
+ "width": 0.25,
+ "height": 0.25
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImageTags.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImageTags.json
new file mode 100644
index 000000000000..5b7395424693
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImageTags.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "batch": {
+ "tags": [
+ {
+ "imageId": "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758",
+ "tagId": "349d72ac-0948-4d51-b1e4-c14a1f9b848a"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "created": [
+ {
+ "imageId": "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758",
+ "tagId": "349d72ac-0948-4d51-b1e4-c14a1f9b848a"
+ }
+ ],
+ "duplicated": null,
+ "exceeded": null
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImagesFromData.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImagesFromData.json
new file mode 100644
index 000000000000..05b0b07590b5
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImagesFromData.json
@@ -0,0 +1,94 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "tagIds": [
+ "b607964f-7bd6-4a3b-a869-6791fb6aab87"
+ ],
+ "imageData": "multipart data"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "isBatchSuccessful": true,
+ "images": [
+ {
+ "sourceUrl": "\"hemlock_10.jpg\"",
+ "status": "OK",
+ "image": {
+ "id": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "created": "2017-12-19T15:56:10Z",
+ "width": 1095,
+ "height": 900,
+ "resizedImageUri": "{Resized Image Uri}",
+ "originalImageUri": "{Image Uri}",
+ "thumbnailUri": "{Thumbnail Uri}",
+ "tags": [
+ {
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "created": "2017-12-19T15:56:09Z",
+ "tagName": "tag 1"
+ }
+ ]
+ }
+ },
+ {
+ "sourceUrl": "\"hemlock_6.jpg\"",
+ "status": "OK",
+ "image": {
+ "id": "f1855a92-b873-47e7-b513-f07a667ceda1",
+ "created": "2017-12-19T15:56:10Z",
+ "width": 900,
+ "height": 1531,
+ "resizedImageUri": "{Resized Image Uri}",
+ "originalImageUri": "{Image Uri}",
+ "thumbnailUri": "{Thumbnail Uri}",
+ "tags": [
+ {
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "created": "2017-12-19T15:56:09Z",
+ "tagName": "tag 1"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ "207": {
+ "headers": {},
+ "body": {
+ "isBatchSuccessful": false,
+ "images": [
+ {
+ "sourceUrl": "\"hemlock_10.jpg\"",
+ "status": "OK",
+ "image": {
+ "id": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "created": "2017-12-19T15:56:10Z",
+ "width": 1095,
+ "height": 900,
+ "resizedImageUri": "{Resized Image Uri}",
+ "originalImageUri": "{Image Uri}",
+ "thumbnailUri": "{Thumbnail Uri}",
+ "tags": [
+ {
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "created": "2017-12-19T15:56:09Z",
+ "tagName": "tag 1"
+ }
+ ]
+ }
+ },
+ {
+ "sourceUrl": "\"hemlock_6.jpg\"",
+ "status": "ErrorLimitExceed"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImagesFromFiles.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImagesFromFiles.json
new file mode 100644
index 000000000000..6853f6ab1401
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImagesFromFiles.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "tagIds": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "batch": {
+ "images": [
+ {
+ "name": "hemlock_10.jpg",
+ "contents": "{image contents}"
+ }
+ ],
+ "tagIds": [
+ "b607964f-7bd6-4a3b-a869-6791fb6aab87"
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "isBatchSuccessful": true,
+ "images": [
+ {
+ "sourceUrl": "\"hemlock_10.jpg\"",
+ "status": "OK",
+ "image": {
+ "id": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "created": "2017-12-19T15:56:10Z",
+ "width": 1095,
+ "height": 900,
+ "resizedImageUri": "{Resized Image Uri}",
+ "originalImageUri": "{Image Uri}",
+ "thumbnailUri": "{Thumbnail Uri}",
+ "tags": [
+ {
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "created": "2017-12-19T15:56:09Z",
+ "tagName": "tag 1"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ "207": {
+ "headers": {},
+ "body": {
+ "isBatchSuccessful": false,
+ "images": [
+ {
+ "sourceUrl": "\"hemlock_10.jpg\"",
+ "status": "OK",
+ "image": {
+ "id": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "created": "2017-12-19T15:56:10Z",
+ "width": 1095,
+ "height": 900,
+ "resizedImageUri": "{Resized Image Uri}",
+ "originalImageUri": "{Image Uri}",
+ "thumbnailUri": "{Thumbnail Uri}",
+ "tags": [
+ {
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "created": "2017-12-19T15:56:09Z",
+ "tagName": "tag 1"
+ }
+ ]
+ }
+ },
+ {
+ "sourceUrl": "{url}",
+ "status": "ErrorLimitExceed"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImagesFromPredictions.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImagesFromPredictions.json
new file mode 100644
index 000000000000..1970c61d0d39
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImagesFromPredictions.json
@@ -0,0 +1,81 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "tagIds": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "batch": {
+ "images": [
+ {
+ "id": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9"
+ }
+ ],
+ "tagIds": [
+ "b607964f-7bd6-4a3b-a869-6791fb6aab87"
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "isBatchSuccessful": true,
+ "images": [
+ {
+ "sourceUrl": "\"hemlock_10.jpg\"",
+ "status": "OK",
+ "image": {
+ "id": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "created": "2017-12-19T15:56:10Z",
+ "width": 1095,
+ "height": 900,
+ "resizedImageUri": "{Resized Image Uri}",
+ "originalImageUri": "{Image Uri}",
+ "thumbnailUri": "{Thumbnail Uri}",
+ "tags": [
+ {
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "created": "2017-12-19T15:56:09Z",
+ "tagName": "tag 1"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ "207": {
+ "headers": {},
+ "body": {
+ "isBatchSuccessful": false,
+ "images": [
+ {
+ "sourceUrl": "\"hemlock_10.jpg\"",
+ "status": "OK",
+ "image": {
+ "id": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "created": "2017-12-19T15:56:10Z",
+ "width": 1095,
+ "height": 900,
+ "resizedImageUri": "{Resized Image Uri}",
+ "originalImageUri": "{Image Uri}",
+ "thumbnailUri": "{Thumbnail Uri}",
+ "tags": [
+ {
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "created": "2017-12-19T15:56:09Z",
+ "tagName": "tag 1"
+ }
+ ]
+ }
+ },
+ {
+ "sourceUrl": "{url}",
+ "status": "ErrorLimitExceed"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImagesFromUrls.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImagesFromUrls.json
new file mode 100644
index 000000000000..a3ecd489a1f7
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateImagesFromUrls.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "tagIds": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "batch": {
+ "images": [
+ {
+ "url": "{url to image}"
+ }
+ ],
+ "tagIds": [
+ "b607964f-7bd6-4a3b-a869-6791fb6aab87"
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "isBatchSuccessful": true,
+ "images": [
+ {
+ "sourceUrl": "{url to image}",
+ "status": "OK",
+ "image": {
+ "id": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "created": "2017-12-19T15:56:10Z",
+ "width": 1095,
+ "height": 900,
+ "resizedImageUri": "{Resized Image Uri}",
+ "originalImageUri": "{Image Uri}",
+ "thumbnailUri": "{Thumbnail Uri}",
+ "tags": [
+ {
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "created": "2017-12-19T15:56:09Z",
+ "tagName": "tag name"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ "207": {
+ "headers": {},
+ "body": {
+ "isBatchSuccessful": false,
+ "images": [
+ {
+ "sourceUrl": "{url to image}",
+ "status": "OK",
+ "image": {
+ "id": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "created": "2017-12-19T15:56:10Z",
+ "width": 1095,
+ "height": 900,
+ "resizedImageUri": "{Resized Image Uri}",
+ "originalImageUri": "{Image Uri}",
+ "thumbnailUri": "{Thumbnail Uri}",
+ "tags": [
+ {
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "created": "2017-12-19T15:56:09Z",
+ "tagName": "tag name"
+ }
+ ]
+ }
+ },
+ {
+ "sourceUrl": "{url to image}",
+ "status": "ErrorSource",
+ "image": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateProject.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateProject.json
new file mode 100644
index 000000000000..88f852ced738
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateProject.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "name": "My New Project",
+ "description": "A test project",
+ "domainId": "ee85a74c-405e-4adc-bb47-ffa8ca0c9f31"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "name": "My New Project",
+ "description": "A test project",
+ "settings": {
+ "domainId": "ee85a74c-405e-4adc-bb47-ffa8ca0c9f31"
+ },
+ "created": "2017-12-18T05:43:18Z",
+ "lastModified": "2017-12-18T05:43:18Z",
+ "thumbnailUri": ""
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateTag.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateTag.json
new file mode 100644
index 000000000000..ed19817462ae
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/CreateTag.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "name": "Tag1",
+ "description": "Description of Tag1",
+ "body": ""
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "9e27bc1b-7ae7-4e3b-a4e5-36153479dc01",
+ "name": "Tag1",
+ "description": "Description of Tag1",
+ "type": "Regular",
+ "imageCount": 0
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteImageRegions.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteImageRegions.json
new file mode 100644
index 000000000000..8931d4e2629e
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteImageRegions.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "regionIds": [
+ ""
+ ]
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteImageTags.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteImageTags.json
new file mode 100644
index 000000000000..d6a188454e9b
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteImageTags.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "imageIds": [
+ "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758",
+ "cf0f83fb-ebaa-4b25-8e34-613a6a0b8a12"
+ ],
+ "tagIds": [
+ "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758",
+ "cf0f83fb-ebaa-4b25-8e34-613a6a0b8a12"
+ ]
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteImages.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteImages.json
new file mode 100644
index 000000000000..ccc479209fd2
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteImages.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "imageIds": [
+ "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758",
+ "cf0f83fb-ebaa-4b25-8e34-613a6a0b8a12"
+ ]
+ },
+ "responses": {
+ "204": {},
+ "202": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteIteration.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteIteration.json
new file mode 100644
index 000000000000..d1f9b7629958
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteIteration.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "iterationId": "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeletePrediction.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeletePrediction.json
new file mode 100644
index 000000000000..c6b2d5c0bc58
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeletePrediction.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "ids": [
+ "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758",
+ "cf0f83fb-ebaa-4b25-8e34-613a6a0b8a12"
+ ]
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteProject.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteProject.json
new file mode 100644
index 000000000000..2b4cb5723a6a
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteProject.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteTag.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteTag.json
new file mode 100644
index 000000000000..e9f802505a09
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/DeleteTag.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "tagId": "9e27bc1b-7ae7-4e3b-a4e5-36153479dc01"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/ExportIteration.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/ExportIteration.json
new file mode 100644
index 000000000000..1bbfa05a5d86
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/ExportIteration.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "iterationId": "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758",
+ "platform": "TensorFlow"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "platform": "TensorFlow",
+ "status": "Exporting",
+ "downloadUri": "",
+ "newerVersionAvailable": false
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/ExportProject.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/ExportProject.json
new file mode 100644
index 000000000000..8d59acb577d1
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/ExportProject.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "token": ""
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetArtifact.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetArtifact.json
new file mode 100644
index 000000000000..e48a4cf6fd86
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetArtifact.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "path": "i-40b66b39b86b4583be8c0fe223aa9ec5/t-5c882c62ca2b4458b39a2041b111dd73"
+ },
+ "responses": {
+ "200": {
+ "body": "{file}"
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetDomain.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetDomain.json
new file mode 100644
index 000000000000..c6702b3a8f29
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetDomain.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "domainId": "b30a91ae-e3c1-4f73-a81e-c270bff27c39"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "b30a91ae-e3c1-4f73-a81e-c270bff27c39",
+ "name": "Retail",
+ "type": "Classification",
+ "exportable": false,
+ "enabled": true
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetDomains.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetDomains.json
new file mode 100644
index 000000000000..a10887726fcb
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetDomains.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "id": "ee85a74c-405e-4adc-bb47-ffa8ca0c9f31",
+ "name": "General",
+ "type": "Classification",
+ "exportable": false,
+ "enabled": true
+ },
+ {
+ "id": "c151d5b5-dd07-472a-acc8-15d29dea8518",
+ "name": "Food",
+ "type": "Classification",
+ "exportable": false,
+ "enabled": true
+ },
+ {
+ "id": "ca455789-012d-4b50-9fec-5bb63841c793",
+ "name": "Landmarks",
+ "type": "Classification",
+ "exportable": false,
+ "enabled": true
+ },
+ {
+ "id": "b30a91ae-e3c1-4f73-a81e-c270bff27c39",
+ "name": "Retail",
+ "type": "Classification",
+ "exportable": false,
+ "enabled": true
+ },
+ {
+ "id": "45badf75-3591-4f26-a705-45678d3e9f5f",
+ "name": "Adult",
+ "type": "Classification",
+ "exportable": false,
+ "enabled": true
+ },
+ {
+ "id": "0732100f-1a38-4e49-a514-c9b44c697ab5",
+ "name": "General (compact)",
+ "type": "Classification",
+ "exportable": false,
+ "enabled": true
+ },
+ {
+ "id": "b5cfd229-2ac7-4b2b-8d0a-2b0661344894",
+ "name": "Landmarks (compact)",
+ "type": "Classification",
+ "exportable": false,
+ "enabled": true
+ },
+ {
+ "id": "6b4faeda-8396-481b-9f8b-177b9fa3097f",
+ "name": "Retail (compact)",
+ "type": "Classification",
+ "exportable": false,
+ "enabled": true
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetExports.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetExports.json
new file mode 100644
index 000000000000..1267168dbb4c
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetExports.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "iterationId": "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "platform": "TensorFlow",
+ "status": "Done",
+ "newerVersionAvailable": false,
+ "downloadUri": "{Download URI}"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImageCount.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImageCount.json
new file mode 100644
index 000000000000..ee6e4980eefa
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImageCount.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": 12
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImagePerformanceCount.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImagePerformanceCount.json
new file mode 100644
index 000000000000..c57ffd50669b
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImagePerformanceCount.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "iterationId": "cf0f83fb-ebaa-4b25-8e34-613a6a0b8a12",
+ "tagIds": [
+ "b5f7e6a2-a481-49a6-afec-a7cef1af3544"
+ ]
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": "1"
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImagePerformances.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImagePerformances.json
new file mode 100644
index 000000000000..dfe6eb5a7208
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImagePerformances.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "iterationId": "b7b9d99c-a2c6-4658-9900-a98d2ff5bc66",
+ "tagIds": [
+ ""
+ ],
+ "orderBy": "Newest"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "id": "dfd2d346-3ed5-4e1e-857d-af4e32cec042",
+ "created": "2018-01-31T20:18:26Z",
+ "predictions": [
+ {
+ "tagId": "b5f7e6a2-a481-49a6-afec-a7cef1af3544",
+ "tagName": "Tag 1",
+ "probability": 1.0,
+ "boundingBox": {
+ "left": 0.25,
+ "top": 0.25,
+ "width": 0.25,
+ "height": 0.25
+ }
+ }
+ ],
+ "width": 600,
+ "height": 1600,
+ "imageUri": "",
+ "thumbnailUri": "",
+ "tags": [],
+ "regions": []
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImageRegionProposals.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImageRegionProposals.json
new file mode 100644
index 000000000000..7638215aae62
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImageRegionProposals.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "imageId": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "imageId": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "proposals": [
+ {
+ "confidence": 0.25,
+ "boundingBox": {
+ "left": 0.25,
+ "top": 0.25,
+ "width": 0.25,
+ "height": 0.25
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImages.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImages.json
new file mode 100644
index 000000000000..d02bd9b585ef
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImages.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "id": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "created": "2017-12-19T15:56:10Z",
+ "width": 1095,
+ "height": 900,
+ "resizedImageUri": "{Resized Image Uri}",
+ "originalImageUri": "{Image Uri}",
+ "thumbnailUri": "{Thumbnail Uri}",
+ "tags": [
+ {
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "created": "2017-12-19T15:56:09Z",
+ "tagName": "tag 1"
+ }
+ ]
+ },
+ {
+ "id": "f1855a92-b873-47e7-b513-f07a667ceda1",
+ "created": "2017-12-19T15:56:10Z",
+ "width": 900,
+ "height": 1531,
+ "resizedImageUri": "{Resized Image Uri}",
+ "originalImageUri": "{Image Uri}",
+ "thumbnailUri": "{Thumbnail Uri}",
+ "tags": [
+ {
+ "tagId": "b607964f-7bd6-4a3b-a869-6791fb6aab87",
+ "created": "2017-12-19T15:56:09Z",
+ "tagName": "tag 1"
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImagesByIds.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImagesByIds.json
new file mode 100644
index 000000000000..037118bc9d41
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetImagesByIds.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "iterationId": "cf0f83fb-ebaa-4b25-8e34-613a6a0b8a12"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": []
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetIteration.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetIteration.json
new file mode 100644
index 000000000000..2383a6c6f910
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetIteration.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "iterationId": "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758",
+ "name": "Iteration 2",
+ "status": "Completed",
+ "created": "2017-12-18T22:40:36Z",
+ "lastModified": "2017-12-19T15:47:02Z",
+ "trainedAt": "2017-12-19T15:47:02Z",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "exportable": false,
+ "domainId": "ee85a74c-405e-4adc-bb47-ffa8ca0c9f31",
+ "exportableTo": [
+ "ONNX",
+ "DockerFile",
+ "TensorFlow",
+ "CoreML"
+ ],
+ "trainingType": "Regular",
+ "reservedBudgetInHours": 0,
+ "publishName": ""
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetIterationPerformance.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetIterationPerformance.json
new file mode 100644
index 000000000000..323173c03a51
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetIterationPerformance.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "iterationId": "fe1e83c4-6f50-4899-9544-6bb08cf0e15a",
+ "threshold": 0.9
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "perTagPerformance": [
+ {
+ "id": "e31ff107-5505-4753-be42-b369b21b026c",
+ "name": "Hemlock",
+ "precision": 1.0,
+ "precisionStdDeviation": 0.0,
+ "recall": 1.0,
+ "recallStdDeviation": 0.0
+ },
+ {
+ "id": "349d72ac-0948-4d51-b1e4-c14a1f9b848a",
+ "name": "Japanese Cherry",
+ "precision": 1.0,
+ "precisionStdDeviation": 0.0,
+ "recall": 1.0,
+ "recallStdDeviation": 0.0
+ }
+ ],
+ "precision": 1.0,
+ "precisionStdDeviation": 0.0,
+ "recall": 1.0,
+ "recallStdDeviation": 0.0
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetIterations.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetIterations.json
new file mode 100644
index 000000000000..ac0c78134a80
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetIterations.json
@@ -0,0 +1,74 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "id": "fe1e83c4-6f50-4899-9544-6bb08cf0e15a",
+ "name": "Iteration 1",
+ "status": "Completed",
+ "created": "2017-12-18T22:40:29Z",
+ "lastModified": "2017-12-18T22:40:41Z",
+ "trainedAt": "2017-12-18T22:40:41Z",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "exportable": false,
+ "domainId": "ee85a74c-405e-4adc-bb47-ffa8ca0c9f31",
+ "exportableTo": [
+ "ONNX",
+ "DockerFile",
+ "TensorFlow",
+ "CoreML"
+ ],
+ "trainingType": "Regular",
+ "reservedBudgetInHours": 0,
+ "publishName": ""
+ },
+ {
+ "id": "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758",
+ "name": "Iteration 2",
+ "status": "Completed",
+ "created": "2017-12-18T22:40:36Z",
+ "lastModified": "2017-12-19T15:47:02Z",
+ "trainedAt": "2017-12-19T15:47:02Z",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "exportable": false,
+ "domainId": "ee85a74c-405e-4adc-bb47-ffa8ca0c9f31",
+ "exportableTo": [
+ "ONNX",
+ "DockerFile",
+ "TensorFlow",
+ "CoreML"
+ ],
+ "trainingType": "Regular",
+ "reservedBudgetInHours": 5,
+ "publishName": "model1"
+ },
+ {
+ "id": "3adaf7b2-18fc-4376-9da4-b5ea160a7cf5",
+ "name": "Iteration 3",
+ "status": "New",
+ "created": "2017-12-19T15:46:59Z",
+ "lastModified": "2017-12-19T15:46:59Z",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "exportable": false,
+ "domainId": null,
+ "exportableTo": [
+ "ONNX",
+ "DockerFile",
+ "TensorFlow",
+ "CoreML"
+ ],
+ "trainingType": "Regular",
+ "reservedBudgetInHours": 0,
+ "publishName": ""
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetProject.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetProject.json
new file mode 100644
index 000000000000..4b68bf1ea390
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetProject.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "name": "My New Project",
+ "description": "A test project",
+ "settings": {
+ "domainId": "ee85a74c-405e-4adc-bb47-ffa8ca0c9f31"
+ },
+ "created": "2017-12-18T05:43:18Z",
+ "lastModified": "2017-12-18T05:43:18Z",
+ "thumbnailUri": ""
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetProjects.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetProjects.json
new file mode 100644
index 000000000000..b5166555936f
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetProjects.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "id": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "name": "My New Project",
+ "description": "",
+ "settings": {
+ "domainId": "ee85a74c-405e-4adc-bb47-ffa8ca0c9f31"
+ },
+ "created": "2017-12-18T05:43:18Z",
+ "lastModified": "2017-12-18T05:43:18Z",
+ "thumbnailUri": ""
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetTag.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetTag.json
new file mode 100644
index 000000000000..4ad3135822ae
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetTag.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "tagId": "9e27bc1b-7ae7-4e3b-a4e5-36153479dc01"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "9e27bc1b-7ae7-4e3b-a4e5-36153479dc01",
+ "name": "Tag1",
+ "description": "Description of Tag1",
+ "type": "Regular",
+ "imageCount": 0
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetTaggedImageCount.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetTaggedImageCount.json
new file mode 100644
index 000000000000..c0ed09aa6ae9
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetTaggedImageCount.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "iterationId": "cf0f83fb-ebaa-4b25-8e34-613a6a0b8a12"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": "10"
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetTaggedImages.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetTaggedImages.json
new file mode 100644
index 000000000000..037118bc9d41
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetTaggedImages.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "iterationId": "cf0f83fb-ebaa-4b25-8e34-613a6a0b8a12"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": []
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetTags.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetTags.json
new file mode 100644
index 000000000000..6ad8ea76c689
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetTags.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "id": "9e27bc1b-7ae7-4e3b-a4e5-36153479dc01",
+ "name": "Tag1",
+ "description": "Description of Tag1",
+ "type": "Regular",
+ "imageCount": 0
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetUntaggedImageCount.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetUntaggedImageCount.json
new file mode 100644
index 000000000000..c0ed09aa6ae9
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetUntaggedImageCount.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "iterationId": "cf0f83fb-ebaa-4b25-8e34-613a6a0b8a12"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": "10"
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetUntaggedImages.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetUntaggedImages.json
new file mode 100644
index 000000000000..037118bc9d41
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/GetUntaggedImages.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "iterationId": "cf0f83fb-ebaa-4b25-8e34-613a6a0b8a12"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": []
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/ImportProject.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/ImportProject.json
new file mode 100644
index 000000000000..87702da27426
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/ImportProject.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "token": "token"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "name": "Import Project",
+ "description": "",
+ "settings": {
+ "domainId": "ee85a74c-405e-4adc-bb47-ffa8ca0c9f31"
+ },
+ "created": "2019-10-06T05:43:18Z",
+ "lastModified": "2019-10-06T05:43:18Z",
+ "thumbnailUri": "",
+ "status": "Importing"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/PublishIteration.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/PublishIteration.json
new file mode 100644
index 000000000000..67d6ad03e29f
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/PublishIteration.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "iterationId": "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758",
+ "publishName": "Model1",
+ "predictionId": "/subscriptions/{subscription}/resourceGroups/{resource group name}/providers/Microsoft.CognitiveServices/accounts/{resource name}"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": true
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QueryPredictions.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QueryPredictions.json
new file mode 100644
index 000000000000..0bd19d6b7980
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QueryPredictions.json
@@ -0,0 +1,66 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "query": {
+ "orderBy": "Newest",
+ "tags": [
+ {
+ "id": "b5f7e6a2-a481-49a6-afec-a7cef1af3544",
+ "maxThreshold": 1,
+ "minThreshold": 0.9
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "results": [
+ {
+ "id": "dfd2d346-3ed5-4e1e-857d-af4e32cec042",
+ "project": "8988643a-ae70-447d-9a22-15c4255e5ecb",
+ "iteration": "b7b9d99c-a2c6-4658-9900-a98d2ff5bc66",
+ "created": "2018-01-31T20:18:26Z",
+ "predictions": [
+ {
+ "tagId": "b5f7e6a2-a481-49a6-afec-a7cef1af3544",
+ "tagName": "Tag 1",
+ "probability": 1.0
+ },
+ {
+ "tagId": "45619cda-d1c9-4bc8-a3e1-87c5d81adbc3",
+ "tagName": "Tag 2",
+ "probability": 3.60627153E-12
+ }
+ ],
+ "originalImageUri": "",
+ "thumbnailUri": "",
+ "resizedImageUri": "",
+ "domain": "b30a91ae-e3c1-4f73-a81e-c270bff27c39"
+ }
+ ],
+ "token": {
+ "session": "1:286613",
+ "continuation": "",
+ "maxCount": 0,
+ "orderBy": "Newest",
+ "tags": [
+ {
+ "id": "b5f7e6a2-a481-49a6-afec-a7cef1af3544",
+ "minThreshold": 0.9,
+ "maxThreshold": 1.0
+ }
+ ],
+ "iterationId": null,
+ "startTime": null,
+ "endTime": null,
+ "application": ""
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QuerySuggestedImageCount.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QuerySuggestedImageCount.json
new file mode 100644
index 000000000000..bfe12dad0540
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QuerySuggestedImageCount.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "iterationId": "b7b9d99c-a2c6-4658-9900-a98d2ff5bc66",
+ "query": {
+ "tagIds": [
+ "b5f7e6a2-a481-49a6-afec-a7cef1af3544"
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "b5f7e6a2-a481-49a6-afec-a7cef1af3544": 1
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QuerySuggestedImages.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QuerySuggestedImages.json
new file mode 100644
index 000000000000..c42db2bc784f
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QuerySuggestedImages.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "iterationId": "b7b9d99c-a2c6-4658-9900-a98d2ff5bc66",
+ "query": {
+ "tagIds": [
+ "b5f7e6a2-a481-49a6-afec-a7cef1af3544"
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "results": [
+ {
+ "id": "dfd2d346-3ed5-4e1e-857d-af4e32cec042",
+ "project": "8988643a-ae70-447d-9a22-15c4255e5ecb",
+ "iteration": "b7b9d99c-a2c6-4658-9900-a98d2ff5bc66",
+ "created": "2018-01-31T20:18:26Z",
+ "predictions": [
+ {
+ "tagId": "b5f7e6a2-a481-49a6-afec-a7cef1af3544",
+ "tagName": "Tag 1",
+ "probability": 1.0
+ },
+ {
+ "tagId": "45619cda-d1c9-4bc8-a3e1-87c5d81adbc3",
+ "tagName": "Tag 2",
+ "probability": 3.60627153E-12
+ }
+ ],
+ "originalImageUri": "",
+ "thumbnailUri": "",
+ "resizedImageUri": "",
+ "domain": "b30a91ae-e3c1-4f73-a81e-c270bff27c39"
+ }
+ ],
+ "token": {
+ "session": "1:286613",
+ "continuation": "",
+ "maxCount": 0,
+ "sortBy": "Newest",
+ "tagIds": [
+ "b5f7e6a2-a481-49a6-afec-a7cef1af3544"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QuickTestImage.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QuickTestImage.json
new file mode 100644
index 000000000000..489852dc79df
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QuickTestImage.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "iterationId": "fe1e83c4-6f50-4899-9544-6bb08cf0e15a",
+ "imageData": "multipart-form-data"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "951098b2-9b69-427b-bddb-d5cb618874e3",
+ "project": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "iteration": "fe1e83c4-6f50-4899-9544-6bb08cf0e15a",
+ "created": "2017-12-19T14:21:41Z",
+ "predictions": [
+ {
+ "tagId": "e31ff107-5505-4753-be42-b369b21b026c",
+ "tagName": "Hemlock",
+ "probability": 0.05149666
+ },
+ {
+ "tagId": "349d72ac-0948-4d51-b1e4-c14a1f9b848a",
+ "tagName": "Japanese Cherry",
+ "probability": 0.00
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QuickTestImageUrl.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QuickTestImageUrl.json
new file mode 100644
index 000000000000..dc904ef6f116
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/QuickTestImageUrl.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "iterationId": "fe1e83c4-6f50-4899-9544-6bb08cf0e15a",
+ "imageUrl": {
+ "url": "{Image URL}"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "951098b2-9b69-427b-bddb-d5cb618874e3",
+ "project": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "iteration": "fe1e83c4-6f50-4899-9544-6bb08cf0e15a",
+ "created": "2017-12-19T14:21:41Z",
+ "predictions": [
+ {
+ "tagId": "e31ff107-5505-4753-be42-b369b21b026c",
+ "tagName": "Hemlock",
+ "probability": 0.05149666
+ },
+ {
+ "tagId": "349d72ac-0948-4d51-b1e4-c14a1f9b848a",
+ "tagName": "Japanese Cherry",
+ "probability": 0.00
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/SuggestTagsAndRegions.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/SuggestTagsAndRegions.json
new file mode 100644
index 000000000000..175a0a2a01e0
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/SuggestTagsAndRegions.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "iterationId": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "imageIds": [
+ "e7f08c23-9e54-49f7-b609-69a0240ba306",
+ "ce632666-4b66-4adb-aa0a-ad8b7c32df06"
+ ]
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "id": "8497e814-23cc-47d7-b24b-691cef0bcec9",
+ "project": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "iteration": "ce271ee4-cc13-460f-b66f-993f8005522d",
+ "created": "2019-07-08T13:43:18Z",
+ "predictions": [
+ {
+ "tagId": "b5f7e6a2-a481-49a6-afec-a7cef1af3544",
+ "tagName": "Tag 1",
+ "probability": 1.0
+ },
+ {
+ "tagId": "45619cda-d1c9-4bc8-a3e1-87c5d81adbc3",
+ "tagName": "Tag 2",
+ "probability": 3.60627153E-12
+ }
+ ],
+ "predictionUncertainty": 0.32
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/TrainProject.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/TrainProject.json
new file mode 100644
index 000000000000..dd3deca15afb
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/TrainProject.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "trainingParameters": {}
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758",
+ "name": "Iteration 2",
+ "status": "Training",
+ "created": "2017-12-18T22:40:36Z",
+ "lastModified": "2017-12-19T15:46:58Z",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "exportable": false,
+ "domainId": null,
+ "exportableTo": [
+ "ONNX",
+ "DockerFile",
+ "TensorFlow",
+ "CoreML"
+ ],
+ "trainingType": "Regular",
+ "reservedBudgetInHours": 0,
+ "publishName": ""
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UnpublishIteration.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UnpublishIteration.json
new file mode 100644
index 000000000000..d1f9b7629958
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UnpublishIteration.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "iterationId": "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UpdateImageMetadata.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UpdateImageMetadata.json
new file mode 100644
index 000000000000..54ac8a7a0725
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UpdateImageMetadata.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "imageIds": [
+ "4d6eb844-42ee-42bc-bd6f-c32455ef07c9"
+ ],
+ "metadata": {
+ "tag": "value"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "isBatchSuccessful": true,
+ "images": [
+ {
+ "imageId": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "status": "OK",
+ "metadata": {
+ "tag": "value"
+ }
+ }
+ ]
+ }
+ },
+ "207": {
+ "headers": {},
+ "body": {
+ "isBatchSuccessful": false,
+ "images": [
+ {
+ "imageId": "4d6eb844-42ee-42bc-bd6f-c32455ef07c9",
+ "status": "ErrorLimitExceed"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UpdateIteration.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UpdateIteration.json
new file mode 100644
index 000000000000..a965deb8aa0f
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UpdateIteration.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "iterationId": "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758",
+ "updatedIteration": {
+ "name": "Best Iteration"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "e31a14ab-5d78-4f7b-a267-3a1e4fd8a758",
+ "name": "Best Iteration",
+ "status": "Completed",
+ "created": "2017-12-18T22:40:36Z",
+ "lastModified": "2017-12-19T15:53:07Z",
+ "trainedAt": "2017-12-19T15:47:02Z",
+ "projectId": "64b822c5-8082-4b36-a426-27225f4aa18c",
+ "exportable": false,
+ "exportableTo": [
+ "ONNX",
+ "DockerFile",
+ "TensorFlow",
+ "CoreML"
+ ],
+ "domainId": "ee85a74c-405e-4adc-bb47-ffa8ca0c9f31",
+ "trainingType": "Regular",
+ "reservedBudgetInHours": 0,
+ "publishName": ""
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UpdateProject.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UpdateProject.json
new file mode 100644
index 000000000000..e19735364b5e
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UpdateProject.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "updatedProject": {
+ "name": "New Project Name",
+ "description": "A new Description",
+ "settings": {
+ "domainId": "ee85a74c-405e-4adc-bb47-ffa8ca0c9f31"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "name": "New Project Name",
+ "description": "A new Description",
+ "settings": {
+ "domainId": "ee85a74c-405e-4adc-bb47-ffa8ca0c9f31"
+ },
+ "created": "2017-12-18T05:43:18Z",
+ "lastModified": "2017-12-18T05:43:19Z",
+ "thumbnailUri": ""
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UpdateTag.json b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UpdateTag.json
new file mode 100644
index 000000000000..51e0ee680aab
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/preview/v3.4-preview/examples/UpdateTag.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Content-Type": "application/json",
+ "Training-Key": "{API Key}",
+ "projectId": "bc3f7dad-5544-468c-8573-3ef04d55463e",
+ "tagId": "9e27bc1b-7ae7-4e3b-a4e5-36153479dc01",
+ "updatedTag": {
+ "name": "Better Tag Name",
+ "type": "Regular",
+ "description": "Better description"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "9e27bc1b-7ae7-4e3b-a4e5-36153479dc01",
+ "name": "Better Tag Name",
+ "description": "Better description",
+ "type": "Regular",
+ "imageCount": 0
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/readme.go.md b/specification/cognitiveservices/data-plane/CustomVision/Training/readme.go.md
index c61b06fde524..e772a9b2b5db 100644
--- a/specification/cognitiveservices/data-plane/CustomVision/Training/readme.go.md
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/readme.go.md
@@ -21,6 +21,7 @@ batch:
- tag: release_3_1
- tag: release_3_2
- tag: release_3_3
+ - tag: release_3_4_preview
```
### Tag: release_1_0 and go
@@ -84,4 +85,13 @@ Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'release_3_4_preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/cognitiveservices/v3.4-preview/customvision/$(namespace)
```
\ No newline at end of file
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/readme.md b/specification/cognitiveservices/data-plane/CustomVision/Training/readme.md
index 4941afe9c847..24c4d5e09848 100644
--- a/specification/cognitiveservices/data-plane/CustomVision/Training/readme.md
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/readme.md
@@ -4,11 +4,11 @@
Configuration for generating Custom Vision Training SDK.
-The current release is `release_3_3`.
+The current release is `release_3_4_preview`.
``` yaml
-tag: release_3_3
+tag: release_3_4_preview
openapi-type: data-plane
```
# Releases
@@ -64,6 +64,14 @@ input-file: stable/v3.3/Training.json
add-credentials: true
```
+### Release 3.4-preview
+These settings apply only when `--tag=release_3_4_preview` is specified on the command line.
+
+``` yaml $(tag) == 'release_3_4_preview'
+input-file: preview/v3.4-preview/Training.json
+add-credentials: true
+```
+
# Validation
## Suppression
@@ -172,6 +180,7 @@ input-file:
- $(this-folder)/stable/v3.1/Training.json
- $(this-folder)/stable/v3.2/Training.json
- $(this-folder)/stable/v3.3/Training.json
+ - $(this-folder)/preview/v3.4-preview/Training.json
```
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/readme.ruby.md b/specification/cognitiveservices/data-plane/CustomVision/Training/readme.ruby.md
index 517819d1250a..e4360fa9e63c 100644
--- a/specification/cognitiveservices/data-plane/CustomVision/Training/readme.ruby.md
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/readme.ruby.md
@@ -17,6 +17,7 @@ batch:
- tag: release_3_1
- tag: release_3_2
- tag: release_3_3
+ - tag: release_3_4_preview
```
### Tag: release_1_0 and ruby
@@ -73,3 +74,14 @@ namespace: "Azure::CognitiveServices::CustomVision::Training::V3_3"
output-folder: $(ruby-sdks-folder)/data/azure_cognitiveservices_customvisiontraining/lib
title: "TrainingClient"
```
+
+### Tag: release_3_4_preview and ruby
+
+These settings apply only when `--tag=release_3_4_preview --ruby` is specified on the command line.
+Please also specify `--ruby-sdks-folder=`.
+
+``` yaml $(tag) == 'release_3_4_preview' && $(ruby)
+namespace: "Azure::CognitiveServices::CustomVision::Training::V3_4_preview"
+output-folder: $(ruby-sdks-folder)/data/azure_cognitiveservices_customvisiontraining/lib
+title: "TrainingClient"
+```
\ No newline at end of file
diff --git a/specification/cognitiveservices/data-plane/QnAMaker/preview/v5.0-preview.1/QnAMaker.json b/specification/cognitiveservices/data-plane/QnAMaker/preview/v5.0-preview.1/QnAMaker.json
index 0d9c4c84d099..26ef7ee004ab 100644
--- a/specification/cognitiveservices/data-plane/QnAMaker/preview/v5.0-preview.1/QnAMaker.json
+++ b/specification/cognitiveservices/data-plane/QnAMaker/preview/v5.0-preview.1/QnAMaker.json
@@ -831,6 +831,12 @@
"items": {
"type": "string"
}
+ },
+ "defaultAnswer": {
+ "type": "string",
+ "description": "Default answer sent to user if no good match is found in the KB.",
+ "maxLength": 300,
+ "minLength": 1
}
}
},
@@ -1073,6 +1079,16 @@
"description": "Language of the knowledgebase. Please find the list of supported languages here.",
"maxLength": 100,
"minLength": 1
+ },
+ "enableMultipleLanguages": {
+ "type": "boolean",
+ "description": "Set to true to enable creating KBs in different languages for the same resource."
+ },
+ "defaultAnswer": {
+ "type": "string",
+ "description": "Default answer sent to user if no good match is found in the KB.",
+ "maxLength": 300,
+ "minLength": 1
}
}
},
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/TextAnalytics.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/TextAnalytics.json
index fcb470b19c05..51298697016f 100644
--- a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/TextAnalytics.json
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/TextAnalytics.json
@@ -975,15 +975,19 @@
"type": "object",
"required": [
"id",
+ "redactedText",
"entities",
- "warnings",
- "redactedText"
+ "warnings"
],
"properties": {
"id": {
"type": "string",
"description": "Unique, non-empty document identifier."
},
+ "redactedText": {
+ "type": "string",
+ "description": "Returns redacted text."
+ },
"entities": {
"type": "array",
"description": "Recognized entities in the document.",
@@ -1001,10 +1005,6 @@
"statistics": {
"description": "if showStats=true was specified in the request this field will contain information about the document payload.",
"$ref": "#/definitions/DocumentStatistics"
- },
- "redactedText": {
- "type": "string",
- "description": "Returns redacted text."
}
}
},
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/TextAnalytics.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/TextAnalytics.json
new file mode 100644
index 000000000000..e04fa781b8db
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/TextAnalytics.json
@@ -0,0 +1,2313 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "v3.1-preview.3",
+ "contact": {
+ "name": "Microsoft Cognitive Services",
+ "url": "https://azure.microsoft.com/en-us/services/cognitive-services/text-analytics/",
+ "email": "mlapi@microsoft.com"
+ },
+ "title": "Text Analytics Client",
+ "description": "The Text Analytics API is a suite of natural language processing (NLP) services built with best-in-class Microsoft machine learning algorithms. The API can be used to analyze unstructured text for tasks such as sentiment analysis, key phrase extraction and language detection. Further documentation can be found in https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview"
+ },
+ "securityDefinitions": {
+ "apim_key": {
+ "type": "apiKey",
+ "name": "Ocp-Apim-Subscription-Key",
+ "in": "header"
+ }
+ },
+ "security": [
+ {
+ "apim_key": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{Endpoint}/text/analytics/v3.1-preview.3",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ },
+ "paths": {
+ "/analyze": {
+ "post": {
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "description": "Submit a collection of text documents for analysis. Specify one or more unique tasks to be executed.",
+ "operationId": "Analyze",
+ "summary": "Submit analysis job",
+ "parameters": [
+ {
+ "description": "Collection of documents to analyze and tasks to execute.",
+ "in": "body",
+ "name": "body",
+ "schema": {
+ "$ref": "#/definitions/AnalyzeBatchInput"
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "A successful call results with an Operation-Location header used to check the status of the analysis job.",
+ "headers": {
+ "Operation-Location": {
+ "type": "string"
+ }
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Submit analysis job request": {
+ "$ref": ".//examples//SuccessfulAnalyzeRequest.json"
+ }
+ },
+ "deprecated": false,
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/analyze/jobs/{jobId}": {
+ "get": {
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "description": "Get the status of an analysis job. A job may consist of one or more tasks. Once all tasks are completed, the job will transition to the completed state and results will be available for each task.",
+ "operationId": "AnalyzeStatus",
+ "summary": "Get analysis status and results",
+ "parameters": [
+ {
+ "$ref": "#/parameters/AnalyzeJobId"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "default": 20,
+ "description": "(Optional) Set the maximum number of results per task. When both $top and $skip are specified, $skip is applied first.",
+ "in": "query",
+ "maximum": 50,
+ "minimum": 1,
+ "name": "$top",
+ "type": "integer"
+ },
+ {
+ "default": 0,
+ "description": "(Optional) Set the number of elements to offset in the response. When both $top and $skip are specified, $skip is applied first.",
+ "in": "query",
+ "minimum": 0,
+ "name": "$skip",
+ "type": "integer"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Analysis job status and metadata.",
+ "schema": {
+ "$ref": "#/definitions/AnalyzeJobState"
+ }
+ },
+ "404": {
+ "description": "Job ID not found.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Get Analysis job status request": {
+ "$ref": ".//examples//SuccessfulAnalyzeStatusRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/entities/health/jobs/{jobId}": {
+ "get": {
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "description": "Get details of the healthcare prediction job specified by the jobId.",
+ "operationId": "HealthStatus",
+ "summary": "Get healthcare analysis job status and results",
+ "parameters": [
+ {
+ "$ref": "#/parameters/JobId"
+ },
+ {
+ "default": 20,
+ "description": "(Optional) Set the maximum number of results per task. When both $top and $skip are specified, $skip is applied first.",
+ "in": "query",
+ "maximum": 50,
+ "minimum": 1,
+ "name": "$top",
+ "type": "integer"
+ },
+ {
+ "default": 0,
+ "description": "(Optional) Set the number of elements to offset in the response. When both $top and $skip are specified, $skip is applied first.",
+ "in": "query",
+ "minimum": 0,
+ "name": "$skip",
+ "type": "integer"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/HealthcareJobState"
+ }
+ },
+ "404": {
+ "description": "Job ID not found.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Health request": {
+ "$ref": ".//examples//SuccessfulHealthStatusRequest.json"
+ }
+ },
+ "deprecated": false
+ },
+ "delete": {
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "description": "Cancel healthcare prediction job.",
+ "operationId": "CancelHealthJob",
+ "summary": "Cancel healthcare prediction job",
+ "parameters": [
+ {
+ "$ref": "#/parameters/JobId"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Cancel Job request has been received.",
+ "headers": {
+ "Operation-Location": {
+ "type": "string"
+ }
+ }
+ },
+ "404": {
+ "description": "Job ID not found.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Health request": {
+ "$ref": ".//examples//SuccessfulHealthDeleteRequest.json"
+ }
+ },
+ "deprecated": false,
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/entities/health/jobs": {
+ "post": {
+ "summary": "Submit healthcare analysis job",
+ "description": "Start a healthcare analysis job to recognize healthcare related entities (drugs, conditions, symptoms, etc) and their relations.",
+ "operationId": "Health",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted - call results in a link where the status of the submitted job can be checked via the GET operation.",
+ "headers": {
+ "Operation-Location": {
+ "type": "string"
+ }
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Health request": {
+ "$ref": ".//examples//SuccessfulHealthRequest.json"
+ }
+ },
+ "deprecated": false,
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/entities/recognition/general": {
+ "post": {
+ "summary": "Named Entity Recognition",
+ "description": "The API returns a list of general named entities in a given document. For the list of supported entity types, check Supported Entity Types in Text Analytics API. See the Supported languages in Text Analytics API for the list of enabled languages.",
+ "operationId": "EntitiesRecognitionGeneral",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call results in a list of recognized entities returned for each valid document.",
+ "schema": {
+ "$ref": "#/definitions/EntitiesResult"
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Entities request": {
+ "$ref": ".//examples//SuccessfulEntitiesRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/entities/recognition/pii": {
+ "post": {
+ "summary": "Entities containing personal information",
+ "description": "The API returns a list of entities with personal information (\\\"SSN\\\", \\\"Bank Account\\\" etc) in the document. For the list of supported entity types, check Supported Entity Types in Text Analytics API. See the Supported languages in Text Analytics API for the list of enabled languages.\n",
+ "operationId": "EntitiesRecognitionPii",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "name": "domain",
+ "in": "query",
+ "description": "(Optional) if specified, will set the PII domain to include only a subset of the entity categories. Possible values include: 'PHI', 'none'.",
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call results in a list of entities containing personal information returned for each valid document",
+ "schema": {
+ "$ref": "#/definitions/PiiResult"
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Entity PII request": {
+ "$ref": ".//examples//SuccessfulEntityPIIRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/entities/linking": {
+ "post": {
+ "summary": "Linked entities from a well-known knowledge base",
+ "description": "The API returns a list of recognized entities with links to a well-known knowledge base. See the Supported languages in Text Analytics API for the list of enabled languages.",
+ "operationId": "EntitiesLinking",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call results in a list of recognized entities with links to a well-known knowledge base returned for each valid document",
+ "schema": {
+ "$ref": "#/definitions/EntityLinkingResult"
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Entity Linking request": {
+ "$ref": ".//examples//SuccessfulEntityLinkingRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/keyPhrases": {
+ "post": {
+ "summary": "Key Phrases",
+ "description": "The API returns a list of strings denoting the key phrases in the input text. See the Supported languages in Text Analytics API for the list of enabled languages.",
+ "operationId": "KeyPhrases",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response results in 0 or more key phrases identified in each valid document",
+ "schema": {
+ "$ref": "#/definitions/KeyPhraseResult"
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Key Phrase request": {
+ "$ref": ".//examples//SuccessfulKeyPhrasesRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/languages": {
+ "post": {
+ "summary": "Detect Language",
+ "description": "The API returns the detected language and a numeric score between 0 and 1. Scores close to 1 indicate 100% certainty that the identified language is true. See the Supported languages in Text Analytics API for the list of enabled languages.",
+ "operationId": "Languages",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "$ref": "#/parameters/LanguageInput"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call results in the detected language with the highest probability for each valid document",
+ "schema": {
+ "$ref": "#/definitions/LanguageResult"
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Detect Language request": {
+ "$ref": ".//examples//SuccessfulLanguagesRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/sentiment": {
+ "post": {
+ "summary": "Sentiment",
+ "description": "The API returns a detailed sentiment analysis for the input text. The analysis is done in multiple levels of granularity, start from the a document level, down to sentence and key terms (aspects) and opinions.",
+ "operationId": "Sentiment",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "name": "opinionMining",
+ "in": "query",
+ "description": "(Optional) if set to true, response will contain input and document level statistics including aspect-based sentiment analysis results.",
+ "type": "boolean"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call results in a document sentiment prediction, as well as sentiment scores for each sentiment class (Positive, Negative, and Neutral)",
+ "schema": {
+ "$ref": "#/definitions/SentimentResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Sentiment request": {
+ "$ref": ".//examples//SuccessfulSentimentRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ }
+ },
+ "definitions": {
+ "JobManifest": {
+ "properties": {
+ "tasks": {
+ "description": "The set of tasks to execute on the input documents. Cannot specify the same task more than once.",
+ "properties": {
+ "entityRecognitionTasks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntitiesTask"
+ }
+ },
+ "entityRecognitionPiiTasks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PiiTask"
+ }
+ },
+ "keyPhraseExtractionTasks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/KeyPhrasesTask"
+ }
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "tasks"
+ ],
+ "type": "object"
+ },
+ "MultiLanguageBatchInput": {
+ "type": "object",
+ "required": [
+ "documents"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "The set of documents to process as part of this batch.",
+ "items": {
+ "$ref": "#/definitions/MultiLanguageInput"
+ }
+ }
+ },
+ "description": "Contains a set of input documents to be analyzed by the service."
+ },
+ "MultiLanguageInput": {
+ "type": "object",
+ "required": [
+ "id",
+ "text"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "A unique, non-empty document identifier."
+ },
+ "text": {
+ "type": "string",
+ "description": "The input text to process."
+ },
+ "language": {
+ "type": "string",
+ "description": "(Optional) This is the 2 letter ISO 639-1 representation of a language. For example, use \"en\" for English; \"es\" for Spanish etc. If not set, use \"en\" for English as default."
+ }
+ },
+ "description": "Contains an input document to be analyzed by the service."
+ },
+ "DocumentError": {
+ "type": "object",
+ "required": [
+ "id",
+ "error"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Document Id."
+ },
+ "error": {
+ "type": "object",
+ "description": "Document Error.",
+ "$ref": "#/definitions/TextAnalyticsError"
+ }
+ }
+ },
+ "ErrorResponse": {
+ "type": "object",
+ "required": [
+ "error"
+ ],
+ "properties": {
+ "error": {
+ "type": "object",
+ "description": "Document Error.",
+ "$ref": "#/definitions/TextAnalyticsError"
+ }
+ }
+ },
+ "TextAnalyticsError": {
+ "type": "object",
+ "required": [
+ "code",
+ "message"
+ ],
+ "properties": {
+ "code": {
+ "type": "string",
+ "enum": [
+ "InvalidRequest",
+ "InvalidArgument",
+ "InternalServerError",
+ "ServiceUnavailable",
+ "NotFound"
+ ],
+ "x-ms-enum": {
+ "name": "ErrorCodeValue",
+ "modelAsString": false
+ },
+ "description": "Error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Error message."
+ },
+ "target": {
+ "type": "string",
+ "description": "Error target."
+ },
+ "innererror": {
+ "$ref": "#/definitions/InnerError",
+ "description": "Inner error contains more specific information."
+ },
+ "details": {
+ "type": "array",
+ "description": "Details about specific errors that led to this reported error.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsError"
+ }
+ }
+ }
+ },
+ "TextAnalyticsWarning": {
+ "type": "object",
+ "required": [
+ "code",
+ "message"
+ ],
+ "properties": {
+ "code": {
+ "type": "string",
+ "enum": [
+ "LongWordsInDocument",
+ "DocumentTruncated"
+ ],
+ "x-ms-enum": {
+ "name": "WarningCodeValue",
+ "modelAsString": true
+ },
+ "description": "Error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Warning message."
+ },
+ "targetRef": {
+ "type": "string",
+ "description": "A JSON pointer reference indicating the target object."
+ }
+ }
+ },
+ "PiiTask": {
+ "properties": {
+ "parameters": {
+ "properties": {
+ "domain": {
+ "default": "none",
+ "enum": [
+ "phi",
+ "none"
+ ],
+ "type": "string"
+ },
+ "model-version": {
+ "default": "latest",
+ "type": "string"
+ },
+ "stringIndexType": {
+ "$ref": "#/definitions/StringIndexType"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "EntitiesTask": {
+ "properties": {
+ "parameters": {
+ "properties": {
+ "model-version": {
+ "default": "latest",
+ "type": "string"
+ },
+ "stringIndexType": {
+ "$ref": "#/definitions/StringIndexType"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "InnerError": {
+ "type": "object",
+ "required": [
+ "code",
+ "message"
+ ],
+ "properties": {
+ "code": {
+ "type": "string",
+ "enum": [
+ "InvalidParameterValue",
+ "InvalidRequestBodyFormat",
+ "EmptyRequest",
+ "MissingInputRecords",
+ "InvalidDocument",
+ "ModelVersionIncorrect",
+ "InvalidDocumentBatch",
+ "UnsupportedLanguageCode",
+ "InvalidCountryHint"
+ ],
+ "x-ms-enum": {
+ "name": "InnerErrorCodeValue",
+ "modelAsString": true
+ },
+ "description": "Error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Error message."
+ },
+ "details": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Error details."
+ },
+ "target": {
+ "type": "string",
+ "description": "Error target."
+ },
+ "innererror": {
+ "$ref": "#/definitions/InnerError",
+ "description": "Inner error contains more specific information."
+ }
+ }
+ },
+ "AnalyzeBatchInput": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobDescriptor"
+ },
+ {
+ "type": "object",
+ "required": [
+ "analysisInput"
+ ],
+ "properties": {
+ "analysisInput": {
+ "$ref": "#/definitions/MultiLanguageBatchInput"
+ }
+ }
+ },
+ {
+ "$ref": "#/definitions/JobManifest"
+ }
+ ]
+ },
+ "AnalyzeJobState": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobMetadata"
+ },
+ {
+ "$ref": "#/definitions/TasksState"
+ },
+ {
+ "properties": {
+ "errors": {
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsError"
+ },
+ "type": "array"
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "$ref": "#/definitions/Pagination"
+ }
+ ]
+ },
+ "SentimentResponse": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Sentiment analysis per document.",
+ "items": {
+ "$ref": "#/definitions/DocumentSentiment"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "TaskState": {
+ "properties": {
+ "lastUpdateDateTime": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "status": {
+ "enum": [
+ "notstarted",
+ "running",
+ "succeeded",
+ "failed",
+ "cancelled",
+ "cancelling"
+ ],
+ "x-ms-enum": {
+ "modelAsString": false,
+ "name": "State"
+ }
+ }
+ },
+ "required": [
+ "name",
+ "status",
+ "lastUpdateDateTime"
+ ],
+ "type": "object"
+ },
+ "TasksState": {
+ "properties": {
+ "tasks": {
+ "properties": {
+ "details": {
+ "properties": {
+ "allof": {
+ "$ref": "#/definitions/TaskState"
+ }
+ },
+ "type": "object"
+ },
+ "completed": {
+ "type": "integer"
+ },
+ "failed": {
+ "type": "integer"
+ },
+ "inProgress": {
+ "type": "integer"
+ },
+ "total": {
+ "type": "integer"
+ },
+ "entityRecognitionTasks": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/TaskState"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "results": {
+ "$ref": "#/definitions/EntitiesResult"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "entityRecognitionPiiTasks": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/TaskState"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "results": {
+ "$ref": "#/definitions/PiiResult"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "keyPhraseExtractionTasks": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/TaskState"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "results": {
+ "$ref": "#/definitions/KeyPhraseResult"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "total",
+ "completed",
+ "failed",
+ "inProgress"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "tasks"
+ ],
+ "type": "object"
+ },
+ "DocumentSentiment": {
+ "type": "object",
+ "required": [
+ "id",
+ "sentiment",
+ "confidenceScores",
+ "sentences",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "sentiment": {
+ "type": "string",
+ "description": "Predicted sentiment for document (Negative, Neutral, Positive, or Mixed).",
+ "enum": [
+ "positive",
+ "neutral",
+ "negative",
+ "mixed"
+ ],
+ "x-ms-enum": {
+ "name": "DocumentSentimentValue",
+ "modelAsString": false
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/DocumentStatistics"
+ },
+ "confidenceScores": {
+ "description": "Document level sentiment confidence scores between 0 and 1 for each sentiment class.",
+ "$ref": "#/definitions/SentimentConfidenceScorePerLabel"
+ },
+ "sentences": {
+ "type": "array",
+ "description": "Sentence level sentiment analysis.",
+ "items": {
+ "$ref": "#/definitions/SentenceSentiment"
+ }
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ }
+ }
+ },
+ "RequestStatistics": {
+ "type": "object",
+ "required": [
+ "documentsCount",
+ "validDocumentsCount",
+ "erroneousDocumentsCount",
+ "transactionsCount"
+ ],
+ "properties": {
+ "documentsCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of documents submitted in the request."
+ },
+ "validDocumentsCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of valid documents. This excludes empty, over-size limit or non-supported languages documents."
+ },
+ "erroneousDocumentsCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of invalid documents. This includes empty, over-size limit or non-supported languages documents."
+ },
+ "transactionsCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Number of transactions for the request."
+ }
+ },
+ "description": "if showStats=true was specified in the request this field will contain information about the request payload."
+ },
+ "DocumentStatistics": {
+ "type": "object",
+ "required": [
+ "charactersCount",
+ "transactionsCount"
+ ],
+ "properties": {
+ "charactersCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of text elements recognized in the document."
+ },
+ "transactionsCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of transactions for the document."
+ }
+ },
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload."
+ },
+ "SentimentConfidenceScorePerLabel": {
+ "type": "object",
+ "required": [
+ "positive",
+ "neutral",
+ "negative"
+ ],
+ "properties": {
+ "positive": {
+ "type": "number",
+ "format": "double"
+ },
+ "neutral": {
+ "type": "number",
+ "format": "double"
+ },
+ "negative": {
+ "type": "number",
+ "format": "double"
+ }
+ },
+ "description": "Represents the confidence scores between 0 and 1 across all sentiment classes: positive, neutral, negative."
+ },
+ "SentenceSentiment": {
+ "type": "object",
+ "required": [
+ "text",
+ "sentiment",
+ "confidenceScores",
+ "offset",
+ "length"
+ ],
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "The sentence text."
+ },
+ "sentiment": {
+ "type": "string",
+ "description": "The predicted Sentiment for the sentence.",
+ "enum": [
+ "positive",
+ "neutral",
+ "negative"
+ ],
+ "x-ms-enum": {
+ "name": "SentenceSentimentValue",
+ "modelAsString": false
+ }
+ },
+ "confidenceScores": {
+ "description": "The sentiment confidence score between 0 and 1 for the sentence for all classes.",
+ "$ref": "#/definitions/SentimentConfidenceScorePerLabel"
+ },
+ "offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The sentence offset from the start of the document."
+ },
+ "length": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The length of the sentence."
+ },
+ "aspects": {
+ "type": "array",
+ "description": "The array of aspect object for the sentence.",
+ "items": {
+ "$ref": "#/definitions/SentenceAspect"
+ }
+ },
+ "opinions": {
+ "type": "array",
+ "description": "The array of opinion object for the sentence.",
+ "items": {
+ "$ref": "#/definitions/SentenceOpinion"
+ }
+ }
+ }
+ },
+ "SentenceAspect": {
+ "type": "object",
+ "required": [
+ "confidenceScores",
+ "length",
+ "offset",
+ "relations",
+ "sentiment",
+ "text"
+ ],
+ "properties": {
+ "sentiment": {
+ "type": "string",
+ "enum": [
+ "positive",
+ "mixed",
+ "negative"
+ ],
+ "x-ms-enum": {
+ "name": "TokenSentimentValue",
+ "modelAsString": false
+ },
+ "description": "Aspect level sentiment for the aspect in the sentence."
+ },
+ "confidenceScores": {
+ "description": "Aspect level sentiment confidence scores for the aspect in the sentence.",
+ "$ref": "#/definitions/AspectConfidenceScoreLabel"
+ },
+ "offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The aspect offset from the start of the sentence."
+ },
+ "length": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The length of the aspect."
+ },
+ "text": {
+ "type": "string",
+ "description": "The aspect text detected."
+ },
+ "relations": {
+ "type": "array",
+ "description": "The array of either opinion or aspect object which is related to the aspect.",
+ "items": {
+ "$ref": "#/definitions/AspectRelation"
+ }
+ }
+ }
+ },
+ "SentenceOpinion": {
+ "type": "object",
+ "required": [
+ "confidenceScores",
+ "isNegated",
+ "length",
+ "offset",
+ "sentiment",
+ "text"
+ ],
+ "properties": {
+ "sentiment": {
+ "type": "string",
+ "enum": [
+ "positive",
+ "mixed",
+ "negative"
+ ],
+ "x-ms-enum": {
+ "name": "TokenSentimentValue",
+ "modelAsString": false
+ },
+ "description": "Opinion level sentiment for the aspect in the sentence."
+ },
+ "confidenceScores": {
+ "description": "Opinion level sentiment confidence scores for the aspect in the sentence.",
+ "$ref": "#/definitions/AspectConfidenceScoreLabel"
+ },
+ "offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The opinion offset from the start of the sentence."
+ },
+ "length": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The length of the opinion."
+ },
+ "text": {
+ "type": "string",
+ "description": "The aspect text detected."
+ },
+ "isNegated": {
+ "type": "boolean",
+ "description": "The indicator representing if the opinion is negated."
+ }
+ }
+ },
+ "AspectRelation": {
+ "type": "object",
+ "required": [
+ "ref",
+ "relationType"
+ ],
+ "properties": {
+ "relationType": {
+ "type": "string",
+ "enum": [
+ "opinion",
+ "aspect"
+ ],
+ "x-ms-enum": {
+ "name": "AspectRelationType",
+ "modelAsString": false
+ },
+ "description": "The type related to the aspect."
+ },
+ "ref": {
+ "type": "string",
+ "description": "The JSON pointer indicating the linked object."
+ }
+ }
+ },
+ "AspectConfidenceScoreLabel": {
+ "type": "object",
+ "required": [
+ "negative",
+ "positive"
+ ],
+ "properties": {
+ "positive": {
+ "type": "number",
+ "format": "double"
+ },
+ "negative": {
+ "type": "number",
+ "format": "double"
+ }
+ },
+ "description": "Represents the confidence scores across all sentiment classes: positive, neutral, negative."
+ },
+ "EntitiesResult": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Response by document",
+ "items": {
+ "$ref": "#/definitions/DocumentEntities"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "DocumentEntities": {
+ "type": "object",
+ "required": [
+ "id",
+ "entities",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "entities": {
+ "type": "array",
+ "description": "Recognized entities in the document.",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ },
+ "statistics": {
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload.",
+ "$ref": "#/definitions/DocumentStatistics"
+ }
+ }
+ },
+ "PiiDocumentEntities": {
+ "type": "object",
+ "required": [
+ "id",
+ "redactedText",
+ "entities",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "redactedText": {
+ "type": "string",
+ "description": "Returns redacted text."
+ },
+ "entities": {
+ "type": "array",
+ "description": "Recognized entities in the document.",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ },
+ "statistics": {
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload.",
+ "$ref": "#/definitions/DocumentStatistics"
+ }
+ }
+ },
+ "Entity": {
+ "type": "object",
+ "required": [
+ "text",
+ "category",
+ "offset",
+ "length",
+ "confidenceScore"
+ ],
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "Entity text as appears in the request."
+ },
+ "category": {
+ "type": "string",
+ "description": "Entity type."
+ },
+ "subcategory": {
+ "type": "string",
+ "description": "(Optional) Entity sub type."
+ },
+ "offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Start position for the entity text. Use of different 'stringIndexType' values can affect the offset returned."
+ },
+ "length": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Length for the entity text. Use of different 'stringIndexType' values can affect the length returned."
+ },
+ "confidenceScore": {
+ "type": "number",
+ "format": "double",
+ "description": "Confidence score between 0 and 1 of the extracted entity."
+ }
+ }
+ },
+ "EntityLinkingResult": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Response by document",
+ "items": {
+ "$ref": "#/definitions/DocumentLinkedEntities"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "DocumentLinkedEntities": {
+ "type": "object",
+ "required": [
+ "id",
+ "entities",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "entities": {
+ "type": "array",
+ "description": "Recognized well-known entities in the document.",
+ "items": {
+ "$ref": "#/definitions/LinkedEntity"
+ }
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ },
+ "statistics": {
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload.",
+ "$ref": "#/definitions/DocumentStatistics"
+ }
+ }
+ },
+ "HealthcareJobState": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobMetadata"
+ },
+ {
+ "properties": {
+ "results": {
+ "$ref": "#/definitions/HealthcareResult"
+ },
+ "errors": {
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsError"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "$ref": "#/definitions/Pagination"
+ }
+ ]
+ },
+ "HealthcareResult": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Response by document",
+ "items": {
+ "$ref": "#/definitions/DocumentHealthcareEntities"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "DocumentHealthcareEntities": {
+ "type": "object",
+ "required": [
+ "id",
+ "entities",
+ "relations",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "entities": {
+ "description": "Healthcare entities.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthcareEntity"
+ }
+ },
+ "relations": {
+ "type": "array",
+ "description": "Healthcare entity relations.",
+ "items": {
+ "$ref": "#/definitions/HealthcareRelation"
+ }
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ },
+ "statistics": {
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload.",
+ "$ref": "#/definitions/DocumentStatistics"
+ }
+ }
+ },
+ "HealthcareEntity": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Entity"
+ },
+ {
+ "required": [
+ "isNegated"
+ ],
+ "properties": {
+ "isNegated": {
+ "type": "boolean"
+ },
+ "links": {
+ "description": "Entity references in known data sources.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthcareEntityLink"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "HealthcareRelation": {
+ "type": "object",
+ "required": [
+ "relationType",
+ "bidirectional",
+ "source",
+ "target"
+ ],
+ "properties": {
+ "relationType": {
+ "description": "Type of relation. Examples include: `DosageOfMedication` or 'FrequencyOfMedication', etc.",
+ "type": "string"
+ },
+ "bidirectional": {
+ "description": "If true the relation between the entities is bidirectional, otherwise directionality is source to target.",
+ "type": "boolean"
+ },
+ "source": {
+ "description": "Reference link to the source entity.",
+ "type": "string"
+ },
+ "target": {
+ "description": "Reference link to the target entity.",
+ "type": "string"
+ }
+ }
+ },
+ "HealthcareEntityLink": {
+ "type": "object",
+ "required": [
+ "dataSource",
+ "id"
+ ],
+ "properties": {
+ "dataSource": {
+ "description": "Entity Catalog. Examples include: UMLS, CHV, MSH, etc.",
+ "type": "string"
+ },
+ "id": {
+ "description": "Entity id in the given source catalog.",
+ "type": "string"
+ }
+ }
+ },
+ "LinkedEntity": {
+ "type": "object",
+ "required": [
+ "name",
+ "matches",
+ "language",
+ "url",
+ "dataSource"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Entity Linking formal name."
+ },
+ "matches": {
+ "type": "array",
+ "description": "List of instances this entity appears in the text.",
+ "items": {
+ "$ref": "#/definitions/Match"
+ }
+ },
+ "language": {
+ "type": "string",
+ "description": "Language used in the data source."
+ },
+ "id": {
+ "type": "string",
+ "description": "Unique identifier of the recognized entity from the data source."
+ },
+ "url": {
+ "type": "string",
+ "description": "URL for the entity's page from the data source."
+ },
+ "dataSource": {
+ "type": "string",
+ "description": "Data source used to extract entity linking, such as Wiki/Bing etc."
+ },
+ "bingId": {
+ "type": "string",
+ "description": "Bing Entity Search API unique identifier of the recognized entity."
+ }
+ }
+ },
+ "Match": {
+ "type": "object",
+ "required": [
+ "confidenceScore",
+ "text",
+ "offset",
+ "length"
+ ],
+ "properties": {
+ "confidenceScore": {
+ "type": "number",
+ "format": "double",
+ "description": "If a well-known item is recognized, a decimal number denoting the confidence level between 0 and 1 will be returned."
+ },
+ "text": {
+ "type": "string",
+ "description": "Entity text as appears in the request."
+ },
+ "offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Start position for the entity match text."
+ },
+ "length": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Length for the entity match text."
+ }
+ }
+ },
+ "JobDescriptor": {
+ "properties": {
+ "displayName": {
+ "description": "Optional display name for the analysis job.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "JobMetadata": {
+ "properties": {
+ "createdDateTime": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "expirationDateTime": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "jobId": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "lastUpdateDateTime": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "status": {
+ "enum": [
+ "notStarted",
+ "running",
+ "succeeded",
+ "failed",
+ "cancelled",
+ "cancelling",
+ "partiallyCompleted"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "modelAsString": false,
+ "name": "State"
+ }
+ }
+ },
+ "required": [
+ "jobId",
+ "lastUpdateDateTime",
+ "createdDateTime",
+ "status"
+ ],
+ "type": "object"
+ },
+ "KeyPhraseResult": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Response by document",
+ "items": {
+ "$ref": "#/definitions/DocumentKeyPhrases"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "DocumentKeyPhrases": {
+ "type": "object",
+ "required": [
+ "id",
+ "keyPhrases",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "keyPhrases": {
+ "type": "array",
+ "description": "A list of representative words or phrases. The number of key phrases returned is proportional to the number of words in the input document.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ },
+ "statistics": {
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload.",
+ "$ref": "#/definitions/DocumentStatistics"
+ }
+ }
+ },
+ "KeyPhrasesTask": {
+ "properties": {
+ "parameters": {
+ "properties": {
+ "model-version": {
+ "default": "latest",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "LanguageBatchInput": {
+ "type": "object",
+ "required": [
+ "documents"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LanguageInput"
+ }
+ }
+ }
+ },
+ "LanguageInput": {
+ "type": "object",
+ "required": [
+ "id",
+ "text"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "text": {
+ "type": "string"
+ },
+ "countryHint": {
+ "type": "string"
+ }
+ }
+ },
+ "Pagination": {
+ "properties": {
+ "@nextLink": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "PiiResult": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Response by document",
+ "items": {
+ "$ref": "#/definitions/PiiDocumentEntities"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "LanguageResult": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Response by document",
+ "items": {
+ "$ref": "#/definitions/DocumentLanguage"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "DocumentLanguage": {
+ "type": "object",
+ "required": [
+ "id",
+ "detectedLanguage",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "detectedLanguage": {
+ "description": "Detected Language.",
+ "$ref": "#/definitions/DetectedLanguage"
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ },
+ "statistics": {
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload.",
+ "$ref": "#/definitions/DocumentStatistics"
+ }
+ }
+ },
+ "DetectedLanguage": {
+ "type": "object",
+ "required": [
+ "name",
+ "iso6391Name",
+ "confidenceScore"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Long name of a detected language (e.g. English, French)."
+ },
+ "iso6391Name": {
+ "type": "string",
+ "description": "A two letter representation of the detected language according to the ISO 639-1 standard (e.g. en, fr)."
+ },
+ "confidenceScore": {
+ "type": "number",
+ "format": "double",
+ "description": "A confidence score between 0 and 1. Scores close to 1 indicate 100% certainty that the identified language is true."
+ }
+ }
+ },
+ "StringIndexType": {
+ "default": "TextElements_v8",
+ "enum": [
+ "TextElements_v8",
+ "UnicodeCodePoint",
+ "Utf16CodeUnit"
+ ],
+ "x-ms-enum": {
+ "name": "StringIndexTypeResponse",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "TextElements_v8",
+ "description": "Returned offset and length values will correspond to TextElements (Graphemes and Grapheme clusters) confirming to the Unicode 8.0.0 standard. Use this option if your application is written in .Net Framework or .Net Core and you will be using StringInfo."
+ },
+ {
+ "value": "UnicodeCodePoint",
+ "description": "Returned offset and length values will correspond to Unicode code points. Use this option if your application is written in a language that support Unicode, for example Python."
+ },
+ {
+ "value": "Utf16CodeUnit",
+ "description": "Returned offset and length values will correspond to UTF-16 code units. Use this option if your application is written in a language that support Unicode, for example Java, JavaScript."
+ }
+ ]
+ },
+ "type": "string"
+ }
+ },
+ "parameters": {
+ "Endpoint": {
+ "name": "Endpoint",
+ "description": "Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus.api.cognitive.microsoft.com).",
+ "x-ms-parameter-location": "client",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ },
+ "StringIndexType": {
+ "name": "stringIndexType",
+ "in": "query",
+ "type": "string",
+ "description": "(Optional) Specifies the method used to interpret string offsets. Defaults to Text Elements (Graphemes) according to Unicode v8.0.0. For additional information see https://aka.ms/text-analytics-offsets",
+ "default": "TextElements_v8",
+ "enum": [
+ "TextElements_v8",
+ "UnicodeCodePoint",
+ "Utf16CodeUnit"
+ ],
+ "x-ms-enum": {
+ "name": "StringIndexType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "TextElements_v8",
+ "description": "Returned offset and length values will correspond to TextElements (Graphemes and Grapheme clusters) confirming to the Unicode 8.0.0 standard. Use this option if your application is written in .Net Framework or .Net Core and you will be using StringInfo."
+ },
+ {
+ "value": "UnicodeCodePoint",
+ "description": "Returned offset and length values will correspond to Unicode code points. Use this option if your application is written in a language that support Unicode, for example Python."
+ },
+ {
+ "value": "Utf16CodeUnit",
+ "description": "Returned offset and length values will correspond to UTF-16 code units. Use this option if your application is written in a language that support Unicode, for example Java, JavaScript."
+ }
+ ]
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "JobId": {
+ "description": "Job ID",
+ "format": "uuid",
+ "in": "path",
+ "name": "jobId",
+ "required": true,
+ "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",
+ "description": "(Optional) if set to true, response will contain request and document level statistics.",
+ "type": "boolean",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "ModelVersion": {
+ "name": "model-version",
+ "in": "query",
+ "description": "(Optional) This value indicates which model will be used for scoring. If a model-version is not specified, the API should default to the latest, non-preview version. ",
+ "type": "string",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "MultiLanguageInput": {
+ "in": "body",
+ "name": "input",
+ "description": "Collection of documents to analyze.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MultiLanguageBatchInput"
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "LanguageInput": {
+ "in": "body",
+ "name": "input",
+ "description": "Collection of documents to analyze for language endpoint.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/LanguageBatchInput"
+ },
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulAnalyzeRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulAnalyzeRequest.json
new file mode 100644
index 000000000000..87414f0d5cf7
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulAnalyzeRequest.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "jobId": "{Job ID}",
+ "input": {
+ "displayName": "Extracting Location & US Region",
+ "analysisInput": {
+ "documents": [
+ {
+ "id": "1",
+ "language": "en",
+ "text": "I had a wonderful trip to Seattle last week."
+ },
+ {
+ "id": "2",
+ "language": "en",
+ "text": "I'm flying to NYC tomorrow. See you there."
+ }
+ ]
+ },
+ "tasks": {
+ "entityRecognitionTasks": [
+ {
+ "parameters": {
+ "model-version": "latest"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Operation-Location": "{endpoint}/text/analytics/v3.1-preview.3/analyze/jobs/{jobId}"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulAnalyzeStatusRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulAnalyzeStatusRequest.json
new file mode 100644
index 000000000000..93d23bfe90a3
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulAnalyzeStatusRequest.json
@@ -0,0 +1,112 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "jobId": "{Job ID}"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "createdDateTime": "2020-10-01T15:00:45Z",
+ "displayName": "Extracting Location & US Region",
+ "expirationDateTime": "2020-10-03T15:01:03Z",
+ "jobId": "c0f2a446-05d9-48fc-ba8f-3ef4af8d0b18",
+ "lastUpdateDateTime": "2020-10-01T15:01:03Z",
+ "status": "succeeded",
+ "tasks": {
+ "completed": 2,
+ "failed": 0,
+ "inProgress": 0,
+ "total": 2,
+ "entityRecognitionTasks": [
+ {
+ "name": "Recognize Entities (2020-04-01)",
+ "lastUpdateDateTime": "2020-10-01T15:01:03Z",
+ "status": "succeeded",
+ "results": {
+ "documents": [
+ {
+ "entities": [
+ {
+ "category": "Event",
+ "confidenceScore": 0.61,
+ "length": 4,
+ "offset": 18,
+ "text": "trip"
+ },
+ {
+ "category": "Location",
+ "confidenceScore": 0.82,
+ "length": 7,
+ "offset": 26,
+ "subcategory": "GPE",
+ "text": "Seattle"
+ },
+ {
+ "category": "DateTime",
+ "confidenceScore": 0.8,
+ "length": 9,
+ "offset": 34,
+ "subcategory": "DateRange",
+ "text": "last week"
+ }
+ ],
+ "id": "1",
+ "warnings": []
+ },
+ {
+ "entities": [
+ {
+ "category": "Location",
+ "confidenceScore": 0.52,
+ "length": 3,
+ "offset": 14,
+ "subcategory": "GPE",
+ "text": "NYC"
+ },
+ {
+ "category": "DateTime",
+ "confidenceScore": 0.8,
+ "length": 8,
+ "offset": 18,
+ "subcategory": "Date",
+ "text": "tomorrow"
+ }
+ ],
+ "id": "2",
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2020-04-01"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "404": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "NotFound",
+ "message": "Not Found",
+ "innererror": {
+ "code": "JobIdNotFound",
+ "message": "Job ID not found."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntitiesRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntitiesRequest.json
new file mode 100644
index 000000000000..d6c9a0221153
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntitiesRequest.json
@@ -0,0 +1,94 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "id": "1",
+ "language": "en",
+ "text": "Microsoft was founded by Bill Gates and Paul Allen."
+ },
+ {
+ "id": "2",
+ "language": "en",
+ "text": "Pike place market is my favorite Seattle attraction."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "entities": [
+ {
+ "category": "Organization",
+ "confidenceScore": 0.84,
+ "length": 9,
+ "offset": 0,
+ "text": "Microsoft"
+ },
+ {
+ "category": "Person",
+ "confidenceScore": 0.85,
+ "length": 10,
+ "offset": 25,
+ "text": "Bill Gates"
+ },
+ {
+ "category": "Person",
+ "confidenceScore": 0.9,
+ "length": 10,
+ "offset": 40,
+ "text": "Paul Allen"
+ }
+ ],
+ "id": "1",
+ "warnings": []
+ },
+ {
+ "entities": [
+ {
+ "category": "Location",
+ "confidenceScore": 0.55,
+ "length": 7,
+ "offset": 33,
+ "subcategory": "GPE",
+ "text": "Seattle"
+ }
+ ],
+ "id": "2",
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2020-04-01"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntityLinkingRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntityLinkingRequest.json
new file mode 100644
index 000000000000..998ac1d65bab
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntityLinkingRequest.json
@@ -0,0 +1,140 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "id": "1",
+ "language": "en",
+ "text": "Microsoft was founded by Bill Gates and Paul Allen."
+ },
+ {
+ "id": "2",
+ "language": "en",
+ "text": "Pike place market is my favorite Seattle attraction."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "entities": [
+ {
+ "dataSource": "Wikipedia",
+ "id": "Bill Gates",
+ "language": "en",
+ "matches": [
+ {
+ "confidenceScore": 0.52,
+ "length": 10,
+ "offset": 25,
+ "text": "Bill Gates"
+ }
+ ],
+ "name": "Bill Gates",
+ "url": "https://en.wikipedia.org/wiki/Bill_Gates"
+ },
+ {
+ "dataSource": "Wikipedia",
+ "id": "Paul Allen",
+ "language": "en",
+ "matches": [
+ {
+ "confidenceScore": 0.54,
+ "length": 10,
+ "offset": 40,
+ "text": "Paul Allen"
+ }
+ ],
+ "name": "Paul Allen",
+ "url": "https://en.wikipedia.org/wiki/Paul_Allen"
+ },
+ {
+ "dataSource": "Wikipedia",
+ "id": "Microsoft",
+ "language": "en",
+ "matches": [
+ {
+ "confidenceScore": 0.49,
+ "length": 9,
+ "offset": 0,
+ "text": "Microsoft"
+ }
+ ],
+ "name": "Microsoft",
+ "url": "https://en.wikipedia.org/wiki/Microsoft"
+ }
+ ],
+ "id": "1",
+ "warnings": []
+ },
+ {
+ "entities": [
+ {
+ "dataSource": "Wikipedia",
+ "id": "Pike Place Market",
+ "language": "en",
+ "matches": [
+ {
+ "confidenceScore": 0.86,
+ "length": 17,
+ "offset": 0,
+ "text": "Pike place market"
+ }
+ ],
+ "name": "Pike Place Market",
+ "url": "https://en.wikipedia.org/wiki/Pike_Place_Market"
+ },
+ {
+ "dataSource": "Wikipedia",
+ "id": "Seattle",
+ "language": "en",
+ "matches": [
+ {
+ "confidenceScore": 0.27,
+ "length": 7,
+ "offset": 33,
+ "text": "Seattle"
+ }
+ ],
+ "name": "Seattle",
+ "url": "https://en.wikipedia.org/wiki/Seattle"
+ }
+ ],
+ "id": "2",
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2020-02-01"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntityPIIRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntityPIIRequest.json
new file mode 100644
index 000000000000..d125525bda91
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulEntityPIIRequest.json
@@ -0,0 +1,100 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "id": "1",
+ "language": "en",
+ "text": "My SSN is 859-98-0987"
+ },
+ {
+ "id": "2",
+ "language": "en",
+ "text": "Your ABA number - 111000025 - is the first 9 digits in the lower left hand corner of your personal check."
+ },
+ {
+ "id": "3",
+ "language": "en",
+ "text": "Is 998.214.865-68 your Brazilian CPF number?"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "id": "1",
+ "redactedText": "My SSN is ***********",
+ "entities": [
+ {
+ "category": "U.S. Social Security Number (SSN)",
+ "confidenceScore": 0.65,
+ "length": 11,
+ "offset": 28,
+ "text": "859-98-0987"
+ }
+ ],
+ "warnings": []
+ },
+ {
+ "id": "2",
+ "redactedText": "Your ABA number - ********* - is the first 9 digits in the lower left hand corner of your personal check.",
+ "entities": [
+ {
+ "category": "ABA Routing Number",
+ "confidenceScore": 0.75,
+ "length": 9,
+ "offset": 18,
+ "text": "111000025"
+ }
+ ],
+ "warnings": []
+ },
+ {
+ "id": "3",
+ "redactedText": "Is ************** your Brazilian CPF number?",
+ "entities": [
+ {
+ "category": "Brazil CPF Number",
+ "confidenceScore": 0.85,
+ "length": 14,
+ "offset": 3,
+ "text": "998.214.865-68"
+ }
+ ],
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2019-10-01"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthDeleteRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthDeleteRequest.json
new file mode 100644
index 000000000000..ef2721ece65d
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthDeleteRequest.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "jobId": "{Job ID}"
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Operation-Location": "{endpoint}/text/analytics/v3.1-preview.3/entities/healthcare/jobs/{jobId}"
+ }
+ },
+ "404": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "NotFound",
+ "message": "Not Found",
+ "innererror": {
+ "code": "JobIdNotFound",
+ "message": "Job ID not found."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthRequest.json
new file mode 100644
index 000000000000..7fe69d163906
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthRequest.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "jobId": "{Job ID}",
+ "input": {
+ "documents": [
+ {
+ "id": "1",
+ "language": "en",
+ "text": "Subject is taking 100mg of ibuprofen twice daily."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Operation-Location": "{endpoint}/text/analytics/v3.1-preview.3/entities/healthcare/jobs/{jobId}"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthStatusRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthStatusRequest.json
new file mode 100644
index 000000000000..00b97c3ce314
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulHealthStatusRequest.json
@@ -0,0 +1,213 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "jobId": "{Job ID}"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "createdDateTime": "2020-10-01T15:01:03Z",
+ "expirationDateTime": "2020-10-03T15:01:03Z",
+ "jobId": "c0f2a446-05d9-48fc-ba8f-3ef4af8d0b18",
+ "lastUpdateDateTime": "2020-10-01T15:01:03Z",
+ "status": "succeeded",
+ "results": {
+ "documents": [
+ {
+ "id": "1",
+ "entities": [
+ {
+ "offset": 18,
+ "length": 5,
+ "text": "100mg",
+ "category": "Dosage",
+ "confidenceScore": 0.99,
+ "isNegated": false
+ },
+ {
+ "offset": 27,
+ "length": 9,
+ "text": "ibuprofen",
+ "category": "MedicationName",
+ "confidenceScore": 1.0,
+ "isNegated": false,
+ "links": [
+ {
+ "id": "C0020740",
+ "dataSource": "UMLS"
+ },
+ {
+ "id": "0000019879",
+ "dataSource": "AOD"
+ },
+ {
+ "id": "M01AE01",
+ "dataSource": "ATC"
+ },
+ {
+ "id": "0046165",
+ "dataSource": "CCPSS"
+ },
+ {
+ "id": "0000006519",
+ "dataSource": "CHV"
+ },
+ {
+ "id": "2270-2077",
+ "dataSource": "CSP"
+ },
+ {
+ "id": "DB01050",
+ "dataSource": "DRUGBANK"
+ },
+ {
+ "id": "1611",
+ "dataSource": "GS"
+ },
+ {
+ "id": "sh97005926",
+ "dataSource": "LCH_NW"
+ },
+ {
+ "id": "LP16165-0",
+ "dataSource": "LNC"
+ },
+ {
+ "id": "40458",
+ "dataSource": "MEDCIN"
+ },
+ {
+ "id": "d00015",
+ "dataSource": "MMSL"
+ },
+ {
+ "id": "D007052",
+ "dataSource": "MSH"
+ },
+ {
+ "id": "WK2XYI10QM",
+ "dataSource": "MTHSPL"
+ },
+ {
+ "id": "C561",
+ "dataSource": "NCI"
+ },
+ {
+ "id": "C561",
+ "dataSource": "NCI_CTRP"
+ },
+ {
+ "id": "00803",
+ "dataSource": "NCI_DCP"
+ },
+ {
+ "id": "NSC0256857",
+ "dataSource": "NCI_DTP"
+ },
+ {
+ "id": "WK2XYI10QM",
+ "dataSource": "NCI_FDA"
+ },
+ {
+ "id": "CDR0000613511",
+ "dataSource": "NCI_NCI-GLOSS"
+ },
+ {
+ "id": "002377",
+ "dataSource": "NDDF"
+ },
+ {
+ "id": "CDR0000040475",
+ "dataSource": "PDQ"
+ },
+ {
+ "id": "x02MO",
+ "dataSource": "RCD"
+ },
+ {
+ "id": "5640",
+ "dataSource": "RXNORM"
+ },
+ {
+ "id": "E-7772",
+ "dataSource": "SNM"
+ },
+ {
+ "id": "C-603C0",
+ "dataSource": "SNMI"
+ },
+ {
+ "id": "387207008",
+ "dataSource": "SNOMEDCT_US"
+ },
+ {
+ "id": "m39860",
+ "dataSource": "USP"
+ },
+ {
+ "id": "MTHU000060",
+ "dataSource": "USPMG"
+ },
+ {
+ "id": "4017840",
+ "dataSource": "VANDF"
+ }
+ ]
+ },
+ {
+ "offset": 37,
+ "length": 11,
+ "text": "twice daily",
+ "category": "Frequency",
+ "confidenceScore": 1,
+ "isNegated": false
+ }
+ ],
+ "relations": [
+ {
+ "relationType": "DosageOfMedication",
+ "bidirectional": false,
+ "source": "#/documents/0/entities/0",
+ "target": "#/documents/0/entities/1"
+ },
+ {
+ "relationType": "FrequencyOfMedication",
+ "bidirectional": false,
+ "source": "#/documents/0/entities/2",
+ "target": "#/documents/0/entities/1"
+ }
+ ],
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2020-05-08"
+ }
+ }
+ },
+ "404": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "NotFound",
+ "message": "Not Found",
+ "innererror": {
+ "code": "JobIdNotFound",
+ "message": "Job ID not found."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulKeyPhrasesRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulKeyPhrasesRequest.json
new file mode 100644
index 000000000000..f45b74e027f5
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulKeyPhrasesRequest.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "id": "1",
+ "language": "en",
+ "text": "Microsoft was founded by Bill Gates and Paul Allen."
+ },
+ {
+ "id": "2",
+ "language": "en",
+ "text": "Text Analytics is one of the Azure Cognitive Services."
+ },
+ {
+ "id": "3",
+ "language": "en",
+ "text": "My cat might need to see a veterinarian."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "id": "1",
+ "keyPhrases": [
+ "Bill Gates",
+ "Paul Allen",
+ "Microsoft"
+ ],
+ "warnings": []
+ },
+ {
+ "id": "2",
+ "keyPhrases": [
+ "Azure Cognitive Services",
+ "Text Analytics"
+ ],
+ "warnings": []
+ },
+ {
+ "id": "3",
+ "keyPhrases": [
+ "cat",
+ "veterinarian"
+ ],
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2019-10-01"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulLanguagesRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulLanguagesRequest.json
new file mode 100644
index 000000000000..b1077b92db58
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulLanguagesRequest.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "id": "1",
+ "text": "Hello world"
+ },
+ {
+ "id": "2",
+ "text": "Bonjour tout le monde"
+ },
+ {
+ "id": "3",
+ "text": "Hola mundo"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "detectedLanguage": {
+ "confidenceScore": 1,
+ "iso6391Name": "en",
+ "name": "English"
+ },
+ "id": "1",
+ "warnings": []
+ },
+ {
+ "detectedLanguage": {
+ "confidenceScore": 1,
+ "iso6391Name": "fr",
+ "name": "French"
+ },
+ "id": "2",
+ "warnings": []
+ },
+ {
+ "detectedLanguage": {
+ "confidenceScore": 1,
+ "iso6391Name": "es",
+ "name": "Spanish"
+ },
+ "id": "3",
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2020-04-01"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulSentimentRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulSentimentRequest.json
new file mode 100644
index 000000000000..9363baebb94f
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.3/examples/SuccessfulSentimentRequest.json
@@ -0,0 +1,160 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "id": "1",
+ "language": "en",
+ "text": "Great atmosphere. Close to plenty of restaurants, hotels, and transit! Staff are friendly and helpful."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "confidenceScores": {
+ "negative": 0,
+ "neutral": 0,
+ "positive": 1
+ },
+ "id": "1",
+ "sentences": [
+ {
+ "aspects": [
+ {
+ "confidenceScores": {
+ "negative": 0,
+ "positive": 1
+ },
+ "length": 10,
+ "offset": 6,
+ "relations": [
+ {
+ "ref": "#/documents/0/sentences/0/opinions/0",
+ "relationType": "opinion"
+ }
+ ],
+ "sentiment": "positive",
+ "text": "atmosphere"
+ }
+ ],
+ "confidenceScores": {
+ "negative": 0,
+ "neutral": 0,
+ "positive": 1
+ },
+ "length": 17,
+ "offset": 0,
+ "opinions": [
+ {
+ "confidenceScores": {
+ "negative": 0,
+ "positive": 1
+ },
+ "isNegated": false,
+ "length": 5,
+ "offset": 0,
+ "sentiment": "positive",
+ "text": "great"
+ }
+ ],
+ "sentiment": "positive",
+ "text": "Great atmosphere."
+ },
+ {
+ "aspects": [
+ {
+ "confidenceScores": {
+ "negative": 0.01,
+ "positive": 0.99
+ },
+ "length": 11,
+ "offset": 37,
+ "relations": [
+ {
+ "ref": "#/documents/0/sentences/1/opinions/0",
+ "relationType": "opinion"
+ }
+ ],
+ "sentiment": "positive",
+ "text": "restaurants"
+ },
+ {
+ "confidenceScores": {
+ "negative": 0.01,
+ "positive": 0.99
+ },
+ "length": 6,
+ "offset": 50,
+ "relations": [
+ {
+ "ref": "#/documents/0/sentences/1/opinions/0",
+ "relationType": "opinion"
+ }
+ ],
+ "sentiment": "positive",
+ "text": "hotels"
+ }
+ ],
+ "confidenceScores": {
+ "negative": 0.01,
+ "neutral": 0.86,
+ "positive": 0.13
+ },
+ "length": 52,
+ "offset": 18,
+ "opinions": [
+ {
+ "confidenceScores": {
+ "negative": 0.01,
+ "positive": 0.99
+ },
+ "isNegated": false,
+ "length": 15,
+ "offset": 18,
+ "sentiment": "positive",
+ "text": "Close to plenty"
+ }
+ ],
+ "sentiment": "neutral",
+ "text": "Close to plenty of restaurants, hotels, and transit!"
+ }
+ ],
+ "sentiment": "positive",
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2020-04-01"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/readme.md b/specification/cognitiveservices/data-plane/TextAnalytics/readme.md
index 441e055ee4d0..10730572dccc 100644
--- a/specification/cognitiveservices/data-plane/TextAnalytics/readme.md
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/readme.md
@@ -14,112 +14,26 @@ You must also have the [endpoint and access key](../How-tos/text-analytics-how-t
## Installing the NuGet SDK Package
1. Create a new Console solution in Visual Studio.
1. Right click on the solution and click **Manage NuGet Packages for Solution**
-1. Mark the **Include Prerelease** checkbox.
-1. Select the **Browse** tab, and Search for **Microsoft.Azure.CognitiveServices.Language**
+1. Select the **Browse** tab, and Search for **Microsoft.AI.TextAnalytics**
1. Select the NuGet package and install it.
## Calling the Text Analytics API using the SDK
-The following code snippets show to consume the SDK. Note that you will need to replace `client.SubscriptionKey` with the key you received when you signed up and `client.AzureRegion` with the region you signed up for.
-
-```c#
-using System;
-using Microsoft.Azure.CognitiveServices.Language.TextAnalytics;
-using Microsoft.Azure.CognitiveServices.Language.TextAnalytics.Models;
-using System.Collections.Generic;
-
-namespace ConsoleApp1
-{
- class Program
- {
- static void Main(string[] args)
- {
- // Create a client.
- ITextAnalyticsAPI client = new TextAnalyticsAPI();
- client.AzureRegion = AzureRegions.Westus;
- client.SubscriptionKey = "ENTER KEY HERE";
-
- Console.OutputEncoding = System.Text.Encoding.UTF8;
-
- // Extracting language
- Console.WriteLine("===== LANGUAGE EXTRACTION ======");
-
- LanguageBatchResult result = client.DetectLanguage(
- new BatchInput(
- new List()
- {
- new Input("1", "This is a document written in English."),
- new Input("2", "Este es un document escrito en Español."),
- new Input("3", "这是一个用中文写的文件")
- }));
-
- // Printing language results.
- foreach (var document in result.Documents)
- {
- Console.WriteLine("Document ID: {0} , Language: {1}", document.Id, document.DetectedLanguages[0].Name);
- }
-
- // Getting key-phrases
- Console.WriteLine("\n\n===== KEY-PHRASE EXTRACTION ======");
-
- KeyPhraseBatchResult result2 = client.KeyPhrases(
- new MultiLanguageBatchInput(
- new List()
- {
- new MultiLanguageInput("ja", "1", "猫は幸せ"),
- new MultiLanguageInput("de", "2", "Fahrt nach Stuttgart und dann zum Hotel zu Fu."),
- new MultiLanguageInput("en", "3", "My cat is stiff as a rock."),
- new MultiLanguageInput("es", "4", "A mi me encanta el fútbol!")
- }));
-
-
- // Printing keyphrases
- foreach (var document in result2.Documents)
- {
- Console.WriteLine("Document ID: {0} ", document.Id);
-
- Console.WriteLine("\t Key phrases:");
-
- foreach (string keyphrase in document.KeyPhrases)
- {
- Console.WriteLine("\t\t" + keyphrase);
- }
- }
-
- // Extracting sentiment
- Console.WriteLine("\n\n===== SENTIMENT ANALYSIS ======");
-
- SentimentBatchResult result3 = client.Sentiment(
- new MultiLanguageBatchInput(
- new List()
- {
- new MultiLanguageInput("en", "0", "I had the best day of my life."),
- new MultiLanguageInput("en", "1", "This was a waste of my time. The speaker put me to sleep."),
- new MultiLanguageInput("es", "2", "No tengo dinero ni nada que dar..."),
- new MultiLanguageInput("it", "3", "L'hotel veneziano era meraviglioso. È un bellissimo pezzo di architettura."),
- }));
-
-
- // Printing sentiment results
- foreach (var document in result3.Documents)
- {
- Console.WriteLine("Document ID: {0} , Sentiment Score: {1:0.00}", document.Id, document.Score);
- }
-
- }
- }
-}
-```
+See Text Analytics [Quickstart guide](https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/quickstarts/text-analytics-sdk?tabs=version-3&pivots=programming-language-csharp) for detailed instructions on how to use the SDK in your application.
## Releases
> see https://aka.ms/autorest
-The current release is `release_2_0`.
-A preview release `release_2_1` is also available.
+The current release is `release_2_1`.
+A preview release `release_2_1_preview` is also available.
``` yaml
tag: release_2_1
add-credentials: true
+
+directive:
+ - suppress: LongRunningResponseStatusCode
+ reason: The validation tools do not properly recognize 202 as a supported response code.
```
### Release 2.0
@@ -178,6 +92,14 @@ 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.1-Preview.3
+
+These settings apply only when `--tag=release_3_1_preview.3` is specified on the command line.
+
+``` yaml $(tag) == 'release_3_1_preview.3'
+input-file: preview/v3.1-preview.3/TextAnalytics.json
+```
+
## Swagger to SDK
This section describes what SDK should be generated by the automatic system.
@@ -210,7 +132,7 @@ csharp:
```
## Python
-
+
These settings apply only when `--python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
@@ -256,35 +178,4 @@ java:
output-folder: $(azure-libraries-for-java-folder)/cognitiveservices/data-plane/language/textanalytics
with-optional-parameters: true
with-single-async-method: true
-```
-
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/stable/v2.0/TextAnalytics.json
- - $(this-folder)/stable/v2.1/TextAnalytics.json
- - $(this-folder)/preview/v2.1/TextAnalytics.json
- - $(this-folder)/preview/v3.0-preview.1/TextAnalytics.json
- - $(this-folder)/stable/v3.0/TextAnalytics.json
- - $(this-folder)/preview/v3.1-preview.1/TextAnalytics.json
- - $(this-folder)/preview/v3.1-preview.2/TextAnalytics.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
-
+```
\ No newline at end of file
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/readme.python.md b/specification/cognitiveservices/data-plane/TextAnalytics/readme.python.md
new file mode 100644
index 000000000000..5370c10e8141
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/readme.python.md
@@ -0,0 +1,55 @@
+## Python
+
+These settings apply only when `--python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
+
+``` yaml
+python-mode: create
+license-header: MICROSOFT_MIT_NO_VERSION
+add-credentials: true
+payload-flattening-threshold: 2
+package-name: azure-ai-textanalytics
+clear-output-folder: true
+credential-scopes: https://cognitiveservices.azure.com/.default
+no-namespace-folders: true
+```
+
+```yaml $(multiapi)
+batch:
+ - tag: release_3_0
+ - tag: release_3_1_preview.2
+ - tag: release_3_1_preview.3
+ - multiapiscript: true
+```
+
+``` yaml $(multiapiscript)
+output-folder: $(python-sdks-folder)/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics
+default-api: v3_0
+clear-output-folder: false
+perform-load: false
+```
+
+### Tag: release_3_0
+``` yaml $(tag) == 'release_3_0'
+namespace: azure.ai.textanalytics.v3_0
+output-folder: $(python-sdks-folder)/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/v3_0
+```
+
+### Tag: release_3_1_preview_1
+``` yaml $(tag) == 'release_3_1_preview.1'
+namespace: azure.ai.textanalytics.v3_1_preview_1
+output-folder: $(python-sdks-folder)/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/v3_1_preview_1
+```
+
+### Tag: release_3_1_preview_2
+``` yaml $(tag) == 'release_3_1_preview.2'
+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_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/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 2191f6dd16bf..7a2e2d116712 100644
--- a/specification/communication/resource-manager/readme.md
+++ b/specification/communication/resource-manager/readme.md
@@ -53,8 +53,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-python
- repo: azure-sdk-for-python-track2
- repo: azure-sdk-for-go
- after_scripts:
- - bundle install && rake arm:regen_all_profiles['azure_mgmt_vsonline']
+ - repo: azure-sdk-for-js
+ - repo: azure-sdk-for-java
+ - repo: azure-cli-extensions
```
## CSharp
@@ -68,3 +69,7 @@ See configuration in [readme.python.md](./readme.python.md)
## Go
See configuration in [readme.go.md](./readme.go.md)
+
+## Typescript
+
+See configuration in [readme.typescript.md](./readme.typescript.md)
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/communication/resource-manager/readme.typescript.md b/specification/communication/resource-manager/readme.typescript.md
new file mode 100644
index 000000000000..702c0e38144e
--- /dev/null
+++ b/specification/communication/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-communication"
+ output-folder: "$(typescript-sdks-folder)/sdk/communication/arm-communication"
+ clear-output-folder: true
+ generate-metadata: true
+```
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryApplicationVersion.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryApplicationVersion.json
index 6942466a93b3..079b456f748a 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryApplicationVersion.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryApplicationVersion.json
@@ -11,9 +11,12 @@
"properties": {
"publishingProfile": {
"source": {
- "fileName": "package.zip",
"mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
},
+ "manageActions": {
+ "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"",
+ "remove": "del C:\\package "
+ },
"targetRegions": [
{
"name": "West US",
@@ -38,9 +41,12 @@
"properties": {
"publishingProfile": {
"source": {
- "fileName": "package.zip",
"mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
},
+ "manageActions": {
+ "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"",
+ "remove": "del C:\\package "
+ },
"enableHealthCheck": false,
"targetRegions": [
{
@@ -68,9 +74,12 @@
"properties": {
"publishingProfile": {
"source": {
- "fileName": "package.zip",
"mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
},
+ "manageActions": {
+ "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"",
+ "remove": "del C:\\package "
+ },
"enableHealthCheck": false,
"targetRegions": [
{
@@ -98,9 +107,12 @@
"properties": {
"publishingProfile": {
"source": {
- "fileName": "package.zip",
"mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
},
+ "manageActions": {
+ "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"",
+ "remove": "del C:\\package "
+ },
"enableHealthCheck": false,
"targetRegions": [
{
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplicationVersion.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplicationVersion.json
index ca16dd2d6f84..0affffec2e45 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplicationVersion.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplicationVersion.json
@@ -17,9 +17,12 @@
"properties": {
"publishingProfile": {
"source": {
- "fileName": "package.zip",
"mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
},
+ "manageActions": {
+ "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"",
+ "remove": "del C:\\package "
+ },
"enableHealthCheck": false,
"targetRegions": [
{
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplicationVersionWithReplicationStatus.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplicationVersionWithReplicationStatus.json
index e3d246d4bf3e..776ea72e0c03 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplicationVersionWithReplicationStatus.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplicationVersionWithReplicationStatus.json
@@ -14,9 +14,12 @@
"properties": {
"publishingProfile": {
"source": {
- "fileName": "package.zip",
"mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
},
+ "manageActions": {
+ "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"",
+ "remove": "del C:\\package "
+ },
"enableHealthCheck": false,
"targetRegions": [
{
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryApplicationVersionsInAGalleryApplication.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryApplicationVersionsInAGalleryApplication.json
index 0899c17bfafe..b0ea6bfdba57 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryApplicationVersionsInAGalleryApplication.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryApplicationVersionsInAGalleryApplication.json
@@ -18,9 +18,12 @@
"properties": {
"publishingProfile": {
"source": {
- "fileName": "package.zip",
"mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
},
+ "manageActions": {
+ "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"",
+ "remove": "del C:\\package "
+ },
"enableHealthCheck": false,
"targetRegions": [
{
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryApplicationVersion.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryApplicationVersion.json
index 8d473b578024..9933e2d8d709 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryApplicationVersion.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryApplicationVersion.json
@@ -10,9 +10,12 @@
"properties": {
"publishingProfile": {
"source": {
- "fileName": "package.zip",
"mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
},
+ "manageActions": {
+ "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"",
+ "remove": "del C:\\package "
+ },
"targetRegions": [
{
"name": "West US",
@@ -37,9 +40,12 @@
"properties": {
"publishingProfile": {
"source": {
- "fileName": "package.zip",
"mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
},
+ "manageActions": {
+ "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"",
+ "remove": "del C:\\package "
+ },
"enableHealthCheck": false,
"targetRegions": [
{
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/gallery.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/gallery.json
index b5e64bcf9dde..9a8a338f6bc5 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/gallery.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/gallery.json
@@ -191,7 +191,7 @@
"Permissions"
],
"x-ms-enum": {
- "name": "Permissions",
+ "name": "SelectPermissions",
"modelAsString": true
}
}
@@ -1943,9 +1943,8 @@
"source": {
"$ref": "#/definitions/UserArtifactSource"
},
- "contentType": {
- "type": "string",
- "description": "Optional. May be used to help process this file. The type of file contained in the source, e.g. zip, json, etc."
+ "manageActions": {
+ "$ref": "#/definitions/UserArtifactManage"
},
"enableHealthCheck": {
"type": "boolean",
@@ -1964,21 +1963,40 @@
},
"UserArtifactSource": {
"properties": {
- "fileName": {
+ "mediaLink": {
"type": "string",
- "description": "Required. The fileName of the artifact."
+ "description": "Required. The mediaLink of the artifact, must be a readable storage page blob."
},
- "mediaLink": {
+ "defaultConfigurationLink": {
"type": "string",
- "description": "Required. The mediaLink of the artifact, must be a readable storage blob."
+ "description": "Optional. The defaultConfigurationLink of the artifact, must be a readable storage page blob."
}
},
"required": [
- "fileName",
"mediaLink"
],
"description": "The source image from which the Image Version is going to be created."
},
+ "UserArtifactManage": {
+ "properties": {
+ "install": {
+ "type": "string",
+ "description": "Required. The path and arguments to install the gallery application. This is limited to 4096 characters."
+ },
+ "remove": {
+ "type": "string",
+ "description": "Required. The path and arguments to remove the gallery application. This is limited to 4096 characters."
+ },
+ "update": {
+ "type": "string",
+ "description": "Optional. The path and arguments to update the gallery application. If not present, then update operation will invoke remove command on the previous version and install command on the current version of the gallery application. This is limited to 4096 characters."
+ }
+ },
+ "required": [
+ "install",
+ "remove"
+ ]
+ },
"GalleryImage": {
"properties": {
"properties": {
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2018-06-01/compute.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2018-06-01/compute.json
index acdb3a9dc59d..fcf7286b3a90 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2018-06-01/compute.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2018-06-01/compute.json
@@ -6230,6 +6230,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "userAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
@@ -6816,6 +6817,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2018-10-01/compute.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2018-10-01/compute.json
index 429401d44d5f..c1ca9d3fb99c 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2018-10-01/compute.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2018-10-01/compute.json
@@ -6261,6 +6261,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "userAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
@@ -6847,6 +6848,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2019-03-01/compute.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-03-01/compute.json
index 7c34a03be331..dea2056032ca 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2019-03-01/compute.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-03-01/compute.json
@@ -7183,6 +7183,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "userAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
@@ -7846,6 +7847,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
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 cf7a3113540a..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",
@@ -7735,6 +7740,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "userAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
@@ -8373,6 +8379,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
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 338767d2b350..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",
@@ -8271,6 +8276,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "userAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
@@ -8909,6 +8915,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
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 e680df16e276..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": {
@@ -8750,6 +8810,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "userAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
@@ -8979,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,
@@ -9414,6 +9475,7 @@
"type": "object",
"additionalProperties": {
"type": "object",
+ "x-ms-client-name": "VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue",
"properties": {
"principalId": {
"readOnly": true,
@@ -10263,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",
@@ -10962,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.go.md b/specification/compute/resource-manager/readme.go.md
index 561571b385b6..8ef9b3f63da9 100644
--- a/specification/compute/resource-manager/readme.go.md
+++ b/specification/compute/resource-manager/readme.go.md
@@ -31,6 +31,7 @@ directive:
```yaml $(go) && $(multiapi)
batch:
+ - tag: package-2020-06-30
- tag: package-2020-06-01
- tag: package-2019-12-01
- tag: package-2019-07
@@ -50,6 +51,16 @@ batch:
- tag: package-container-service-2015-11-preview
```
+### Tag: package-2020-06-30 and go
+
+These settings apply only when `--tag=package-2020-06-30 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+```yaml $(tag)=='package-2020-06-30' && $(go)
+namespace: compute
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-06-30/$(namespace)
+```
+
### Tag: package-2020-06-01 and go
These settings apply only when `--tag=package-2020-06-01 --go` is specified on the command line.
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 052addaaae0f..8d001c98db39 100644
--- a/specification/compute/resource-manager/readme.md
+++ b/specification/compute/resource-manager/readme.md
@@ -34,7 +34,7 @@ These are the global settings for the Compute API.
title: ComputeManagementClient
description: Compute Client
openapi-type: arm
-tag: package-2020-06-30
+tag: package-2020-09-30
directive:
- where:
@@ -209,52 +209,52 @@ directive:
- ACS service is deprecated so a PATCH endpoint won't be implemented
```
-### Tag: package-2020-06-30
+### Tag: package-2020-09-30
-These settings apply only when `--tag=package-2020-06-30` is specified on the command line.
+These settings apply only when `--tag=package-2020-09-30` is specified on the command line.
-``` yaml $(tag) == 'package-2020-06-30'
+``` yaml $(tag) == 'package-2020-09-30'
input-file:
- Microsoft.Compute/stable/2020-06-01/compute.json
- Microsoft.Compute/stable/2020-06-01/runCommands.json
- Microsoft.Compute/stable/2019-04-01/skus.json
- Microsoft.Compute/stable/2020-06-30/disk.json
-- Microsoft.Compute/stable/2019-12-01/gallery.json
+- Microsoft.Compute/preview/2020-09-30/gallery.json
+- Microsoft.Compute/preview/2020-09-30/sharedGallery.json
- Microsoft.ContainerService/stable/2017-01-31/containerService.json
```
-### Tag: package-2020-06-30-only
+### Tag: package-2020-09-30-only
-These settings apply only when `--tag=package-2020-06-30-only` is specified on the command line.
+These settings apply only when `--tag=package-2020-09-30-only` is specified on the command line.
-``` yaml $(tag) == 'package-2020-06-30-only'
+``` yaml $(tag) == 'package-2020-09-30-only'
input-file:
-- Microsoft.Compute/stable/2020-06-30/disk.json
+- Microsoft.Compute/preview/2020-09-30/gallery.json
+- Microsoft.Compute/preview/2020-09-30/sharedGallery.json
```
-### Tag: package-2020-09-30
+### Tag: package-2020-06-30
-These settings apply only when `--tag=package-2020-09-30` is specified on the command line.
+These settings apply only when `--tag=package-2020-06-30` is specified on the command line.
-``` yaml $(tag) == 'package-2020-09-30'
+``` yaml $(tag) == 'package-2020-06-30'
input-file:
- Microsoft.Compute/stable/2020-06-01/compute.json
- Microsoft.Compute/stable/2020-06-01/runCommands.json
- Microsoft.Compute/stable/2019-04-01/skus.json
-- Microsoft.Compute/stable/2020-05-01/disk.json
-- Microsoft.Compute/preview/2020-09-30/gallery.json
-- Microsoft.Compute/preview/2020-09-30/sharedGallery.json
+- Microsoft.Compute/stable/2020-06-30/disk.json
+- Microsoft.Compute/stable/2019-12-01/gallery.json
- Microsoft.ContainerService/stable/2017-01-31/containerService.json
```
-### Tag: package-2020-09-30-only
+### Tag: package-2020-06-30-only
-These settings apply only when `--tag=package-2020-09-30-only` is specified on the command line.
+These settings apply only when `--tag=package-2020-06-30-only` is specified on the command line.
-``` yaml $(tag) == 'package-2020-09-30-only'
+``` yaml $(tag) == 'package-2020-06-30-only'
input-file:
-- Microsoft.Compute/preview/2020-09-30/gallery.json
-- Microsoft.Compute/preview/2020-09-30/sharedGallery.json
+- Microsoft.Compute/stable/2020-06-30/disk.json
```
### Tag: package-2020-06-01
@@ -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=`.
-
-``` 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
+See configuration in [readme.java.md](./readme.java.md)
-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=`.
+### Tag: profile-hybrid-2020-09-01
-``` 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/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
new file mode 100644
index 000000000000..f08e586fac81
--- /dev/null
+++ b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/confluent.json
@@ -0,0 +1,883 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Microsoft.Confluent",
+ "version": "2020-03-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}/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": [
+ "Organization"
+ ],
+ "summary": "List all operations provided by Microsoft.Confluent.",
+ "operationId": "OrganizationOperations_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ResourceProviderDefaultErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "OrganizationOperations_List": {
+ "$ref": "./examples/OrganizationOperations_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Confluent/organizations": {
+ "get": {
+ "tags": [
+ "Organization"
+ ],
+ "summary": "List all organizations under the specified subscription.",
+ "operationId": "Organization_ListBySubscription",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/OrganizationResourceListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ResourceProviderDefaultErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Organization_ListBySubscription": {
+ "$ref": "./examples/Organization_ListBySubscription.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Confluent/organizations": {
+ "get": {
+ "tags": [
+ "Organization"
+ ],
+ "summary": "List all Organizations under the specified resource group.",
+ "operationId": "Organization_ListByResourceGroup",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/OrganizationResourceListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ResourceProviderDefaultErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Organization_ListByResourceGroup": {
+ "$ref": "./examples/Organization_ListByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Confluent/organizations/{organizationName}": {
+ "get": {
+ "tags": [
+ "Organization"
+ ],
+ "summary": "Get the properties of a specific Organization resource.",
+ "operationId": "Organization_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/OrganizationResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/OrganizationResource"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ResourceProviderDefaultErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Organization_Get": {
+ "$ref": "./examples/Organization_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Organization"
+ ],
+ "summary": "Create Organization resource",
+ "operationId": "Organization_Create",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/OrganizationResourceNameParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "Organization resource model",
+ "schema": {
+ "$ref": "#/definitions/OrganizationResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/OrganizationResource"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/OrganizationResource"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ResourceProviderDefaultErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Organization_Create": {
+ "$ref": "./examples/Organization_Create.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Organization"
+ ],
+ "summary": "Update Organization resource",
+ "operationId": "Organization_Update",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/OrganizationResourceNameParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "Updated Organization resource",
+ "schema": {
+ "$ref": "#/definitions/OrganizationResourceUpdate"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/OrganizationResource"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ResourceProviderDefaultErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Confluent_Update": {
+ "$ref": "./examples/Organization_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Organization"
+ ],
+ "summary": "Delete Organization resource",
+ "operationId": "Organization_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/OrganizationResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "The specified confluent resource does not exist in the subscription."
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ResourceProviderDefaultErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Confluent_Delete": {
+ "$ref": "./examples/Organization_Delete.json"
+ }
+ }
+ }
+ }
+ },
+ "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",
+ "properties": {
+ "provider": {
+ "description": "Service provider: Microsoft.Confluent",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Type on which the operation is performed, e.g., 'clusters'.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Operation type, e.g., read, write, delete, etc.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the operation, e.g., 'Write confluent'.",
+ "type": "string"
+ }
+ }
+ },
+ "OperationResult": {
+ "description": "An Confluent REST API operation.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}",
+ "type": "string"
+ },
+ "display": {
+ "description": "The object that represents the operation.",
+ "$ref": "#/definitions/OperationDisplay"
+ }
+ }
+ },
+ "OperationListResult": {
+ "description": "Result of GET request to list Confluent operations.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of Confluent operations supported by the Microsoft.Confluent provider.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationResult"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next set of operation list results if there are any.",
+ "type": "string"
+ }
+ }
+ },
+ "ErrorResponseBody": {
+ "description": "Response body of Error",
+ "title": "ErrorResponseBody",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Error code",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Error message",
+ "type": "string",
+ "readOnly": true
+ },
+ "target": {
+ "description": "Error target",
+ "type": "string",
+ "readOnly": true
+ },
+ "details": {
+ "description": "Error detail",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/ErrorResponseBody"
+ }
+ }
+ }
+ },
+ "ResourceProviderDefaultErrorResponse": {
+ "type": "object",
+ "description": "Default error response for resource provider",
+ "title": "ResourceProviderDefaultErrorResponse",
+ "properties": {
+ "error": {
+ "description": "Response body of Error",
+ "readOnly": true,
+ "$ref": "#/definitions/ErrorResponseBody"
+ }
+ }
+ },
+ "ProvisioningState": {
+ "enum": [
+ "Accepted",
+ "Creating",
+ "Updating",
+ "Deleting",
+ "Succeeded",
+ "Failed",
+ "Canceled",
+ "Deleted",
+ "NotSpecified"
+ ],
+ "type": "string",
+ "description": "Provision states for confluent RP",
+ "title": "ProvisioningState",
+ "x-ms-enum": {
+ "name": "ProvisionState",
+ "modelAsString": true
+ }
+ },
+ "SaaSOfferStatus": {
+ "enum": [
+ "Started",
+ "PendingFulfillmentStart",
+ "InProgress",
+ "Subscribed",
+ "Suspended",
+ "Reinstated",
+ "Succeeded",
+ "Failed",
+ "Unsubscribed",
+ "Updating"
+ ],
+ "type": "string",
+ "description": "SaaS Offer Status for confluent RP",
+ "title": "SaaSOfferStatus",
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "SaaSOfferStatus"
+ }
+ },
+ "OfferDetail": {
+ "description": "Confluent Offer detail",
+ "type": "object",
+ "properties": {
+ "publisherId": {
+ "description": "Publisher Id",
+ "maxLength": 50,
+ "type": "string"
+ },
+ "id": {
+ "description": "Offer Id",
+ "maxLength": 50,
+ "type": "string"
+ },
+ "planId": {
+ "description": "Offer Plan Id",
+ "maxLength": 50,
+ "type": "string"
+ },
+ "planName": {
+ "description": "Offer Plan Name",
+ "maxLength": 50,
+ "type": "string"
+ },
+ "termUnit": {
+ "description": "Offer Plan Term unit",
+ "maxLength": 25,
+ "type": "string"
+ },
+ "status": {
+ "description": "SaaS Offer Status",
+ "$ref": "#/definitions/SaaSOfferStatus"
+ }
+ }
+ },
+ "UserDetail": {
+ "description": "Subscriber detail",
+ "type": "object",
+ "properties": {
+ "firstName": {
+ "description": "First name",
+ "maxLength": 50,
+ "type": "string"
+ },
+ "lastName": {
+ "description": "Last name",
+ "maxLength": 50,
+ "type": "string"
+ },
+ "emailAddress": {
+ "description": "Email address",
+ "pattern": "^\\S+@\\S+\\.\\S+$",
+ "type": "string"
+ }
+ }
+ },
+ "OrganizationResourceProperties": {
+ "description": "Organization resource property",
+ "type": "object",
+ "properties": {
+ "createdTime": {
+ "format": "date-time",
+ "description": "The creation time of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "provisioningState": {
+ "description": "Provision states for confluent RP",
+ "$ref": "#/definitions/ProvisioningState"
+ },
+ "organizationId": {
+ "description": "Id of the Confluent organization.",
+ "type": "string",
+ "readOnly": true
+ },
+ "ssoUrl": {
+ "description": "SSO url for the Confluent organization.",
+ "type": "string",
+ "readOnly": true
+ },
+ "offerDetail": {
+ "description": "Confluent offer detail",
+ "allOf": [
+ {
+ "$ref": "#/definitions/OfferDetail"
+ }
+ ]
+ },
+ "userDetail": {
+ "description": "Subscriber detail",
+ "allOf": [
+ {
+ "$ref": "#/definitions/UserDetail"
+ }
+ ]
+ }
+ }
+ },
+ "OrganizationResource": {
+ "description": "Organization resource.",
+ "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 resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "The type of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Organization resource properties",
+ "allOf": [
+ {
+ "$ref": "#/definitions/OrganizationResourceProperties"
+ }
+ ]
+ },
+ "tags": {
+ "type": "object",
+ "description": "Organization resource tags",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "location": {
+ "description": "Location of Organization resource",
+ "type": "string"
+ }
+ }
+ },
+ "OrganizationResourceListResult": {
+ "description": "The response of a list operation.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Result of a list operation.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OrganizationResource"
+ }
+ },
+ "nextLink": {
+ "description": "Link to the next set of results, if any.",
+ "type": "string"
+ }
+ }
+ },
+ "OrganizationResourceUpdate": {
+ "description": "Organization Resource update",
+ "type": "object",
+ "properties": {
+ "tags": {
+ "description": "ARM resource tags",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "description": "Client Api Version.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "2020-03-01-preview"
+ ]
+ },
+ "SubscriptionIdParameter": {
+ "in": "path",
+ "name": "subscriptionId",
+ "description": "Microsoft Azure subscription id",
+ "required": true,
+ "type": "string"
+ },
+ "ResourceGroupParameter": {
+ "in": "path",
+ "name": "resourceGroupName",
+ "description": "Resource group name",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "OrganizationResourceNameParameter": {
+ "in": "path",
+ "name": "organizationName",
+ "description": "Organization resource name",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
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/Microsoft.Confluent/preview/2020-03-01-preview/examples/OrganizationOperations_List.json b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/OrganizationOperations_List.json
new file mode 100644
index 000000000000..cf08589e54db
--- /dev/null
+++ b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/OrganizationOperations_List.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.Confluent/organizations/Read",
+ "display": {
+ "provider": "Microsoft.Confluent",
+ "resource": "organizations",
+ "operation": "Get/List organization resources",
+ "description": "Read organization"
+ }
+ },
+ {
+ "name": "Microsoft.Confluent/organizations/Write",
+ "display": {
+ "provider": "Microsoft.Confluent",
+ "resource": "organizations",
+ "operation": "Create/Update organization resources",
+ "description": "Write organization"
+ }
+ },
+ {
+ "name": "Microsoft.Confluent/organizations/Delete",
+ "display": {
+ "provider": "Microsoft.Confluent",
+ "resource": "organizations",
+ "operation": "Delete organization resources",
+ "description": "Delete organization"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_Create.json b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_Create.json
new file mode 100644
index 000000000000..43c399cb2428
--- /dev/null
+++ b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_Create.json
@@ -0,0 +1,90 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "organizationName": "myOrganization",
+ "body": {
+ "properties": {
+ "offerDetail": {
+ "publisherId": "string",
+ "id": "string",
+ "planId": "string",
+ "planName": "string",
+ "termUnit": "string"
+ },
+ "userDetail": {
+ "firstName": "string",
+ "lastName": "string",
+ "emailAddress": "contoso@microsoft.com"
+ }
+ },
+ "tags": {
+ "Environment": "Dev"
+ },
+ "location": "West US"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Confluent/organizations/myOrganization",
+ "name": "myOrganization",
+ "type": "Microsoft.Confluent/organizations",
+ "properties": {
+ "createdTime": "2020-05-09T14:28:47.284Z",
+ "provisioningState": "Succeeded",
+ "organizationId": "string",
+ "ssoUrl": "string",
+ "offerDetail": {
+ "publisherId": "string",
+ "id": "string",
+ "planId": "string",
+ "planName": "string",
+ "termUnit": "string",
+ "status": "Started"
+ },
+ "userDetail": {
+ "firstName": "string",
+ "lastName": "string",
+ "emailAddress": "contoso@microsoft.com"
+ }
+ },
+ "tags": {
+ "Environment": "Dev"
+ },
+ "location": "West US"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Confluent/organizations/myOrganization",
+ "name": "myOrganization",
+ "type": "Microsoft.Confluent/organizations",
+ "properties": {
+ "createdTime": "2020-05-09T14:28:47.284Z",
+ "provisioningState": "Accepted",
+ "organizationId": "string",
+ "ssoUrl": "string",
+ "offerDetail": {
+ "publisherId": "string",
+ "id": "string",
+ "planId": "string",
+ "planName": "string",
+ "termUnit": "string",
+ "status": "Started"
+ },
+ "userDetail": {
+ "firstName": "string",
+ "lastName": "string",
+ "emailAddress": "contoso@microsoft.com"
+ }
+ },
+ "tags": {
+ "Environment": "Dev"
+ },
+ "location": "West US"
+ }
+ }
+ }
+}
diff --git a/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_Delete.json b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_Delete.json
new file mode 100644
index 000000000000..9621d3e6929b
--- /dev/null
+++ b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_Delete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "organizationName": "myOrganization"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_Get.json b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_Get.json
new file mode 100644
index 000000000000..881c6de0d126
--- /dev/null
+++ b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_Get.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "organizationName": "myOrganization"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Confluent/organizations/myOrganization",
+ "name": "myOrganization",
+ "type": "Microsoft.Confluent/organizations",
+ "properties": {
+ "createdTime": "2020-05-09T14:28:47.284Z",
+ "provisioningState": "Accepted",
+ "organizationId": "string",
+ "ssoUrl": "string",
+ "offerDetail": {
+ "publisherId": "string",
+ "id": "string",
+ "planId": "string",
+ "planName": "string",
+ "termUnit": "string",
+ "status": "Started"
+ },
+ "userDetail": {
+ "firstName": "string",
+ "lastName": "string",
+ "emailAddress": "contoso@microsoft.com"
+ }
+ },
+ "tags": {
+ "Environment": "Dev"
+ },
+ "location": "West US"
+ }
+ }
+ }
+}
diff --git a/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_ListByResourceGroup.json b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_ListByResourceGroup.json
new file mode 100644
index 000000000000..8f8df808e8af
--- /dev/null
+++ b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_ListByResourceGroup.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Confluent/organizations/myOrganizations",
+ "name": "myOrganizations",
+ "type": "Microsoft.Confluent/organizations",
+ "properties": {
+ "createdTime": "2020-05-09T14:28:47.284Z",
+ "provisioningState": "Accepted",
+ "organizationId": "string",
+ "ssoUrl": "string",
+ "offerDetail": {
+ "publisherId": "string",
+ "id": "string",
+ "planId": "string",
+ "planName": "string",
+ "termUnit": "string",
+ "status": "Started"
+ },
+ "userDetail": {
+ "firstName": "string",
+ "lastName": "string",
+ "emailAddress": "contoso@microsoft.com"
+ }
+ },
+ "tags": {
+ "Environment": "Dev"
+ },
+ "location": "West US"
+ }
+ ],
+ "nextLink": "string"
+ }
+ }
+ }
+}
diff --git a/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_ListBySubscription.json b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_ListBySubscription.json
new file mode 100644
index 000000000000..77d8875f22c1
--- /dev/null
+++ b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_ListBySubscription.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Confluent/organizations/myOrganizations",
+ "name": "myOrganizations",
+ "type": "Microsoft.Confluent/organizations",
+ "properties": {
+ "createdTime": "2020-05-09T14:28:47.284Z",
+ "provisioningState": "Accepted",
+ "organizationId": "string",
+ "ssoUrl": "string",
+ "offerDetail": {
+ "publisherId": "string",
+ "id": "string",
+ "planId": "string",
+ "planName": "string",
+ "termUnit": "string",
+ "status": "Started"
+ },
+ "userDetail": {
+ "firstName": "string",
+ "lastName": "string",
+ "emailAddress": "contoso@microsoft.com"
+ }
+ },
+ "tags": {
+ "Environment": "Dev"
+ },
+ "location": "West US"
+ }
+ ],
+ "nextLink": "string"
+ }
+ }
+ }
+}
diff --git a/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_Update.json b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_Update.json
new file mode 100644
index 000000000000..ced813639343
--- /dev/null
+++ b/specification/confluent/resource-manager/Microsoft.Confluent/preview/2020-03-01-preview/examples/Organization_Update.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "organizationName": "myOrganization",
+ "body": {
+ "tags": {
+ "env": "dev",
+ "client": "dev-client"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Confluent/organizations/myOrganization",
+ "name": "myOrganization",
+ "type": "Microsoft.Confluent/organizations",
+ "properties": {
+ "createdTime": "2020-05-09T14:28:47.284Z",
+ "provisioningState": "Succeeded",
+ "organizationId": "string",
+ "ssoUrl": "string",
+ "offerDetail": {
+ "publisherId": "string",
+ "id": "string",
+ "planId": "string",
+ "planName": "string",
+ "termUnit": "string",
+ "status": "Started"
+ },
+ "userDetail": {
+ "firstName": "string",
+ "lastName": "string",
+ "emailAddress": "contoso@microsoft.com"
+ }
+ },
+ "tags": {
+ "Environment": "Dev"
+ },
+ "location": "West US"
+ }
+ }
+ }
+}
diff --git a/specification/confluent/resource-manager/readme.azureresourceschema.md b/specification/confluent/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..4fd32b215793
--- /dev/null
+++ b/specification/confluent/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-confluent-2020-03-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-confluent-2020-03-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-confluent-2020-03-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Confluent/preview/2020-03-01-preview/confluent.json
+
+```
diff --git a/specification/confluent/resource-manager/readme.csharp.md b/specification/confluent/resource-manager/readme.csharp.md
new file mode 100644
index 000000000000..6ce99f227179
--- /dev/null
+++ b/specification/confluent/resource-manager/readme.csharp.md
@@ -0,0 +1,14 @@
+## C#
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+``` yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ namespace: Microsoft.Azure.Management.Confluent
+ payload-flattening-threshold: 1
+ output-folder: $(csharp-sdks-folder)/confluent/Microsoft.Azure.Management.Confluent/src/Generated
+ clear-output-folder: true
+```
\ No newline at end of file
diff --git a/specification/confluent/resource-manager/readme.go.md b/specification/confluent/resource-manager/readme.go.md
new file mode 100644
index 000000000000..11ba4585bdff
--- /dev/null
+++ b/specification/confluent/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: confluent
+ 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.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-03-01-preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-03-01-preview/$(namespace)
+```
\ No newline at end of file
diff --git a/specification/confluent/resource-manager/readme.java.md b/specification/confluent/resource-manager/readme.java.md
new file mode 100644
index 000000000000..77fc8ec919e6
--- /dev/null
+++ b/specification/confluent/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.confluent
+license-header: MICROSOFT_MIT_NO_CODEGEN
+payload-flattening-threshold: 1
+output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-confluent
+```
+
+### Java multi-api
+
+``` yaml $(java) && $(multiapi)
+batch:
+ - tag: package-2020-03-01-preview
+```
+
+### Tag: package-2020-03-01-preview and java
+
+These settings apply only when `--tag=package-2020-03-01-preview --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2020-03-01-preview' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.confluent.v2020_03_01_preview
+ output-folder: $(azure-libraries-for-java-folder)/sdk/confluent/mgmt-v2020_03_01_preview
+regenerate-manager: true
+generate-interface: true
+```
\ No newline at end of file
diff --git a/specification/confluent/resource-manager/readme.md b/specification/confluent/resource-manager/readme.md
new file mode 100644
index 000000000000..abc71a674bb0
--- /dev/null
+++ b/specification/confluent/resource-manager/readme.md
@@ -0,0 +1,122 @@
+# Confluent
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for Confluent.
+
+
+
+---
+## Getting Started
+To build the SDK for Confluent, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run:
+
+> `autorest`
+
+To see additional help and options, run:
+
+> `autorest --help`
+---
+
+## Configuration
+
+
+
+### Basic Information
+These are the global settings for the Confluent API.
+
+``` yaml
+title: ConfluentManagementClient
+openapi-type: arm
+openapi-subtype: rpaas
+tag: package-2020-03-01-preview
+```
+
+### Tag: package-2020-03-01-preview
+
+These settings apply only when `--tag=package-2020-03-01-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-03-01-preview'
+input-file:
+- Microsoft.Confluent/preview/2020-03-01-preview/confluent.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-python-track2
+ - repo: azure-sdk-for-java
+ - repo: azure-sdk-for-go
+ - repo: azure-sdk-for-js
+ - repo: azure-sdk-for-node
+ - repo: azure-sdk-for-ruby
+ after_scripts:
+ - bundle install && rake arm:regen_all_profiles['azure_mgmt_confluent']
+ - repo: azure-cli-extensions
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js confluent/resource-manager
+```
+
+## C#
+
+See configuration in [readme.csharp.md](./readme.csharp.md)
+
+## Go
+
+See configuration in [readme.go.md](./readme.go.md)
+
+## Java
+
+See configuration in [readme.java.md](./readme.java.md)
+
+## Node.js
+
+See configuration in [readme.nodejs.md](./readme.nodejs.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)
+
+## AzureResourceSchema
+
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
+
+## Multi-API/Profile support for AutoRest v3 generators
+
+AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
+
+This block is updated by an automatic script. Edits may be lost!
+
+``` yaml $(tag) == 'all-api-versions' /* autogenerated */
+# include the azure profile definitions from the standard location
+require: $(this-folder)/../../../profiles/readme.md
+
+# all the input files across all versions
+input-file:
+ - $(this-folder)/Microsoft.Confluent/preview/2020-03-01-preview/confluent.json
+
+```
+
+If there are files that should not be in the `all-api-versions` set,
+uncomment the `exclude-file` section below and add the file paths.
+
+``` yaml $(tag) == 'all-api-versions'
+#exclude-file:
+# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
+```
\ No newline at end of file
diff --git a/specification/confluent/resource-manager/readme.nodejs.md b/specification/confluent/resource-manager/readme.nodejs.md
new file mode 100644
index 000000000000..340d54169ee4
--- /dev/null
+++ b/specification/confluent/resource-manager/readme.nodejs.md
@@ -0,0 +1,14 @@
+## Node.js
+
+These settings apply only when `--nodejs` is specified on the command line.
+Please also specify `--node-sdks-folder=`.
+
+``` yaml $(nodejs)
+nodejs:
+ azure-arm: true
+ package-name: azure-arm-confluent
+ output-folder: $(node-sdks-folder)/lib/services/confluentManagement
+ generate-license-txt: true
+ generate-package-json: true
+ generate-readme-md: true
+```
diff --git a/specification/confluent/resource-manager/readme.python.md b/specification/confluent/resource-manager/readme.python.md
new file mode 100644
index 000000000000..e26460adc6cc
--- /dev/null
+++ b/specification/confluent/resource-manager/readme.python.md
@@ -0,0 +1,41 @@
+## Python
+
+These settings apply only when `--python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
+
+``` yaml $(python) && !$(track2)
+python-mode: create
+python:
+ 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) && $(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/confluent/resource-manager/readme.ruby.md b/specification/confluent/resource-manager/readme.ruby.md
new file mode 100644
index 000000000000..44c50b6d016c
--- /dev/null
+++ b/specification/confluent/resource-manager/readme.ruby.md
@@ -0,0 +1,26 @@
+## Ruby
+
+These settings apply only when `--ruby` is specified on the command line.
+
+``` yaml
+package-name: azure_mgmt_confluent
+package-version: 2020-03-01-preview
+azure-arm: true
+```
+
+### Ruby multi-api
+
+``` yaml $(ruby) && $(multiapi)
+batch:
+ - tag: package-2020-03-01-preview
+```
+
+### Tag: package-2020-03-01-preview and ruby
+
+These settings apply only when `--tag=package-2020-03-01-preview --ruby` is specified on the command line.
+Please also specify `--ruby-sdks-folder=`.
+
+```yaml $(tag) == 'package-2020-03-01-preview' && $(ruby)
+namespace: Microsoft.Confluent
+output-folder: $(ruby-sdks-folder)/confluent
+```
\ No newline at end of file
diff --git a/specification/confluent/resource-manager/readme.typescript.md b/specification/confluent/resource-manager/readme.typescript.md
new file mode 100644
index 000000000000..408cc2d9b895
--- /dev/null
+++ b/specification/confluent/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-confluent"
+ output-folder: "$(typescript-sdks-folder)/sdk/confluent/arm-confluent"
+ clear-output-folder: true
+ generate-metadata: true
+```
\ 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-04-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-04-01/managedClusters.json
index fb24414f041a..49f59d3be75c 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-04-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-04-01/managedClusters.json
@@ -1386,13 +1386,11 @@
"properties": {
"adminUsername": {
"type": "string",
- "description": "The administrator username to use for Windows VMs.",
- "pattern": "^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$"
+ "description": "Specifies the name of the administrator account.
**Max-length:** 20 characters"
},
"adminPassword": {
"type": "string",
- "description": "The administrator password to use for Windows VMs.",
- "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\\^&\\*\\(\\)])[a-zA-Z\\d!@#$%\\^&\\*\\(\\)]{12,123}$"
+ "description": "Specifies the password of the administrator account.
**Minimum-length:** 8 characters
**Max-length:** 123 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
**Disallowed values:** \"abc@123\", \"P@$$w0rd\", \"P@ssw0rd\", \"P@ssword123\", \"Pa$$word\", \"pass@word1\", \"Password!\", \"Password1\", \"Password22\", \"iloveyou!\""
}
},
"required": [
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-06-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-06-01/managedClusters.json
index da7e5b3496df..c476b8355ae6 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-06-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-06-01/managedClusters.json
@@ -1488,13 +1488,11 @@
"properties": {
"adminUsername": {
"type": "string",
- "description": "The administrator username to use for Windows VMs.",
- "pattern": "^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$"
+ "description": "Specifies the name of the administrator account.
**Max-length:** 20 characters"
},
"adminPassword": {
"type": "string",
- "description": "The administrator password to use for Windows VMs.",
- "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\\^&\\*\\(\\)])[a-zA-Z\\d!@#$%\\^&\\*\\(\\)]{12,123}$"
+ "description": "Specifies the password of the administrator account.
**Minimum-length:** 8 characters
**Max-length:** 123 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
**Disallowed values:** \"abc@123\", \"P@$$w0rd\", \"P@ssw0rd\", \"P@ssword123\", \"Pa$$word\", \"pass@word1\", \"Password!\", \"Password1\", \"Password22\", \"iloveyou!\""
}
},
"required": [
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-08-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-08-01/managedClusters.json
index d50dcee822ab..d336ac2148f8 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-08-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-08-01/managedClusters.json
@@ -1532,13 +1532,11 @@
"properties": {
"adminUsername": {
"type": "string",
- "description": "The administrator username to use for Windows VMs.",
- "pattern": "^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$"
+ "description": "Specifies the name of the administrator account.
**Max-length:** 20 characters"
},
"adminPassword": {
"type": "string",
- "description": "The administrator password to use for Windows VMs.",
- "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\\^&\\*\\(\\)])[a-zA-Z\\d!@#$%\\^&\\*\\(\\)]{12,123}$"
+ "description": "Specifies the password of the administrator account.
**Minimum-length:** 8 characters
**Max-length:** 123 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
**Disallowed values:** \"abc@123\", \"P@$$w0rd\", \"P@ssw0rd\", \"P@ssword123\", \"Pa$$word\", \"pass@word1\", \"Password!\", \"Password1\", \"Password22\", \"iloveyou!\""
}
},
"required": [
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-10-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-10-01/managedClusters.json
index 585ad556f9e0..b218cd442c75 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-10-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-10-01/managedClusters.json
@@ -1575,13 +1575,11 @@
"properties": {
"adminUsername": {
"type": "string",
- "description": "The administrator username to use for Windows VMs.",
- "pattern": "^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$"
+ "description": "Specifies the name of the administrator account.
**Max-length:** 20 characters"
},
"adminPassword": {
"type": "string",
- "description": "The administrator password to use for Windows VMs.",
- "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\\^&\\*\\(\\)])[a-zA-Z\\d!@#$%\\^&\\*\\(\\)]{12,123}$"
+ "description": "Specifies the password of the administrator account.
**Minimum-length:** 8 characters
**Max-length:** 123 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
**Disallowed values:** \"abc@123\", \"P@$$w0rd\", \"P@ssw0rd\", \"P@ssword123\", \"Pa$$word\", \"pass@word1\", \"Password!\", \"Password1\", \"Password22\", \"iloveyou!\""
}
},
"required": [
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 8ebd1e442d6b..0be553652cb2 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
@@ -1589,13 +1589,11 @@
"properties": {
"adminUsername": {
"type": "string",
- "description": "The administrator username to use for Windows VMs.",
- "pattern": "^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$"
+ "description": "Specifies the name of the administrator account.
**Max-length:** 20 characters"
},
"adminPassword": {
"type": "string",
- "description": "The administrator password to use for Windows VMs.",
- "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\\^&\\*\\(\\)])[a-zA-Z\\d!@#$%\\^&\\*\\(\\)]{12,123}$"
+ "description": "Specifies the password of the administrator account.
**Minimum-length:** 8 characters
**Max-length:** 123 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
**Disallowed values:** \"abc@123\", \"P@$$w0rd\", \"P@ssw0rd\", \"P@ssword123\", \"Pa$$word\", \"pass@word1\", \"Password!\", \"Password1\", \"Password22\", \"iloveyou!\""
}
},
"required": [
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 83a3690c1e3d..9052f5a6c66f 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
@@ -1589,13 +1589,11 @@
"properties": {
"adminUsername": {
"type": "string",
- "description": "The administrator username to use for Windows VMs.",
- "pattern": "^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$"
+ "description": "Specifies the name of the administrator account.
**Max-length:** 20 characters"
},
"adminPassword": {
"type": "string",
- "description": "The administrator password to use for Windows VMs.",
- "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\\^&\\*\\(\\)])[a-zA-Z\\d!@#$%\\^&\\*\\(\\)]{12,123}$"
+ "description": "Specifies the password of the administrator account.
**Minimum-length:** 8 characters
**Max-length:** 123 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
**Disallowed values:** \"abc@123\", \"P@$$w0rd\", \"P@ssw0rd\", \"P@ssword123\", \"Pa$$word\", \"pass@word1\", \"Password!\", \"Password1\", \"Password22\", \"iloveyou!\""
}
},
"required": [
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 656eceb27f8d..4572d2dec90e 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
@@ -1596,13 +1596,11 @@
"properties": {
"adminUsername": {
"type": "string",
- "description": "The administrator username to use for Windows VMs.",
- "pattern": "^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$"
+ "description": "Specifies the name of the administrator account.
**Max-length:** 20 characters"
},
"adminPassword": {
"type": "string",
- "description": "The administrator password to use for Windows VMs.",
- "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\\^&\\*\\(\\)])[a-zA-Z\\d!@#$%\\^&\\*\\(\\)]{12,123}$"
+ "description": "Specifies the password of the administrator account.
**Minimum-length:** 8 characters
**Max-length:** 123 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
**Disallowed values:** \"abc@123\", \"P@$$w0rd\", \"P@ssw0rd\", \"P@ssword123\", \"Pa$$word\", \"pass@word1\", \"Password!\", \"Password1\", \"Password22\", \"iloveyou!\""
}
},
"required": [
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 f23476495830..772ab033df01 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
@@ -1612,13 +1612,11 @@
"properties": {
"adminUsername": {
"type": "string",
- "description": "The administrator username to use for Windows VMs.",
- "pattern": "^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$"
+ "description": "Specifies the name of the administrator account.
**Max-length:** 20 characters"
},
"adminPassword": {
"type": "string",
- "description": "The administrator password to use for Windows VMs.",
- "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\\^&\\*\\(\\)])[a-zA-Z\\d!@#$%\\^&\\*\\(\\)]{12,123}$"
+ "description": "Specifies the password of the administrator account.
**Minimum-length:** 8 characters
**Max-length:** 123 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
**Disallowed values:** \"abc@123\", \"P@$$w0rd\", \"P@ssw0rd\", \"P@ssword123\", \"Pa$$word\", \"pass@word1\", \"Password!\", \"Password1\", \"Password22\", \"iloveyou!\""
}
},
"required": [
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 e8797a360276..3a813866b029 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
@@ -1630,13 +1630,11 @@
"properties": {
"adminUsername": {
"type": "string",
- "description": "The administrator username to use for Windows VMs.",
- "pattern": "^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$"
+ "description": "Specifies the name of the administrator account.
**Max-length:** 20 characters"
},
"adminPassword": {
"type": "string",
- "description": "The administrator password to use for Windows VMs.",
- "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\\^&\\*\\(\\)])[a-zA-Z\\d!@#$%\\^&\\*\\(\\)]{12,123}$"
+ "description": "Specifies the password of the administrator account.
**Minimum-length:** 8 characters
**Max-length:** 123 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
**Disallowed values:** \"abc@123\", \"P@$$w0rd\", \"P@ssw0rd\", \"P@ssword123\", \"Pa$$word\", \"pass@word1\", \"Password!\", \"Password1\", \"Password22\", \"iloveyou!\""
}
},
"required": [
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 0a3991450f28..b953c50c7963 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
@@ -1842,13 +1842,11 @@
"properties": {
"adminUsername": {
"type": "string",
- "description": "The administrator username to use for Windows VMs.",
- "pattern": "^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$"
+ "description": "Specifies the name of the administrator account.
**Max-length:** 20 characters"
},
"adminPassword": {
"type": "string",
- "description": "The administrator password to use for Windows VMs.",
- "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\\^&\\*\\(\\)])[a-zA-Z\\d!@#$%\\^&\\*\\(\\)]{12,123}$"
+ "description": "Specifies the password of the administrator account.
**Minimum-length:** 8 characters
**Max-length:** 123 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
**Disallowed values:** \"abc@123\", \"P@$$w0rd\", \"P@ssw0rd\", \"P@ssword123\", \"Pa$$word\", \"pass@word1\", \"Password!\", \"Password1\", \"Password22\", \"iloveyou!\""
}
},
"required": [
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 5a07097c6d67..d1c2f34c1d52 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
@@ -1900,13 +1900,11 @@
"properties": {
"adminUsername": {
"type": "string",
- "description": "The administrator username to use for Windows VMs.",
- "pattern": "^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$"
+ "description": "Specifies the name of the administrator account.
**Max-length:** 20 characters"
},
"adminPassword": {
"type": "string",
- "description": "The administrator password to use for Windows VMs.",
- "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\\^&\\*\\(\\)])[a-zA-Z\\d!@#$%\\^&\\*\\(\\)]{12,123}$"
+ "description": "Specifies the password of the administrator account.
**Minimum-length:** 8 characters
**Max-length:** 123 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
**Disallowed values:** \"abc@123\", \"P@$$w0rd\", \"P@ssw0rd\", \"P@ssword123\", \"Pa$$word\", \"pass@word1\", \"Password!\", \"Password1\", \"Password22\", \"iloveyou!\""
},
"licenseType": {
"type": "string",
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 be924c99384f..aa5a00d3e6c5 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
@@ -2095,13 +2095,11 @@
"properties": {
"adminUsername": {
"type": "string",
- "description": "The administrator username to use for Windows VMs.",
- "pattern": "^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$"
+ "description": "Specifies the name of the administrator account.
**Max-length:** 20 characters"
},
"adminPassword": {
"type": "string",
- "description": "The administrator password to use for Windows VMs.",
- "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\\^&\\*\\(\\)])[a-zA-Z\\d!@#$%\\^&\\*\\(\\)]{12,123}$"
+ "description": "Specifies the password of the administrator account.
**Minimum-length:** 8 characters
**Max-length:** 123 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
For root access to the Linux VM, see [Using root privileges on Linux virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)
For a list of built-in system users on Linux that should not be used in this field, see [Selecting User Names for Linux on Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)."
+ },
+ "linuxConfiguration": {
+ "$ref": "#/definitions/LinuxConfiguration",
+ "description": "Specifies the Linux operating system settings on the virtual machine.
For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)
For running non-endorsed distributions, see [Information for Non-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)."
+ },
+ "customData": {
+ "type": "string",
+ "description": "Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the virtual machine. The maximum length of the binary array is 65535 bytes.
**Note: Do not pass any secrets or passwords in customData property**
This property cannot be updated after the VM is created.
customData is passed to the VM to be saved as a file. For more information see [Custom Data on Azure VMs](https://azure.microsoft.com/en-us/blog/custom-data-and-cloud-init-on-windows-azure/)
For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)"
+ },
+ "customDataRequired": {
+ "type": "boolean",
+ "default": true,
+ "description": "Indicates if custom data is required to deploy this role."
+ }
+ },
+ "description": "Specifies the operating system settings for the role instance."
+ },
+ "LinuxConfiguration": {
+ "properties": {
+ "ssh": {
+ "$ref": "#/definitions/SshConfiguration",
+ "description": "Specifies the ssh key configuration for a Linux OS."
+ }
+ },
+ "description": "Specifies the Linux operating system settings on the virtual machine."
+ },
+ "SshConfiguration": {
+ "properties": {
+ "publicKeys": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SshPublicKey"
+ },
+ "description": "The list of SSH public keys used to authenticate with linux based VMs."
+ }
+ },
+ "description": "SSH configuration for Linux based VMs running on Azure"
+ },
+ "SshPublicKey": {
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys"
+ },
+ "keyData": {
+ "type": "string",
+ "description": "SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format.
For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-mac-create-ssh-keys?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)."
+ }
+ },
+ "description": "Contains information about SSH certificate public key and the path on the Linux VM where the public key is placed."
}
}
}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/device.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/device.json
index 2e2b87d45439..06a57e4ef093 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/device.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/device.json
@@ -2,7 +2,7 @@
"swagger": "2.0",
"info": {
"title": "HybridNetworkManagementClient",
- "description": "The resources in this swagger specification will be used to manage the hybrid network device",
+ "description": "The resources in this swagger specification will be used to manage the Hybrid Network device.",
"version": "2020-01-01-preview"
},
"host": "management.azure.com",
@@ -40,48 +40,44 @@
"Devices"
],
"operationId": "Devices_Delete",
- "description": "Deletes the specified hybrid network device.",
+ "description": "Deletes the specified device.",
"parameters": [
{
- "name": "resourceGroupName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the resource group."
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
},
{
"name": "deviceName",
"in": "path",
"required": true,
"type": "string",
- "description": "The name of the hybrid network device."
+ "description": "The name of the device resource."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "The operation was successful."
+ "description": "The operation is successful."
},
"202": {
- "description": "Accepted. Sets the provisioningState to 'Deleting' until the operation is completed. Returns an operation Uri that can be queried to find the current state of the operation."
+ "description": "Accepted. Sets the provisioningState to 'Deleting' until the operation is completed. Returns an operation URI that can be queried to find the current state of the operation."
},
"204": {
- "description": "Request successful. Resource with specified name does not exist."
+ "description": "Request is successful. Resource with the specified name does not exist."
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "Delete hybrid network device resource": {
+ "Delete device resource": {
"$ref": "./examples/DeviceDelete.json"
}
},
@@ -95,32 +91,28 @@
"Devices"
],
"operationId": "Devices_Get",
- "description": "Gets information about the specified hybrid network device.",
+ "description": "Gets information about the specified device.",
"parameters": [
{
- "name": "resourceGroupName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the resource group."
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
},
{
"name": "deviceName",
"in": "path",
"required": true,
"type": "string",
- "description": "The name of hybrid network device."
+ "description": "The name of the device resource."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Request successful. The operation returns the resulting hybrid network device resource.",
+ "description": "Request is successful. The operation returns the resulting device resource.",
"schema": {
"$ref": "#/definitions/Device"
}
@@ -128,12 +120,12 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "Get hybrid network device": {
+ "Get device resource": {
"$ref": "./examples/DeviceGet.json"
}
}
@@ -143,14 +135,10 @@
"Devices"
],
"operationId": "Devices_CreateOrUpdate",
- "description": "Creates or updates a hybrid network device.",
+ "description": "Creates or updates a device.",
"parameters": [
{
- "name": "resourceGroupName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the resource group."
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
},
{
"name": "deviceName",
@@ -166,24 +154,24 @@
"schema": {
"$ref": "#/definitions/Device"
},
- "description": "Parameters supplied to the create or update hybrid network device operation."
+ "description": "Parameters supplied to the create or update device operation."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Create or update successful.",
+ "description": "Creation or update is successful.",
"schema": {
"$ref": "#/definitions/Device"
}
},
"201": {
- "description": "Create or update successful. The header contains ‘Azure-AsyncOperation’ header pointing to an operations resource. The operation URI can be queried to find the current state of the operation.",
+ "description": "Creation or update is successful. The header contains 'Azure-AsyncOperation' header pointing to an operations resource. The operation URI can be queried to find the current state of the operation.",
"schema": {
"$ref": "#/definitions/Device"
}
@@ -191,12 +179,12 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "Create or update hybrid network device": {
+ "Create or update device": {
"$ref": "./examples/DeviceCreate.json"
}
},
@@ -210,21 +198,17 @@
"Devices"
],
"operationId": "Devices_UpdateTags",
- "description": "Updates a hybrid network device tags.",
+ "description": "Updates device tags.",
"parameters": [
{
- "name": "resourceGroupName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the resource group."
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
},
{
"name": "deviceName",
"in": "path",
"required": true,
"type": "string",
- "description": "The name of the hybrid network device."
+ "description": "The name of the device resource."
},
{
"name": "parameters",
@@ -233,18 +217,18 @@
"schema": {
"$ref": "./common.json#/definitions/TagsObject"
},
- "description": "Parameters supplied to update hybrid network device tags."
+ "description": "Parameters supplied to the update device tags operation."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Update successful. The operation returns the resulting hybrid network device resource.",
+ "description": "Update is successful. The operation returns the resulting device resource.",
"schema": {
"$ref": "#/definitions/Device"
}
@@ -252,7 +236,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
@@ -269,18 +253,18 @@
"Devices"
],
"operationId": "Devices_ListBySubscription",
- "description": "Lists all the hybrid network devices in a subscription.",
+ "description": "Lists all the devices in a subscription.",
"parameters": [
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Request successful. The operation returns a list of hybrid network device resources.",
+ "description": "Request is successful. The operation returns a list of device resources.",
"schema": {
"$ref": "#/definitions/DeviceListResult"
}
@@ -288,13 +272,13 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "List all hybrid network devices in a subscription.": {
- "$ref": "./examples/DeviceListAll.json"
+ "List all devices in a subscription.": {
+ "$ref": "./examples/DeviceListBySubscription.json"
}
},
"x-ms-pageable": {
@@ -308,25 +292,21 @@
"Devices"
],
"operationId": "Devices_ListByResourceGroup",
- "description": "Lists all the hybrid network devices in a resource group.",
+ "description": "Lists all the device resource in a resource group.",
"parameters": [
{
- "name": "resourceGroupName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the resource group."
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Request successful. The operation returns a list of hybrid network device resources.",
+ "description": "Request is successful. The operation returns a list of device resources.",
"schema": {
"$ref": "#/definitions/DeviceListResult"
}
@@ -334,13 +314,13 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "List all hybrid network devices in resource group": {
- "$ref": "./examples/DeviceListAllByResourceGroup.json"
+ "List all devices in resource group": {
+ "$ref": "./examples/DeviceListByResourceGroup.json"
}
},
"x-ms-pageable": {
@@ -354,32 +334,28 @@
"Devices"
],
"operationId": "Devices_ListRegistrationKey",
- "description": "List the registration key for the hybrid network device.",
+ "description": "List the registration key for the device.",
"parameters": [
{
- "name": "resourceGroupName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the resource group."
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
},
{
"name": "deviceName",
"in": "path",
"required": true,
"type": "string",
- "description": "The name of the hybrid network device."
+ "description": "The name of the device resource."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "The registration key information for the hybrid network device.",
+ "description": "The registration key information for the device.",
"schema": {
"$ref": "#/definitions/DeviceRegistrationKey"
}
@@ -387,12 +363,12 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "Get hybrid network device registration key": {
+ "Get device registration key": {
"$ref": "./examples/DeviceListRegistrationKey.json"
}
}
@@ -405,18 +381,18 @@
"properties": {
"x-ms-client-flatten": true,
"$ref": "#/definitions/DevicePropertiesFormat",
- "description": "Hybrid network device properties."
+ "description": "Device properties."
}
},
"allOf": [
{
- "$ref": "./common.json#/definitions/Resource"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource"
}
],
- "description": "Hybrid network device resource."
+ "description": "Device resource."
},
"DevicePropertiesFormat": {
- "description": "Hybrid network device properties.",
+ "description": "Device properties.",
"required": [
"deviceType"
],
@@ -429,7 +405,8 @@
"enum": [
"Unknown",
"NotRegistered",
- "Registered"
+ "Registered",
+ "Deleted"
],
"x-ms-enum": {
"name": "Status",
@@ -439,11 +416,11 @@
"provisioningState": {
"readOnly": true,
"$ref": "./common.json#/definitions/ProvisioningState",
- "description": "The provisioning state of the hybrid network device resource."
+ "description": "The provisioning state of the device resource."
},
"deviceType": {
"type": "string",
- "description": "The type of the hybrid network device.",
+ "description": "The type of the device.",
"enum": [
"Unknown",
"AzureStackEdge"
@@ -456,25 +433,25 @@
"azureStackEdge": {
"x-ms-discriminator-value": "AzureStackEdge",
"$ref": "./common.json#/definitions/SubResource",
- "description": "The reference to the azure stack edge device."
+ "description": "The reference to the Azure stack edge device."
},
- "virtualNetworkFunctions": {
+ "networkFunctions": {
"readOnly": true,
"type": "array",
"items": {
"$ref": "./common.json#/definitions/SubResource"
},
- "description": "The list of virtual network functions deployed on the hybrid network device."
+ "description": "The list of network functions deployed on the device."
}
}
},
"DeviceRegistrationKey": {
- "description": "The hybrid network device registration key",
+ "description": "The device registration key.",
"properties": {
"registrationKey": {
"readOnly": true,
"type": "string",
- "description": "The registration key for hybrid network device."
+ "description": "The registration key for the device."
}
}
},
@@ -485,7 +462,7 @@
"items": {
"$ref": "#/definitions/Device"
},
- "description": "A list of hybrid network devices."
+ "description": "A list of devices."
},
"nextLink": {
"type": "string",
@@ -493,7 +470,7 @@
"description": "The URL to get the next set of results."
}
},
- "description": "Response for hybrid network devices API service call."
+ "description": "Response for devices API service call."
}
}
}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceCreate.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceCreate.json
index 3b4cabc40640..288cd948bdcf 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceCreate.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceCreate.json
@@ -28,7 +28,7 @@
"azureStackEdge": {
"id": "/subscriptions/subid1/resourcegroups/rg2/providers/Microsoft.DataboxEdge/DataboxEdgeDevices/TestDataboxEdgeDeviceName"
},
- "virtualNetworkFunctions": null
+ "networkFunctions": null
}
}
},
@@ -45,7 +45,7 @@
"azureStackEdge": {
"id": "/subscriptions/subid1/resourcegroups/rg2/providers/Microsoft.DataboxEdge/DataboxEdgeDevices/TestDataboxEdgeDeviceName"
},
- "virtualNetworkFunctions": null
+ "networkFunctions": null
}
}
}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceGet.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceGet.json
index 47df323a3673..4c5f246a2e4c 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceGet.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceGet.json
@@ -19,9 +19,9 @@
"azureStackEdge": {
"id": "/subscriptions/subid1/resourcegroups/rg2/providers/Microsoft.DataboxEdge/DataboxEdgeDevices/TestDataboxEdgeDeviceName"
},
- "virtualNetworkFunctions": [
+ "networkFunctions": [
{
- "id": "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.HybridNetwork/virtualNetworkFunctions/TestVirtualNetworkFunction"
+ "id": "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.HybridNetwork/networkFunctions/TestNetworkFunction"
}
]
}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceListAllByResourceGroup.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceListByResourceGroup.json
similarity index 88%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceListAllByResourceGroup.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceListByResourceGroup.json
index 758b069ac135..8bf7479f30f5 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceListAllByResourceGroup.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceListByResourceGroup.json
@@ -20,9 +20,9 @@
"azureStackEdge": {
"id": "/subscriptions/subid1/resourcegroups/rg2/providers/Microsoft.DataboxEdge/DataboxEdgeDevices/TestDataboxEdgeDeviceName"
},
- "virtualNetworkFunctions": [
+ "networkFunctions": [
{
- "id": "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.HybridNetwork/virtualNetworkFunctions/TestVirtualNetworkFunction"
+ "id": "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.HybridNetwork/networkFunctions/TestVirtualNetworkFunction"
}
]
}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceListAll.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceListBySubscription.json
similarity index 88%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceListAll.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceListBySubscription.json
index 673abf63ec08..013a6d11f059 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceListAll.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceListBySubscription.json
@@ -19,9 +19,9 @@
"azureStackEdge": {
"id": "/subscriptions/subid1/resourcegroups/rg2/providers/Microsoft.DataboxEdge/DataboxEdgeDevices/TestDataboxEdgeDeviceName"
},
- "virtualNetworkFunctions": [
+ "networkFunctions": [
{
- "id": "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.HybridNetwork/virtualNetworkFunctions/TestVirtualNetworkFunction"
+ "id": "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.HybridNetwork/networkFunctions/TestNetworkFunction"
}
]
}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceUpdateTags.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceUpdateTags.json
index ae7e1e586e9b..b2e9a82752a5 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceUpdateTags.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeviceUpdateTags.json
@@ -29,9 +29,9 @@
"azureStackEdge": {
"id": "/subscriptions/subid1/resourcegroups/rg2/providers/Microsoft.DataboxEdge/DataboxEdgeDevices/TestDataboxEdgeDeviceName"
},
- "virtualNetworkFunctions": [
+ "networkFunctions": [
{
- "id": "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.HybridNetwork/virtualNetworkFunctions/TestVirtualNetworkFunction"
+ "id": "/subscriptions/subid/resourcegroups/rg1/providers/Microsoft.HybridNetwork/networkFunctions/TestNetworkFunction"
}
]
}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/GetOperations.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/GetOperations.json
index 96a50bbecce7..53c216779283 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/GetOperations.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/GetOperations.json
@@ -9,12 +9,12 @@
"body": {
"value": [
{
- "name": "Microsoft.HybridNetwork/vnfs/read",
+ "name": "Microsoft.HybridNetwork/nfs/read",
"display": {
"provider": "Microsoft Hybrid Network",
- "resource": "Vnf",
- "operation": "Get Vnf",
- "description": "Gets Vnf"
+ "resource": "Nf",
+ "operation": "Get Nf",
+ "description": "Gets Nf"
}
}
]
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionCreate.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionCreate.json
similarity index 91%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionCreate.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionCreate.json
index ff285e2c7263..28a73a2f56ac 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionCreate.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionCreate.json
@@ -3,7 +3,7 @@
"api-version": "2020-01-01-preview",
"subscriptionId": "subid",
"resourceGroupName": "rg",
- "virtualNetworkFunctionName": "testVnf",
+ "networkFunctionName": "testNf",
"parameters": {
"location": "eastus",
"properties": {
@@ -14,7 +14,7 @@
"skuType": "SDWAN",
"vendorName": "testVendor",
"managedApplicationParameters": {},
- "virtualNetworkFunctionUserConfigurations": [
+ "networkFunctionUserConfigurations": [
{
"roleName": "testRole",
"userDataParameters": {},
@@ -58,9 +58,9 @@
"responses": {
"200": {
"body": {
- "id": "/subscriptions/subid/resourcegroups/rg/providers/Microsoft.HybridNetwork/virtualNetworkFunctions/testVnf",
- "name": "testVnf",
- "type": "Microsoft.HybridNetwork/virtualNetworkFunctions",
+ "id": "/subscriptions/subid/resourcegroups/rg/providers/Microsoft.HybridNetwork/networkFunctions/testNf",
+ "name": "testNf",
+ "type": "Microsoft.HybridNetwork/networkFunctions",
"location": "eastus",
"properties": {
"provisioningState": "Succeeded",
@@ -76,7 +76,7 @@
"id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applications/testServiceKey"
},
"managedApplicationParameters": {},
- "virtualNetworkFunctionUserConfigurations": [
+ "networkFunctionUserConfigurations": [
{
"roleName": "testRole",
"userDataParameters": {},
@@ -119,9 +119,9 @@
},
"201": {
"body": {
- "id": "/subscriptions/subid/resourcegroups/rg/providers/Microsoft.HybridNetwork/virtualNetworkFunctions/testVnf",
- "name": "testVnf",
- "type": "Microsoft.HybridNetwork/virtualNetworkFunctions",
+ "id": "/subscriptions/subid/resourcegroups/rg/providers/Microsoft.HybridNetwork/networkFunctions/testNf",
+ "name": "testNf",
+ "type": "Microsoft.HybridNetwork/networkFunctions",
"location": "eastus",
"properties": {
"provisioningState": "Accepted",
@@ -137,7 +137,7 @@
"id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applications/testServiceKey"
},
"managedApplicationParameters": {},
- "virtualNetworkFunctionUserConfigurations": [
+ "networkFunctionUserConfigurations": [
{
"roleName": "testRole",
"userDataParameters": {},
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionDelete.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionDelete.json
similarity index 81%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionDelete.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionDelete.json
index a34ac019cda4..38eaf18e686d 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionDelete.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionDelete.json
@@ -3,7 +3,7 @@
"api-version": "2020-01-01-preview",
"subscriptionId": "subid",
"resourceGroupName": "rg",
- "virtualNetworkFunctionName": "testVnf"
+ "networkFunctionName": "testNf"
},
"responses": {
"200": {},
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionGet.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionGet.json
similarity index 89%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionGet.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionGet.json
index 65dd38218b47..fa5e37a018b3 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionGet.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionGet.json
@@ -3,14 +3,14 @@
"api-version": "2020-01-01-preview",
"subscriptionId": "subid",
"resourceGroupName": "rg",
- "virtualNetworkFunctionName": "testVnf"
+ "networkFunctionName": "testNf"
},
"responses": {
"200": {
"body": {
- "id": "/subscriptions/subid/resourcegroups/rg/providers/Microsoft.HybridNetwork/virtualNetworkFunctions/testVnf",
- "name": "testVnf",
- "type": "Microsoft.HybridNetwork/virtualNetworkFunctions",
+ "id": "/subscriptions/subid/resourcegroups/rg/providers/Microsoft.HybridNetwork/networkFunctions/testNf",
+ "name": "testNf",
+ "type": "Microsoft.HybridNetwork/networkFunctions",
"location": "eastus",
"properties": {
"provisioningState": "Succeeded",
@@ -26,7 +26,7 @@
"id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applications/testServiceKey"
},
"managedApplicationParameters": {},
- "virtualNetworkFunctionUserConfigurations": [
+ "networkFunctionUserConfigurations": [
{
"roleName": "testRole",
"userDataParameters": {},
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionListByResourceGroup.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionListByResourceGroup.json
similarity index 91%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionListByResourceGroup.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionListByResourceGroup.json
index ec8b416242e0..dbecbbbf7ae9 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionListByResourceGroup.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionListByResourceGroup.json
@@ -9,9 +9,9 @@
"body": {
"value": [
{
- "id": "/subscriptions/subid/resourcegroups/rg/providers/Microsoft.HybridNetwork/virtualNetworkFunctions/testVnf",
- "name": "testVnf",
- "type": "Microsoft.HybridNetwork/virtualNetworkFunctions",
+ "id": "/subscriptions/subid/resourcegroups/rg/providers/Microsoft.HybridNetwork/networkFunctions/testNf",
+ "name": "testNf",
+ "type": "Microsoft.HybridNetwork/networkFunctions",
"location": "eastus",
"properties": {
"provisioningState": "Succeeded",
@@ -27,7 +27,7 @@
"id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applications/testServiceKey"
},
"managedApplicationParameters": {},
- "virtualNetworkFunctionUserConfigurations": [
+ "networkFunctionUserConfigurations": [
{
"roleName": "testRole",
"userDataParameters": {},
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionListBySubscription.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionListBySubscription.json
similarity index 91%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionListBySubscription.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionListBySubscription.json
index 7d644952cf00..51542a9b7a7a 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionListBySubscription.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionListBySubscription.json
@@ -8,9 +8,9 @@
"body": {
"value": [
{
- "id": "/subscriptions/subid/resourcegroups/rg/providers/Microsoft.HybridNetwork/virtualNetworkFunctions/testVnf",
- "name": "testVnf",
- "type": "Microsoft.HybridNetwork/virtualNetworkFunctions",
+ "id": "/subscriptions/subid/resourcegroups/rg/providers/Microsoft.HybridNetwork/networkFunctions/testNf",
+ "name": "testNf",
+ "type": "Microsoft.HybridNetwork/networkFunctions",
"location": "eastus",
"properties": {
"provisioningState": "Succeeded",
@@ -26,7 +26,7 @@
"id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applications/testServiceKey"
},
"managedApplicationParameters": {},
- "virtualNetworkFunctionUserConfigurations": [
+ "networkFunctionUserConfigurations": [
{
"roleName": "testRole",
"userDataParameters": {},
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionGetSkuDetails.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionSkuDetailsGet.json
similarity index 100%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionGetSkuDetails.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionSkuDetailsGet.json
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionSkuList.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionSkuListByVendor.json
similarity index 100%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionSkuList.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionSkuListByVendor.json
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionUpdateTags.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionUpdateTags.json
similarity index 90%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionUpdateTags.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionUpdateTags.json
index ce573d51b592..372cb0217215 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionUpdateTags.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionUpdateTags.json
@@ -3,7 +3,7 @@
"api-version": "2020-01-01-preview",
"subscriptionId": "subid",
"resourceGroupName": "rg",
- "virtualNetworkFunctionName": "testVnf",
+ "networkFunctionName": "testNf",
"parameters": {
"tags": {
"tag1": "value1",
@@ -14,9 +14,9 @@
"responses": {
"200": {
"body": {
- "id": "/subscriptions/subid/resourcegroups/rg/providers/Microsoft.HybridNetwork/virtualNetworkFunctions/testVnf",
- "name": "testVnf",
- "type": "Microsoft.HybridNetwork/virtualNetworkFunctions",
+ "id": "/subscriptions/subid/resourcegroups/rg/providers/Microsoft.HybridNetwork/networkFunctions/testNf",
+ "name": "testNf",
+ "type": "Microsoft.HybridNetwork/networkFunctions",
"location": "eastus",
"tags": {
"tag1": "value1",
@@ -36,7 +36,7 @@
"id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applications/testServiceKey"
},
"managedApplicationParameters": {},
- "virtualNetworkFunctionUserConfigurations": [
+ "networkFunctionUserConfigurations": [
{
"roleName": "testRole",
"userDataParameters": {},
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionVendorAndSkuList.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionVendorAndSkuListBySubscription.json
similarity index 100%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VirtualNetworkFunctionVendorAndSkuList.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/NetworkFunctionVendorAndSkuListBySubscription.json
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceGet.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceGet.json
new file mode 100644
index 000000000000..757311c81677
--- /dev/null
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceGet.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01-preview",
+ "subscriptionId": "subid",
+ "locationName": "eastus",
+ "vendorName": "testVendor",
+ "serviceKey": "testServiceKey",
+ "roleInstanceName": "mrm"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "mrm",
+ "id": "/subscriptions/subid/providers/Microsoft.HybridNetwork/locations/eastus/vendors/testVendor/networkFunctions/testServiceKey/roleInstances/mrm",
+ "type": "Microsoft.HybridNetwork/locations/vendors/networkFunctions/roleInstances",
+ "properties": {
+ "operationalState": "Running"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceListByVendorNetworkFunction.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceListByVendorNetworkFunction.json
new file mode 100644
index 000000000000..fdfd450955a5
--- /dev/null
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceListByVendorNetworkFunction.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01-preview",
+ "subscriptionId": "subid",
+ "locationName": "eastus",
+ "vendorName": "testVendor",
+ "serviceKey": "testServiceKey"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "mrm",
+ "id": "/subscriptions/subid/providers/Microsoft.HybridNetwork/locations/eastus/vendors/testVendor/networkFunctions/testServiceKey/roleInstances/mrm",
+ "type": "Microsoft.HybridNetwork/locations/vendors/networkFunctions/roleInstances",
+ "properties": {
+ "operationalState": "Running"
+ }
+ },
+ {
+ "name": "msm",
+ "id": "/subscriptions/subid/providers/Microsoft.HybridNetwork/locations/eastus/vendors/testVendor/networkFunctions/testServiceKey/roleInstances/msm",
+ "type": "Microsoft.HybridNetwork/locations/vendors/networkFunctions/roleInstances",
+ "properties": {
+ "operationalState": "Stopped"
+ }
+ }
+ ],
+ "nextLink": "string"
+ }
+ }
+ }
+}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceRestart.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceRestart.json
new file mode 100644
index 000000000000..1ab187f60a1f
--- /dev/null
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceRestart.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01-preview",
+ "subscriptionId": "subid",
+ "locationName": "eastus",
+ "vendorName": "testVendor",
+ "serviceKey": "testServiceKey",
+ "roleInstanceName": "mrm"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceStart.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceStart.json
new file mode 100644
index 000000000000..1ab187f60a1f
--- /dev/null
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceStart.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01-preview",
+ "subscriptionId": "subid",
+ "locationName": "eastus",
+ "vendorName": "testVendor",
+ "serviceKey": "testServiceKey",
+ "roleInstanceName": "mrm"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceStop.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceStop.json
new file mode 100644
index 000000000000..1ab187f60a1f
--- /dev/null
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/RoleInstanceStop.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01-preview",
+ "subscriptionId": "subid",
+ "locationName": "eastus",
+ "vendorName": "testVendor",
+ "serviceKey": "testServiceKey",
+ "roleInstanceName": "mrm"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorListAll.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorListBySubscription.json
similarity index 100%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorListAll.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorListBySubscription.json
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorVnfCreate.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorNfCreate.json
similarity index 71%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorVnfCreate.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorNfCreate.json
index bb8d1ddd0c12..d81cd24f5aaf 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorVnfCreate.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorNfCreate.json
@@ -6,18 +6,25 @@
"vendorName": "testVendor",
"serviceKey": "testServiceKey",
"parameters": {
- "location": "eastus",
"properties": {
"skuType": "SDWAN",
"vendorProvisioningState": "Provisioning",
- "virtualNetworkFunctionVendorConfigurations": [
+ "networkFunctionVendorConfigurations": [
{
"roleName": "testRole",
- "customData": "base-64 encoded string of custom data",
"osProfile": {
"adminUsername": "dummyuser",
- "adminPassword": "dummypassword",
- "sshPublicKey": null
+ "linuxConfiguration": {
+ "ssh": {
+ "publicKeys": [
+ {
+ "path": "home/user/.ssh/authorized_keys",
+ "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAwrr66r8n6B8Y0zMF3dOpXEapIQD9DiYQ6D6/zwor9o39jSkHNiMMER/GETBbzP83LOcekm02aRjo55ArO7gPPVvCXbrirJu9pkm4AC4BBre5xSLS= user@constoso-DSH"
+ }
+ ]
+ }
+ },
+ "customData": "base-64 encoded string of custom data"
},
"userDataParameters": {},
"networkInterfaces": [
@@ -60,22 +67,30 @@
"responses": {
"200": {
"body": {
- "id": "/subscriptions/subid/providers/Microsoft.HybridNetwork/locations/eastus/vendors/testVendor/virtualNetworkFunctions/testServiceKey",
+ "id": "/subscriptions/subid/providers/Microsoft.HybridNetwork/locations/eastus/vendors/testVendor/networkFunctions/testServiceKey",
"name": "testServiceKey",
- "type": "Microsoft.HybridNetwork/locations/vendors/virtualNetworkFunctions",
- "location": "eastus",
+ "type": "Microsoft.HybridNetwork/locations/vendors/networkFunctions",
"properties": {
"provisioningState": "Succeeded",
"vendorProvisioningState": "Provisioning",
"skuName": "testSku",
"skuType": "SDWAN",
- "virtualNetworkFunctionVendorConfigurations": [
+ "networkFunctionVendorConfigurations": [
{
"roleName": "testRole",
- "customData": "base-64 encoded string of custom data",
"osProfile": {
"adminUsername": "dummyuser",
- "sshPublicKey": null
+ "linuxConfiguration": {
+ "ssh": {
+ "publicKeys": [
+ {
+ "path": "home/user/.ssh/authorized_keys",
+ "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAwrr66r8n6B8Y0zMF3dOpXEapIQD9DiYQ6D6/zwor9o39jSkHNiMMER/GETBbzP83LOcekm02aRjo55ArO7gPPVvCXbrirJu9pkm4AC4BBre5xSLS= user@constoso-DSH"
+ }
+ ]
+ }
+ },
+ "customData": "base-64 encoded string of custom data"
},
"userDataParameters": {},
"networkInterfaces": [
@@ -117,22 +132,30 @@
},
"201": {
"body": {
- "id": "/subscriptions/subid/providers/Microsoft.HybridNetwork/locations/eastus/vendors/testVendor/virtualNetworkFunctions/testServiceKey",
+ "id": "/subscriptions/subid/providers/Microsoft.HybridNetwork/locations/eastus/vendors/testVendor/networkFunctions/testServiceKey",
"name": "testServiceKey",
- "type": "Microsoft.HybridNetwork/locations/vendors/virtualNetworkFunctions",
- "location": "eastus",
+ "type": "Microsoft.HybridNetwork/locations/vendors/networkFunctions",
"properties": {
"provisioningState": "Accepted",
"vendorProvisioningState": "Provisioning",
"skuName": "testSku",
"skuType": "SDWAN",
- "virtualNetworkFunctionVendorConfigurations": [
+ "networkFunctionVendorConfigurations": [
{
"roleName": "testRole",
- "customData": "base-64 encoded string of custom data",
"osProfile": {
"adminUsername": "dummyuser",
- "sshPublicKey": null
+ "linuxConfiguration": {
+ "ssh": {
+ "publicKeys": [
+ {
+ "path": "home/user/.ssh/authorized_keys",
+ "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAwrr66r8n6B8Y0zMF3dOpXEapIQD9DiYQ6D6/zwor9o39jSkHNiMMER/GETBbzP83LOcekm02aRjo55ArO7gPPVvCXbrirJu9pkm4AC4BBre5xSLS= user@constoso-DSH"
+ }
+ ]
+ }
+ },
+ "customData": "base-64 encoded string of custom data"
},
"userDataParameters": {},
"networkInterfaces": [
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorVnfGet.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorNfGet.json
similarity index 71%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorVnfGet.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorNfGet.json
index 942593ddc290..11c880a21d7c 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorVnfGet.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorNfGet.json
@@ -9,22 +9,30 @@
"responses": {
"200": {
"body": {
- "id": "/subscriptions/subid/providers/Microsoft.HybridNetwork/locations/eastus/vendors/testVendor/virtualNetworkFunctions/testServiceKey",
+ "id": "/subscriptions/subid/providers/Microsoft.HybridNetwork/locations/eastus/vendors/testVendor/networkFunctions/testServiceKey",
"name": "testServiceKey",
- "type": "Microsoft.HybridNetwork/locations/vendors/virtualNetworkFunctions",
- "location": "eastus",
+ "type": "Microsoft.HybridNetwork/locations/vendors/networkFunctions",
"properties": {
"provisioningState": "Succeeded",
"vendorProvisioningState": "Provisioning",
"skuName": "testSku",
"skuType": "SDWAN",
- "virtualNetworkFunctionVendorConfigurations": [
+ "networkFunctionVendorConfigurations": [
{
"roleName": "testRole",
- "customData": "base-64 encoded string of custom data",
"osProfile": {
"adminUsername": "dummyuser",
- "sshPublicKey": null
+ "linuxConfiguration": {
+ "ssh": {
+ "publicKeys": [
+ {
+ "path": "home/user/.ssh/authorized_keys",
+ "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAwrr66r8n6B8Y0zMF3dOpXEapIQD9DiYQ6D6/zwor9o39jSkHNiMMER/GETBbzP83LOcekm02aRjo55ArO7gPPVvCXbrirJu9pkm4AC4BBre5xSLS= user@constoso-DSH"
+ }
+ ]
+ }
+ },
+ "customData": "base-64 encoded string of custom data"
},
"userDataParameters": {},
"networkInterfaces": [
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorVnfList.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorNfListByVendor.json
similarity index 72%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorVnfList.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorNfListByVendor.json
index e28b4364bfd6..256130794742 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorVnfList.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorNfListByVendor.json
@@ -10,22 +10,30 @@
"body": {
"value": [
{
- "id": "/subscriptions/subid/providers/Microsoft.HybridNetwork/locations/eastus/vendors/testVendor/virtualNetworkFunctions/testServiceKey",
+ "id": "/subscriptions/subid/providers/Microsoft.HybridNetwork/locations/eastus/vendors/testVendor/networkFunctions/testServiceKey",
"name": "TestServiceKey",
- "type": "Microsoft.HybridNetwork/locations/vendors/virtualNetworkFunctions",
- "location": "eastus",
+ "type": "Microsoft.HybridNetwork/locations/vendors/networkFunctions",
"properties": {
"provisioningState": "Succeeded",
"vendorProvisioningState": "Provisioning",
"skuName": "testSku",
"skuType": "SDWAN",
- "virtualNetworkFunctionVendorConfigurations": [
+ "networkFunctionVendorConfigurations": [
{
"roleName": "testRole",
- "customData": "base-64 encoded string of custom data",
"osProfile": {
"adminUsername": "dummyuser",
- "sshPublicKey": null
+ "linuxConfiguration": {
+ "ssh": {
+ "publicKeys": [
+ {
+ "path": "home/user/.ssh/authorized_keys",
+ "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAwrr66r8n6B8Y0zMF3dOpXEapIQD9DiYQ6D6/zwor9o39jSkHNiMMER/GETBbzP83LOcekm02aRjo55ArO7gPPVvCXbrirJu9pkm4AC4BBre5xSLS= user@constoso-DSH"
+ }
+ ]
+ }
+ },
+ "customData": "base-64 encoded string of custom data"
},
"userDataParameters": {},
"networkInterfaces": [
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuCreate.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuCreate.json
index 1402c9d87fe5..70b4f0ddf3dd 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuCreate.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuCreate.json
@@ -9,22 +9,51 @@
"deploymentMode": "PrivateEdgeZone",
"preview": true,
"managedApplicationTemplate": {},
- "virtualNetworkFunctionTemplate": {
- "virutalNetworkFunctionRoleConfigurations": [
+ "networkFunctionTemplate": {
+ "networkFunctionRoleConfigurations": [
{
"roleName": "test",
"roleType": "VirtualMachine",
"virtualMachineSize": "Standard_D3_v2",
- "imageReference": {
- "osType": "Linux",
- "vhdName": "vhdName",
- "vhdType": "VHD",
- "sasUri": "https://.blob.core.windows.net//?sp=rl&st=st>Z&se=Z&sv=&sr=b&sig="
+ "storageProfile": {
+ "imageReference": {
+ "publisher": "Canonical",
+ "offer": "UbuntuServer",
+ "sku": "18.04-LTS",
+ "version": "18.04.201804262"
+ },
+ "osDisk": {
+ "osType": "Linux",
+ "name": "vhdName",
+ "diskSizeGB": 30,
+ "vhd": {
+ "uri": "https://contoso.net/link/vnd.vhd?sp=rl&st=2020-10-08T20:38:19Z&se=2020-12-09T19:38:00Z&sv=2019-12-12&sr=b&sig=7BM2f4yOw%3D"
+ }
+ },
+ "dataDisks": [
+ {
+ "createOption": "Empty",
+ "name": "DataDisk1",
+ "diskSizeGB": 10
+ }
+ ]
},
"osProfile": {
"adminUsername": "dummyuser",
- "adminPassword": "dummypassword",
- "sshPublicKey": null
+ "linuxConfiguration": {
+ "ssh": {
+ "publicKeys": [
+ {
+ "path": "home/user/.ssh/authorized_keys",
+ "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAwrr66r8n6B8Y0zMF3dOpXEapIQD9DiYQ6D6/zwor9o39jSkHNiMMER/GETBbzP83LOcekm02aRjo55ArO7gPPVvCXbrirJu9pkm4AC4BBre5xSLS= user@constoso-DSH"
+ }
+ ]
+ }
+ },
+ "customData": "base-64 encoded string of custom data"
+ },
+ "customProfile": {
+ "metadataConfigurationPath": "/var/logs/network.cfg"
},
"networkInterfaces": [
{
@@ -75,21 +104,49 @@
"preview": true,
"provisioningState": "Succeeded",
"managedApplicationTemplate": {},
- "virtualNetworkFunctionTemplate": {
- "virutalNetworkFunctionRoleConfigurations": [
+ "networkFunctionTemplate": {
+ "networkFunctionRoleConfigurations": [
{
"roleName": "test",
"roleType": "VirtualMachine",
"virtualMachineSize": "Standard_D3_v2",
- "imageReference": {
- "osType": "Linux",
- "vhdName": "vhdName",
- "vhdType": "VHD",
- "sasUri": "https://.blob.core.windows.net//?sp=rl&st=st>Z&se=Z&sv=&sr=b&sig="
+ "storageProfile": {
+ "imageReference": {
+ "publisher": "Canonical",
+ "offer": "UbuntuServer",
+ "sku": "18.04-LTS",
+ "version": "18.04.201804262"
+ },
+ "osDisk": {
+ "osType": "Linux",
+ "name": "vhdName",
+ "diskSizeGB": 30,
+ "vhd": {}
+ },
+ "dataDisks": [
+ {
+ "createOption": "Empty",
+ "name": "DataDisk1",
+ "diskSizeGB": 10
+ }
+ ]
},
"osProfile": {
"adminUsername": "dummyuser",
- "sshPublicKey": null
+ "linuxConfiguration": {
+ "ssh": {
+ "publicKeys": [
+ {
+ "path": "home/user/.ssh/authorized_keys",
+ "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAwrr66r8n6B8Y0zMF3dOpXEapIQD9DiYQ6D6/zwor9o39jSkHNiMMER/GETBbzP83LOcekm02aRjo55ArO7gPPVvCXbrirJu9pkm4AC4BBre5xSLS= user@constoso-DSH"
+ }
+ ]
+ }
+ },
+ "customData": "base-64 encoded string of custom data"
+ },
+ "customProfile": {
+ "metadataConfigurationPath": "/var/logs/network.cfg"
},
"networkInterfaces": [
{
@@ -139,21 +196,49 @@
"preview": true,
"provisioningState": "Accepted",
"managedApplicationTemplate": {},
- "virtualNetworkFunctionTemplate": {
- "virutalNetworkFunctionRoleConfigurations": [
+ "networkFunctionTemplate": {
+ "networkFunctionRoleConfigurations": [
{
"roleName": "test",
"roleType": "VirtualMachine",
"virtualMachineSize": "Standard_D3_v2",
- "imageReference": {
- "osType": "Linux",
- "vhdName": "vhdName",
- "vhdType": "VHD",
- "sasUri": "https://.blob.core.windows.net//?sp=rl&st=st>Z&se=Z&sv=&sr=b&sig="
+ "storageProfile": {
+ "imageReference": {
+ "publisher": "Canonical",
+ "offer": "UbuntuServer",
+ "sku": "18.04-LTS",
+ "version": "18.04.201804262"
+ },
+ "osDisk": {
+ "osType": "Linux",
+ "name": "vhdName",
+ "diskSizeGB": 30,
+ "vhd": {}
+ },
+ "dataDisks": [
+ {
+ "createOption": "Empty",
+ "name": "DataDisk1",
+ "diskSizeGB": 10
+ }
+ ]
},
"osProfile": {
"adminUsername": "dummyuser",
- "sshPublicKey": null
+ "linuxConfiguration": {
+ "ssh": {
+ "publicKeys": [
+ {
+ "path": "home/user/.ssh/authorized_keys",
+ "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAwrr66r8n6B8Y0zMF3dOpXEapIQD9DiYQ6D6/zwor9o39jSkHNiMMER/GETBbzP83LOcekm02aRjo55ArO7gPPVvCXbrirJu9pkm4AC4BBre5xSLS= user@constoso-DSH"
+ }
+ ]
+ }
+ },
+ "customData": "base-64 encoded string of custom data"
+ },
+ "customProfile": {
+ "metadataConfigurationPath": "/var/logs/network.cfg"
},
"networkInterfaces": [
{
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuGet.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuGet.json
index 605cc22e53dd..61f27b3b13f0 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuGet.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuGet.json
@@ -16,21 +16,49 @@
"preview": true,
"provisioningState": "Succeeded",
"managedApplicationTemplate": {},
- "virtualNetworkFunctionTemplate": {
- "virutalNetworkFunctionRoleConfigurations": [
+ "networkFunctionTemplate": {
+ "networkFunctionRoleConfigurations": [
{
"roleName": "test",
"roleType": "VirtualMachine",
"virtualMachineSize": "Standard_D3_v2",
- "imageReference": {
- "osType": "Linux",
- "vhdName": "vhdName",
- "vhdType": "VHD",
- "sasUri": "https://.blob.core.windows.net//?sp=rl&st=st>Z&se=Z&sv=&sr=b&sig="
+ "storageProfile": {
+ "imageReference": {
+ "publisher": "Canonical",
+ "offer": "UbuntuServer",
+ "sku": "18.04-LTS",
+ "version": "18.04.201804262"
+ },
+ "osDisk": {
+ "osType": "Linux",
+ "name": "vhdName",
+ "diskSizeGB": 30,
+ "vhd": {}
+ },
+ "dataDisks": [
+ {
+ "createOption": "Empty",
+ "name": "DataDisk1",
+ "diskSizeGB": 10
+ }
+ ]
},
"osProfile": {
"adminUsername": "dummyuser",
- "sshPublicKey": null
+ "linuxConfiguration": {
+ "ssh": {
+ "publicKeys": [
+ {
+ "path": "home/user/.ssh/authorized_keys",
+ "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAwrr66r8n6B8Y0zMF3dOpXEapIQD9DiYQ6D6/zwor9o39jSkHNiMMER/GETBbzP83LOcekm02aRjo55ArO7gPPVvCXbrirJu9pkm4AC4BBre5xSLS= user@constoso-DSH"
+ }
+ ]
+ }
+ },
+ "customData": "base-64 encoded string of custom data"
+ },
+ "customProfile": {
+ "metadataConfigurationPath": "/var/logs/network.cfg"
},
"networkInterfaces": [
{
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuListAll.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuListByVendor.json
similarity index 57%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuListAll.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuListByVendor.json
index 9d6161f86364..4f0f858ad8d0 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuListAll.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuListByVendor.json
@@ -17,21 +17,49 @@
"preview": true,
"provisioningState": "Succeeded",
"managedApplicationTemplate": {},
- "virtualNetworkFunctionTemplate": {
- "virutalNetworkFunctionRoleConfigurations": [
+ "networkFunctionTemplate": {
+ "networkFunctionRoleConfigurations": [
{
"roleName": "test",
"roleType": "VirtualMachine",
"virtualMachineSize": "Standard_D3_v2",
- "imageReference": {
- "osType": "Linux",
- "vhdName": "vhdName",
- "vhdType": "VHD",
- "sasUri": "https://.blob.core.windows.net//?sp=rl&st=st>Z&se=Z&sv=&sr=b&sig="
+ "storageProfile": {
+ "imageReference": {
+ "publisher": "Canonical",
+ "offer": "UbuntuServer",
+ "sku": "18.04-LTS",
+ "version": "18.04.201804262"
+ },
+ "osDisk": {
+ "osType": "Linux",
+ "name": "vhdName",
+ "diskSizeGB": 30,
+ "vhd": {}
+ },
+ "dataDisks": [
+ {
+ "createOption": "Empty",
+ "name": "DataDisk1",
+ "diskSizeGB": 10
+ }
+ ]
},
"osProfile": {
"adminUsername": "dummyuser",
- "sshPublicKey": null
+ "linuxConfiguration": {
+ "ssh": {
+ "publicKeys": [
+ {
+ "path": "home/user/.ssh/authorized_keys",
+ "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAwrr66r8n6B8Y0zMF3dOpXEapIQD9DiYQ6D6/zwor9o39jSkHNiMMER/GETBbzP83LOcekm02aRjo55ArO7gPPVvCXbrirJu9pkm4AC4BBre5xSLS= user@constoso-DSH"
+ }
+ ]
+ }
+ },
+ "customData": "base-64 encoded string of custom data"
+ },
+ "customProfile": {
+ "metadataConfigurationPath": "/var/logs/network.cfg"
},
"networkInterfaces": [
{
@@ -79,21 +107,49 @@
"preview": true,
"provisioningState": "Succeeded",
"managedApplicationTemplate": {},
- "virtualNetworkFunctionTemplate": {
- "virutalNetworkFunctionRoleConfigurations": [
+ "networkFunctionTemplate": {
+ "networkFunctionRoleConfigurations": [
{
"roleName": "test",
"roleType": "VirtualMachine",
"virtualMachineSize": "Standard_D3_v2",
- "imageReference": {
- "osType": "Linux",
- "vhdName": "vhdName",
- "vhdType": "VHD",
- "sasUri": "https://.blob.core.windows.net//?sp=rl&st=st>Z&se=Z&sv=&sr=b&sig="
+ "storageProfile": {
+ "imageReference": {
+ "publisher": "Canonical",
+ "offer": "UbuntuServer",
+ "sku": "18.04-LTS",
+ "version": "18.04.201804262"
+ },
+ "osDisk": {
+ "osType": "Linux",
+ "name": "vhdName",
+ "diskSizeGB": 30,
+ "vhd": {}
+ },
+ "dataDisks": [
+ {
+ "createOption": "Empty",
+ "name": "DataDisk1",
+ "diskSizeGB": 10
+ }
+ ]
},
"osProfile": {
"adminUsername": "dummyuser",
- "sshPublicKey": null
+ "linuxConfiguration": {
+ "ssh": {
+ "publicKeys": [
+ {
+ "path": "home/user/.ssh/authorized_keys",
+ "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAwrr66r8n6B8Y0zMF3dOpXEapIQD9DiYQ6D6/zwor9o39jSkHNiMMER/GETBbzP83LOcekm02aRjo55ArO7gPPVvCXbrirJu9pkm4AC4BBre5xSLS= user@constoso-DSH"
+ }
+ ]
+ }
+ },
+ "customData": "base-64 encoded string of custom data"
+ },
+ "customProfile": {
+ "metadataConfigurationPath": "/var/logs/network.cfg"
},
"networkInterfaces": [
{
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/CreateVendorSkuPreview.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuPreviewCreate.json
similarity index 100%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/CreateVendorSkuPreview.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuPreviewCreate.json
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeleteVendorSkuPreview.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuPreviewDelete.json
similarity index 100%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/DeleteVendorSkuPreview.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuPreviewDelete.json
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/GetVendorSkuPreview.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuPreviewGet.json
similarity index 100%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/GetVendorSkuPreview.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuPreviewGet.json
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/GetVendorSkuPreviews.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuPreviewListBySku.json
similarity index 100%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/GetVendorSkuPreviews.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/examples/VendorSkuPreviewListBySku.json
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/networkFunction.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/networkFunction.json
new file mode 100644
index 000000000000..d64f1c46f743
--- /dev/null
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/networkFunction.json
@@ -0,0 +1,452 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "HybridNetworkManagementClient",
+ "description": "The resources in this swagger specification will be used to manage the network function deployment in a Hybrid Network resource provider.",
+ "version": "2020-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.HybridNetwork/networkFunctions/{networkFunctionName}": {
+ "delete": {
+ "tags": [
+ "NetworkFunctions"
+ ],
+ "operationId": "NetworkFunctions_Delete",
+ "description": "Deletes the specified network function resource.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "networkFunctionName",
+ "description": "The name of the network function.",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation is completed successfully."
+ },
+ "202": {
+ "description": "Accepted. The header contains 'Azure-AsyncOperation' header pointing to an operations resource. The operation URI can be queried to find the current state of the operation."
+ },
+ "204": {
+ "description": "Request is successful. Resource with the specified name does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete network function resource": {
+ "$ref": "./examples/NetworkFunctionDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ },
+ "get": {
+ "tags": [
+ "NetworkFunctions"
+ ],
+ "operationId": "NetworkFunctions_Get",
+ "description": "Gets information about the specified network function resource.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "networkFunctionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the network function resource."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Operation is successful. The operation returns the resulting network function resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkFunction"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get network function resource": {
+ "$ref": "./examples/NetworkFunctionGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "NetworkFunctions"
+ ],
+ "operationId": "NetworkFunctions_CreateOrUpdate",
+ "description": "Creates or updates a network function resource.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "networkFunctionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource name for the network function resource."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NetworkFunction"
+ },
+ "description": "Parameters supplied in the body to the create or update network function operation."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation is completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/NetworkFunction"
+ }
+ },
+ "201": {
+ "description": "Created or Updated. The header contains 'Azure-AsyncOperation' header pointing to an operation resource. The operation URI can be queried to find the current state of the operation.",
+ "schema": {
+ "$ref": "#/definitions/NetworkFunction"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create network function resource": {
+ "$ref": "./examples/NetworkFunctionCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ },
+ "patch": {
+ "tags": [
+ "NetworkFunctions"
+ ],
+ "operationId": "NetworkFunctions_UpdateTags",
+ "description": "Updates the tags for the network function resource.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "networkFunctionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource name for the network function resource."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./common.json#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to the update network function tags operation."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Update is completed successfully. The operation returns the resulting network function resource.",
+ "schema": {
+ "$ref": "#/definitions/NetworkFunction"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update tags for network function resource": {
+ "$ref": "./examples/NetworkFunctionUpdateTags.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/networkFunctions": {
+ "get": {
+ "description": "Lists all the network functions in a subscription.",
+ "operationId": "NetworkFunctions_ListBySubscription",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request is successful. The operation returns a list of network function resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkFunctionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "tags": [
+ "NetworkFunctions"
+ ],
+ "x-ms-examples": {
+ "List all network function resources in subscription.": {
+ "$ref": "./examples/NetworkFunctionListBySubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridNetwork/networkFunctions": {
+ "get": {
+ "tags": [
+ "NetworkFunctions"
+ ],
+ "operationId": "NetworkFunctions_ListByResourceGroup",
+ "description": "Lists all the network function resources in a resource group.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request is successful. The operation returns a list of network function resources.",
+ "schema": {
+ "$ref": "#/definitions/NetworkFunctionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List network function in resource group": {
+ "$ref": "./examples/NetworkFunctionListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "NetworkFunction": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NetworkFunctionPropertiesFormat",
+ "description": "Network function properties."
+ },
+ "etag": {
+ "type": "string",
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "description": "Network function resource response."
+ },
+ "NetworkFunctionPropertiesFormat": {
+ "description": "Network function properties.",
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./common.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the network function resource."
+ },
+ "device": {
+ "$ref": "./common.json#/definitions/SubResource",
+ "description": "The reference to the device resource."
+ },
+ "skuName": {
+ "type": "string",
+ "description": "The sku name for the network function."
+ },
+ "skuType": {
+ "readOnly": true,
+ "$ref": "./common.json#/definitions/SkuType",
+ "description": "The sku type for the network function."
+ },
+ "vendorName": {
+ "type": "string",
+ "description": "The vendor name for the network function."
+ },
+ "serviceKey": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The service key for the network function resource."
+ },
+ "vendorProvisioningState": {
+ "readOnly": true,
+ "$ref": "./common.json#/definitions/VendorProvisioningState",
+ "description": "The vendor provisioning state for the network function resource."
+ },
+ "managedApplication": {
+ "readOnly": true,
+ "$ref": "./common.json#/definitions/SubResource",
+ "description": "The resource URI of the managed application."
+ },
+ "managedApplicationParameters": {
+ "$ref": "./common.json#/definitions/ManagedApplicationParameters",
+ "description": "The parameters for the managed application."
+ },
+ "networkFunctionUserConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkFunctionUserConfiguration"
+ },
+ "description": "The network function configurations from the user."
+ }
+ }
+ },
+ "NetworkFunctionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkFunction"
+ },
+ "description": "A list of network function resources in a subscription or resource group."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for network function API service call."
+ },
+ "NetworkFunctionUserConfiguration": {
+ "properties": {
+ "roleName": {
+ "type": "string",
+ "description": "The name of the network function role."
+ },
+ "userDataParameters": {
+ "$ref": "./common.json#/definitions/UserDataParameters",
+ "description": "The user data parameters from the customer."
+ },
+ "networkInterfaces": {
+ "type": "array",
+ "items": {
+ "$ref": "./common.json#/definitions/NetworkInterface"
+ },
+ "description": "The network interface configuration."
+ },
+ "osProfile": {
+ "properties": {
+ "customData": {
+ "type": "string",
+ "description": "Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the virtual machine. The maximum length of the binary array is 65535 bytes.
**Note: Do not pass any secrets or passwords in customData property**
This property cannot be updated after the VM is created.
customData is passed to the VM to be saved as a file. For more information see [Custom Data on Azure VMs](https://azure.microsoft.com/en-us/blog/custom-data-and-cloud-init-on-windows-azure/)
For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)"
+ }
+ },
+ "description": "Specifies the operating system settings for the role instance."
+ }
+ },
+ "description": "The network function user configuration."
+ }
+ }
+}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/virtualNetworkFunctionVendors.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/networkFunctionVendor.json
similarity index 55%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/virtualNetworkFunctionVendors.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/networkFunctionVendor.json
index 83e78c9b7b4c..b7125d5ad621 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/virtualNetworkFunctionVendors.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/networkFunctionVendor.json
@@ -2,7 +2,7 @@
"swagger": "2.0",
"info": {
"title": "HybridNetworkManagementClient",
- "description": "The resources in this swagger specification will be used to manage the virtual network function vendor in a hybrid network resource provider.",
+ "description": "The resources in this swagger specification will be used to manage the network function vendor in a Hybrid Network resource provider.",
"version": "2020-01-01-preview"
},
"host": "management.azure.com",
@@ -34,38 +34,38 @@
}
},
"paths": {
- "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/virtualNetworkFunctionVendors": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/networkFunctionVendors": {
"get": {
"tags": [
- "virtualNetworkFunctionVendors"
+ "networkFunctionVendors"
],
- "operationId": "virtualNetworkFunctionVendors_List",
- "description": "List all the available vendor and sku information in hybrid network.",
+ "operationId": "networkFunctionVendors_List",
+ "description": "Lists all the available vendor and sku information.",
"parameters": [
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Request successful. The operation returns a list of hybrid network vendors with available sku information.",
+ "description": "Request is successful. The operation returns a list of vendors with available sku information.",
"schema": {
- "$ref": "#/definitions/VirtualNetworkFunctionVendorListResult"
+ "$ref": "#/definitions/NetworkFunctionVendorListResult"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "List hybrid network vendors and skus.": {
- "$ref": "./examples/VirtualNetworkFunctionVendorAndSkuList.json"
+ "List vendors and skus.": {
+ "$ref": "./examples/NetworkFunctionVendorAndSkuListBySubscription.json"
}
},
"x-ms-pageable": {
@@ -73,45 +73,45 @@
}
}
},
- "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/virtualNetworkFunctionVendors/{vendorName}/vendorSkus": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/networkFunctionVendors/{vendorName}/vendorSkus": {
"get": {
"tags": [
- "virtualNetworkFunctionVendors"
+ "networkFunctionVendors"
],
- "operationId": "VirtualNetworkFunctionVendorSkus_ListByVendor",
- "description": "List all virtual network function vendor sku details in a vendor",
+ "operationId": "NetworkFunctionVendorSkus_ListByVendor",
+ "description": "Lists all network function vendor sku details in a vendor.",
"parameters": [
{
"name": "vendorName",
- "description": "The name of the hybrid network virtual network function vendor.",
+ "description": "The name of the network function vendor.",
"in": "path",
"required": true,
"type": "string"
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Request successful. The operation returns a list of virtual network function vendor skus",
+ "description": "Request is successful. The operation returns a list of network function vendor skus.",
"schema": {
- "$ref": "#/definitions/VirtualNetworkFunctionSkuListResult"
+ "$ref": "#/definitions/NetworkFunctionSkuListResult"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "List hybrid network vendors and skus.": {
- "$ref": "./examples/VirtualNetworkFunctionSkuList.json"
+ "List vendors and skus.": {
+ "$ref": "./examples/NetworkFunctionSkuListByVendor.json"
}
},
"x-ms-pageable": {
@@ -119,52 +119,52 @@
}
}
},
- "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/virtualNetworkFunctionVendors/{vendorName}/vendorSkus/{vendorSkuName}": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/networkFunctionVendors/{vendorName}/vendorSkus/{vendorSkuName}": {
"get": {
"tags": [
- "virtualNetworkFunctionVendors"
+ "networkFunctionVendors"
],
- "operationId": "virtualNetworkFunctionVendorSkus_List",
- "description": "Gets information about hybrid network virtual network function vendor sku details",
+ "operationId": "networkFunctionVendorSkus_ListBySku",
+ "description": "Lists information about network function vendor sku details.",
"parameters": [
{
"name": "vendorName",
- "description": "The name of the hybrid network virtual network function vendor.",
+ "description": "The name of the network function vendor.",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "vendorSkuName",
- "description": "The name of the hybrid network virtual network function sku.",
+ "description": "The name of the network function sku.",
"in": "path",
"required": true,
"type": "string"
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Request successful. The operation returns the resulting hybrid network virtual network function vendor sku details.",
+ "description": "Request is successful. The operation returns the resulting network function vendor sku details.",
"schema": {
- "$ref": "#/definitions/VirtualNetworkFunctionSkuDetails"
+ "$ref": "#/definitions/NetworkFunctionSkuDetails"
}
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "Get virtual network function sku details": {
- "$ref": "./examples/VirtualNetworkFunctionGetSkuDetails.json"
+ "Get network function sku details": {
+ "$ref": "./examples/NetworkFunctionSkuDetailsGet.json"
}
},
"x-ms-pageable": {
@@ -185,20 +185,20 @@
"description": "The vendor sku type."
}
},
- "description": "The virtual network function sku overview."
+ "description": "The network function sku overview."
},
- "VirtualNetworkFunctionSkuDetails": {
+ "NetworkFunctionSkuDetails": {
"properties": {
"skuType": {
"$ref": "./common.json#/definitions/SkuType",
- "description": "The virtual network function sku type."
+ "description": "The network function sku type."
},
"value": {
"type": "array",
"items": {
- "$ref": "#/definitions/VirtualNetworkFunctionSkuRoleDetails"
+ "$ref": "#/definitions/NetworkFunctionSkuRoleDetails"
},
- "description": "The virtual network function sku role details."
+ "description": "The network function sku role details."
},
"nextLink": {
"type": "string",
@@ -206,42 +206,42 @@
"description": "The URL to get the next set of results."
}
},
- "description": "The virtual network function sku details."
+ "description": "The network function sku details."
},
"VendorDetails": {
"properties": {
"vendorName": {
"type": "string",
- "description": "The virtual network function vendor name."
+ "description": "The network function vendor name."
},
"skuList": {
"type": "array",
"items": {
"$ref": "#/definitions/SkuOverview"
},
- "description": "The virtual network function sku list."
+ "description": "The network function sku list."
}
},
- "description": "The virtual network function vendor details."
+ "description": "The network function vendor details."
},
- "VirtualNetworkFunctionVendor": {
+ "NetworkFunctionVendor": {
"properties": {
"properties": {
"x-ms-client-flatten": true,
"$ref": "#/definitions/VendorDetails",
- "description": "Vendors of the hybrid network service provider."
+ "description": "Vendors of Hybrid Network service provider."
}
},
- "description": "The virtual network function vendor."
+ "description": "The network function vendor."
},
- "VirtualNetworkFunctionVendorListResult": {
+ "NetworkFunctionVendorListResult": {
"properties": {
"value": {
"type": "array",
"items": {
- "$ref": "#/definitions/VirtualNetworkFunctionVendor"
+ "$ref": "#/definitions/NetworkFunctionVendor"
},
- "description": "A list of available hybrid network virtual network function vendors and skus."
+ "description": "A list of available network function vendors and skus."
},
"nextLink": {
"type": "string",
@@ -249,13 +249,13 @@
"description": "The URL to get the next set of results."
}
},
- "description": "The virtual network function vendor list result."
+ "description": "The network function vendor list result."
},
- "VirtualNetworkFunctionSkuRoleDetails": {
+ "NetworkFunctionSkuRoleDetails": {
"properties": {
"roleName": {
"type": "string",
- "description": "The name of the virtual network function role."
+ "description": "The name of the network function role."
},
"userDataTemplate": {
"$ref": "./common.json#/definitions/UserDataTemplate",
@@ -273,16 +273,16 @@
"description": "The network interface configuration."
}
},
- "description": "The virtual network function user configuration."
+ "description": "The network function user configuration."
},
- "VirtualNetworkFunctionSkuListResult": {
+ "NetworkFunctionSkuListResult": {
"properties": {
"value": {
"type": "array",
"items": {
"$ref": "#/definitions/SkuOverview"
},
- "description": "The virtual network function vendor sku overview properties."
+ "description": "The network function vendor sku overview properties."
},
"nextLink": {
"type": "string",
@@ -290,7 +290,7 @@
"description": "The URL to get the next set of results."
}
},
- "description": "A list of available hybrid network virtual network function skus."
+ "description": "A list of available network function skus."
}
}
}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/operations.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/operation.json
similarity index 86%
rename from specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/operations.json
rename to specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/operation.json
index eb38d176e17d..971cc4633244 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/operations.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/operation.json
@@ -43,12 +43,12 @@
"description": "Gets a list of the operations.",
"parameters": [
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
}
],
"responses": {
"200": {
- "description": "OK Returns a list of operations.",
+ "description": "OK. Returns a list of operations.",
"schema": {
"$ref": "#/definitions/OperationList"
}
@@ -56,7 +56,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
@@ -77,7 +77,7 @@
"name": {
"readOnly": true,
"type": "string",
- "description": "Operation name: {provider}/{resource}/{operation}"
+ "description": "Operation name: {provider}/{resource}/{operation}."
},
"display": {
"readOnly": true,
@@ -85,11 +85,11 @@
"properties": {
"provider": {
"type": "string",
- "description": "Service provider: Microsoft.HybridNetwork"
+ "description": "Service provider: Microsoft.HybridNetwork."
},
"resource": {
"type": "string",
- "description": "Resource on which the operation is performed: Registration definition, registration assignment etc."
+ "description": "Resource on which the operation is performed: Registration definition, registration assignment, etc."
},
"operation": {
"type": "string",
@@ -113,7 +113,7 @@
"items": {
"$ref": "#/definitions/Operation"
},
- "description": "List of Microsoft.HybridNetwork operations."
+ "description": "A list of Microsoft.HybridNetwork operations."
},
"nextLink": {
"type": "string",
@@ -122,7 +122,7 @@
}
},
"type": "object",
- "description": "List of the operations."
+ "description": "A list of the operations."
}
}
}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/vendor.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/vendor.json
index cee87dde532a..ad541989b452 100644
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/vendor.json
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/vendor.json
@@ -2,7 +2,7 @@
"swagger": "2.0",
"info": {
"title": "HybridNetworkManagementClient",
- "description": "The resources in this swagger specification will be used by vendors to on-board offerings and manage virtual network functions.",
+ "description": "The resources in this swagger specification will be used by vendors to on-board offerings and manage network functions.",
"version": "2020-01-01-preview"
},
"host": "management.azure.com",
@@ -50,10 +50,10 @@
"description": "The name of the vendor."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -64,12 +64,12 @@
"description": "Accepted. Sets provisioningState to 'Deleting' until the operation is completed. Returns an operation URI that can be queried to find the current state of the operation."
},
"204": {
- "description": "Request successful. Resource does not exist."
+ "description": "Request is successful. Resource does not exist."
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
@@ -95,18 +95,18 @@
"in": "path",
"required": true,
"type": "string",
- "description": "The name of vendor."
+ "description": "The name of the vendor."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Request successful. The operation returns the resulting vendor resource.",
+ "description": "Request is successful. The operation returns the resulting vendor resource.",
"schema": {
"$ref": "#/definitions/Vendor"
}
@@ -114,7 +114,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
@@ -144,13 +144,13 @@
"schema": {
"$ref": "#/definitions/Vendor"
},
- "description": "Parameters supplied to the create vendor."
+ "description": "Parameters supplied to the create vendor operation."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -161,7 +161,7 @@
}
},
"201": {
- "description": "Created. The header contains ‘Azure-AsyncOperation’ header pointing to an operations resource. The operation URI can be queried to find the current state of the operation.",
+ "description": "Created. The header contains 'Azure-AsyncOperation' header pointing to an operations resource. The operation URI can be queried to find the current state of the operation.",
"schema": {
"$ref": "#/definitions/Vendor"
}
@@ -169,7 +169,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
@@ -193,15 +193,15 @@
"description": "Lists all the vendors in a subscription.",
"parameters": [
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Request successful. The operation returns a list of vendor resources.",
+ "description": "Request is successful. The operation returns a list of vendor resources.",
"schema": {
"$ref": "#/definitions/VendorListResult"
}
@@ -209,13 +209,13 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "Lists all vendor resources in subscription": {
- "$ref": "./examples/VendorListAll.json"
+ "List all vendor resources in subscription": {
+ "$ref": "./examples/VendorListBySubscription.json"
}
},
"x-ms-pageable": {
@@ -246,10 +246,10 @@
"description": "The name of the sku."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -257,15 +257,15 @@
"description": "OK. Request is successful."
},
"202": {
- "description": "Accepted. Sets provisioningState to 'Deleting' until the operation is completed.. Returns an operation URI that can be queried to find the current state of the operation."
+ "description": "Accepted. Sets provisioningState to 'Deleting' until the operation is completed. Returns an operation URI that can be queried to find the current state of the operation."
},
"204": {
- "description": "Request successful. Resource does not exist."
+ "description": "Request is successful. Resource does not exist."
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
@@ -291,7 +291,7 @@
"in": "path",
"required": true,
"type": "string",
- "description": "The name of vendor."
+ "description": "The name of the vendor."
},
{
"name": "skuName",
@@ -301,15 +301,15 @@
"description": "The name of the sku."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Request successful. The operation returns the resulting vendor resource.",
+ "description": "Request is successful. The operation returns the resulting vendor resource.",
"schema": {
"$ref": "#/definitions/VendorSku"
}
@@ -317,12 +317,12 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "Get the sku of Vendor resource": {
+ "Get the sku of vendor resource": {
"$ref": "./examples/VendorSkuGet.json"
}
}
@@ -355,18 +355,18 @@
"schema": {
"$ref": "#/definitions/VendorSku"
},
- "description": "Parameters supplied to the create or update sku."
+ "description": "Parameters supplied to the create or update sku operation."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Update or creation successful. The operation returns the resulting vendor sku sub resource.",
+ "description": "Creation or update is successful. The operation returns the resulting vendor sku sub resource.",
"schema": {
"$ref": "#/definitions/VendorSku"
}
@@ -380,12 +380,12 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "Create or update the sku of Vendor resource": {
+ "Create or update the sku of vendor resource": {
"$ref": "./examples/VendorSkuCreate.json"
}
},
@@ -411,15 +411,15 @@
"description": "The name of the vendor."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Request successful. The operation returns a list of vendor sku resources.",
+ "description": "Request is successful. The operation returns a list of vendor sku resources.",
"schema": {
"$ref": "#/definitions/VendorSkuListResult"
}
@@ -427,204 +427,13 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
- }
- }
- },
- "x-ms-examples": {
- "Lists all the vendor skus of vendor resource": {
- "$ref": "./examples/VendorSkuListAll.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
- }
- }
- },
- "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/locations/{locationName}/vendors/{vendorName}/virtualNetworkFunctions/{serviceKey}": {
- "get": {
- "tags": [
- "VendorVirtualNetworkFunctions"
- ],
- "operationId": "VendorVirtualNetworkFunctions_Get",
- "description": "Gets information about the specified virtual network function.",
- "parameters": [
- {
- "name": "locationName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The azure region where the virtual network function sub resource was created by customer."
- },
- {
- "name": "vendorName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the vendor."
- },
- {
- "name": "serviceKey",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The unique GUID for the virtual network function."
- },
- {
- "$ref": "./common.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The operation returns the resulting vendor virtual network function sub resource.",
- "schema": {
- "$ref": "#/definitions/VendorVirtualNetworkFunction"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
- }
- }
- },
- "x-ms-examples": {
- "Get vendor virtual network function sub resource by service key of virtual network function.": {
- "$ref": "./examples/VendorVnfGet.json"
- }
- }
- },
- "put": {
- "tags": [
- "VendorVirtualNetworkFunctions"
- ],
- "operationId": "VendorVirtualNetworkFunctions_CreateOrUpdate",
- "description": "Create or update a virtual network function.",
- "parameters": [
- {
- "name": "locationName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The azure region where the virtual network function resource was created by customer."
- },
- {
- "name": "vendorName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the vendor."
- },
- {
- "name": "serviceKey",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The unique GUID for the virtual network function."
- },
- {
- "name": "parameters",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/VendorVirtualNetworkFunction"
- },
- "description": "Parameters supplied to the update vendor virtual network function."
- },
- {
- "$ref": "./common.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Create or update is successful. The operation returns the resulting vendor virtual network function sub resource.",
- "schema": {
- "$ref": "#/definitions/VendorVirtualNetworkFunction"
- }
- },
- "201": {
- "description": "Created. The operation returns the resulting vendor virtual network function sub resource.",
- "schema": {
- "$ref": "#/definitions/VendorVirtualNetworkFunction"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
- }
- }
- },
- "x-ms-examples": {
- "Update vendor virtual network function sub resource": {
- "$ref": "./examples/VendorVnfCreate.json"
- }
- },
- "x-ms-long-running-operation": true,
- "x-ms-long-running-operation-options": {
- "final-state-via": "azure-async-operation"
- }
- }
- },
- "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/locations/{locationName}/vendors/{vendorName}/virtualNetworkFunctions": {
- "get": {
- "tags": [
- "VendorVirtualNetworkFunctions"
- ],
- "operationId": "VendorVirtualNetworkFunctions_List",
- "description": "List all the vendor virtual network function sub resources in an azure region. Filter by skuType, skuName, vendorProvisioningState",
- "parameters": [
- {
- "name": "locationName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The azure region where the virtual network function resource was created by customer."
- },
- {
- "name": "vendorName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the vendor."
- },
- {
- "name": "$filter",
- "in": "query",
- "required": false,
- "type": "string",
- "description": "The filter to apply on the operation. The properties you can use for eq (equals) are: skuType, skuName and vendorProvisioningState."
- },
- {
- "$ref": "./common.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The operation returns the resulting hybrid network vendor virtual network function sub resource.",
- "schema": {
- "$ref": "#/definitions/VendorVirtualNetworkFunctionListResult"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "Get all vnf of Vendor resource": {
- "$ref": "./examples/VendorVnfList.json"
+ "List all the vendor skus of vendor resource": {
+ "$ref": "./examples/VendorSkuListByVendor.json"
}
},
"x-ms-pageable": {
@@ -638,7 +447,7 @@
"VendorSkuPreview"
],
"operationId": "VendorSkuPreview_List",
- "description": "Gets preview information of a vendor sku",
+ "description": "Lists all the preview information of a vendor sku.",
"parameters": [
{
"name": "vendorName",
@@ -655,15 +464,15 @@
"description": "The name of the sku."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Request successful. The operation returns the preview information of the vendor sku sub resource.",
+ "description": "Request is successful. The operation returns the preview information of the vendor sku sub resource.",
"schema": {
"$ref": "#/definitions/PreviewSubscriptionsList"
}
@@ -671,13 +480,13 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "Get all preview subscriptions of vendor sku sub resource": {
- "$ref": "./examples/GetVendorSkuPreviews.json"
+ "List all preview subscriptions of vendor sku sub resource": {
+ "$ref": "./examples/VendorSkuPreviewListBySku.json"
}
},
"x-ms-pageable": {
@@ -691,7 +500,7 @@
"VendorSkuPreview"
],
"operationId": "VendorSkuPreview_CreateOrUpdate",
- "description": "Creates or updates preview information of a vendor sku",
+ "description": "Creates or updates preview information of a vendor sku.",
"parameters": [
{
"name": "vendorName",
@@ -712,7 +521,7 @@
"in": "path",
"required": true,
"type": "string",
- "description": "Preview subscription id."
+ "description": "Preview subscription ID."
},
{
"name": "parameters",
@@ -721,24 +530,24 @@
"schema": {
"$ref": "#/definitions/PreviewSubscription"
},
- "description": "Parameters supplied to the update vendor virtual network function."
+ "description": "Parameters supplied to the create or update vendor preview subscription operation."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"201": {
- "description": "Request accepted. The operation is updating or creating the preview information of the vendor sku sub resource.",
+ "description": "Request is accepted. The operation is updating or creating the preview information of the vendor sku sub resource.",
"schema": {
"$ref": "#/definitions/PreviewSubscription"
}
},
"200": {
- "description": "Request successful. The operation updated the preview information of the vendor sku sub resource.",
+ "description": "Request is successful. The operation updated the preview information of the vendor sku sub resource.",
"schema": {
"$ref": "#/definitions/PreviewSubscription"
}
@@ -746,7 +555,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
@@ -755,8 +564,8 @@
"final-state-via": "azure-async-operation"
},
"x-ms-examples": {
- "Creates or updates preview subscription of vendor sku sub resource": {
- "$ref": "./examples/CreateVendorSkuPreview.json"
+ "Create or update preview subscription of vendor sku sub resource": {
+ "$ref": "./examples/VendorSkuPreviewCreate.json"
}
}
},
@@ -765,7 +574,7 @@
"VendorSkuPreview"
],
"operationId": "VendorSkuPreview_Get",
- "description": "Gets preview information of a vendor sku",
+ "description": "Gets the preview information of a vendor sku.",
"parameters": [
{
"name": "vendorName",
@@ -786,18 +595,18 @@
"in": "path",
"required": true,
"type": "string",
- "description": "Preview subscription id."
+ "description": "Preview subscription ID."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Request successful. The operation updated the preview information of the vendor sku sub resource.",
+ "description": "Request is successful. The operation updated the preview information of the vendor sku sub resource.",
"schema": {
"$ref": "#/definitions/PreviewSubscription"
}
@@ -805,13 +614,13 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-examples": {
- "Gets preview subscription of vendor sku sub resource": {
- "$ref": "./examples/GetVendorSkuPreview.json"
+ "Get preview subscription of vendor sku sub resource": {
+ "$ref": "./examples/VendorSkuPreviewGet.json"
}
}
},
@@ -820,7 +629,7 @@
"VendorSkuPreview"
],
"operationId": "VendorSkuPreview_Delete",
- "description": "Deletes preview information of a vendor sku",
+ "description": "Deletes the preview information of a vendor sku.",
"parameters": [
{
"name": "vendorName",
@@ -841,29 +650,29 @@
"in": "path",
"required": true,
"type": "string",
- "description": "Preview subscription id."
+ "description": "Preview subscription ID."
},
{
- "$ref": "./common.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
- "description": "Request successful. The operation deleted the vendor sku preview resource."
+ "description": "Request is successful. The operation deleted the vendor sku preview resource."
},
"202": {
"description": "Request is accepted. The operation is deleting the vendor sku preview resource."
},
"204": {
- "description": "Request successful. The vendor sku preview resource does not exist."
+ "description": "Request is successful. The vendor sku preview resource does not exist."
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
}
}
},
@@ -872,8 +681,8 @@
"final-state-via": "location"
},
"x-ms-examples": {
- "Deletes preview subscription of vendor sku sub resource": {
- "$ref": "./examples/DeleteVendorSkuPreview.json"
+ "Delete preview subscription of vendor sku sub resource": {
+ "$ref": "./examples/VendorSkuPreviewDelete.json"
}
}
}
@@ -890,7 +699,7 @@
},
"allOf": [
{
- "$ref": "./common.json#/definitions/Resource"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource"
}
],
"description": "Vendor resource."
@@ -909,7 +718,7 @@
"$ref": "./common.json#/definitions/SubResource"
},
"readOnly": true,
- "description": "A list of ids of the vendor skus offered by the vendor."
+ "description": "A list of IDs of the vendor skus offered by the vendor."
}
}
},
@@ -923,13 +732,13 @@
},
"allOf": [
{
- "$ref": "./common.json#/definitions/Resource"
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource"
}
],
"description": "Sku sub resource."
},
"VendorSkuPropertiesFormat": {
- "description": "Sku properties",
+ "description": "Sku properties",
"properties": {
"provisioningState": {
"readOnly": true,
@@ -938,11 +747,11 @@
},
"skuType": {
"$ref": "./common.json#/definitions/SkuType",
- "description": "Sku type."
+ "description": "The sku type."
},
"deploymentMode": {
"type": "string",
- "description": "Sku deployment mode.",
+ "description": "The sku deployment mode.",
"enum": [
"Unknown",
"Azure",
@@ -959,15 +768,15 @@
},
"managedApplicationParameters": {
"$ref": "./common.json#/definitions/ManagedApplicationParameters",
- "description": "The parameters for the managed application to be supplied by vendor."
+ "description": "The parameters for the managed application to be supplied by the vendor."
},
"managedApplicationTemplate": {
"type": "object",
"description": "The template for the managed application deployment."
},
- "virtualNetworkFunctionTemplate": {
- "$ref": "#/definitions/VirtualNetworkFunctionTemplate",
- "description": "The template definition of the virtual network function."
+ "networkFunctionTemplate": {
+ "$ref": "#/definitions/NetworkFunctionTemplate",
+ "description": "The template definition of the network function."
}
}
},
@@ -1003,89 +812,26 @@
"description": "The URL to get the next set of results."
}
},
- "description": "Response for Vendors API service call."
- },
- "VendorVirtualNetworkFunctionListResult": {
- "properties": {
- "value": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/VendorVirtualNetworkFunction"
- },
- "description": "A list of vendor virtual network function."
- },
- "nextLink": {
- "readOnly": true,
- "type": "string",
- "description": "The URL to get the next set of results."
- }
- },
"description": "Response for vendors API service call."
},
- "VendorVirtualNetworkFunction": {
- "properties": {
- "properties": {
- "x-ms-client-flatten": true,
- "$ref": "#/definitions/VendorVirtualNetworkFunctionPropertiesFormat",
- "description": "Virtual network function details."
- }
- },
- "allOf": [
- {
- "$ref": "./common.json#/definitions/Resource"
- }
- ],
- "description": "Vendor virtual network function sub resource."
- },
- "VendorVirtualNetworkFunctionPropertiesFormat": {
- "description": "Vendor virtual network function properties",
+ "NetworkFunctionTemplate": {
"properties": {
- "provisioningState": {
- "readOnly": true,
- "$ref": "./common.json#/definitions/ProvisioningState",
- "description": "The provisioning state of the vendor virtual network function sub resource."
- },
- "vendorProvisioningState": {
- "$ref": "./common.json#/definitions/VendorProvisioningState",
- "description": "Vendor controlled provisioning state of the vendor virtual network function."
- },
- "skuName": {
- "readOnly": true,
- "type": "string",
- "description": "Name of the sku"
- },
- "skuType": {
- "$ref": "./common.json#/definitions/SkuType",
- "description": "Sku type.",
- "readOnly": true
- },
- "virtualNetworkFunctionVendorConfigurations": {
+ "networkFunctionRoleConfigurations": {
"type": "array",
"items": {
- "$ref": "#/definitions/VirtualNetworkFunctionVendorConfiguration"
+ "$ref": "#/definitions/NetworkFunctionRoleConfiguration"
},
- "description": "An array of virtual network function vendor configurations."
- }
- }
- },
- "VirtualNetworkFunctionTemplate": {
- "properties": {
- "virutalNetworkFunctionRoleConfigurations": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/VirtualNetworkFunctionRoleConfiguration"
- },
- "description": "An array of virtual network function role definitions."
+ "description": "An array of network function role definitions."
}
},
- "description": "The virtual network function template."
+ "description": "The network function template."
},
- "VirtualNetworkFunctionRoleConfiguration": {
- "description": "Virtual network function role configuration.",
+ "NetworkFunctionRoleConfiguration": {
+ "description": "Network function role configuration.",
"properties": {
"roleName": {
"type": "string",
- "description": "The name of the virtual network function role."
+ "description": "The name of the network function role."
},
"roleType": {
"type": "string",
@@ -1095,7 +841,7 @@
"VirtualMachine"
],
"x-ms-enum": {
- "name": "VirtualNetworkFunctionRoleConfigurationType",
+ "name": "NetworkFunctionRoleConfigurationType",
"modelAsString": true
}
},
@@ -1119,24 +865,30 @@
"Standard_DS5_v2",
"Standard_DS11_v2",
"Standard_DS12_v2",
- "Standard_DS13_v2"
+ "Standard_DS13_v2",
+ "Standard_F1",
+ "Standard_F2",
+ "Standard_F4",
+ "Standard_F8",
+ "Standard_F16",
+ "Standard_F1s",
+ "Standard_F2s",
+ "Standard_F4s",
+ "Standard_F8s",
+ "Standard_F16s"
],
"x-ms-enum": {
"name": "VirtualMachineSizeTypes",
"modelAsString": true
}
},
- "imageReference": {
- "description": "The definition of image reference.",
- "$ref": "#/definitions/ImageReference"
- },
"osProfile": {
- "description": "Specifies the operating system settings for the role instance. This value can be updated during the deployment of virtual network function.",
- "$ref": "#/definitions/OsProfile"
+ "description": "Specifies the operating system settings for the role instance. This value can be updated during the deployment of network function.",
+ "$ref": "./common.json#/definitions/OsProfile"
},
"userDataTemplate": {
"$ref": "./common.json#/definitions/UserDataTemplate",
- "description": "The user data template for customers. This is json scheme template describing the format and data type of user data parameters."
+ "description": "The user data template for customers. This is a json schema template describing the format and data type of user data parameters."
},
"userDataParameters": {
"$ref": "./common.json#/definitions/UserDataParameters",
@@ -1148,39 +900,63 @@
"$ref": "./common.json#/definitions/NetworkInterface"
},
"description": "The network interface configurations."
+ },
+ "storageProfile": {
+ "$ref": "#/definitions/StorageProfile",
+ "description": "Specifies the storage settings for the virtual machine disks."
+ },
+ "customProfile": {
+ "$ref": "#/definitions/CustomProfile",
+ "description": "Specifies the custom settings for the virtual machine."
}
}
},
- "VirtualNetworkFunctionVendorConfiguration": {
+ "ImageReference": {
"properties": {
- "roleName": {
+ "publisher": {
"type": "string",
- "description": "The name of the virtual network function role."
+ "description": "The image publisher."
},
- "customData": {
+ "offer": {
"type": "string",
- "description": "Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the virtual machine. The maximum length of the binary array is 65535 bytes.
**Note: Do not pass any secrets or passwords in customData property**
This property cannot be updated after the VM is created.
customData is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/en-us/blog/custom-data-and-cloud-init-on-windows-azure/)
For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)"
+ "description": "Specifies the offer of the image used to create the virtual machine."
},
- "osProfile": {
- "description": "Specifies the operating system settings for the role instance.",
- "$ref": "#/definitions/OsProfile"
+ "sku": {
+ "type": "string",
+ "description": "The image SKU."
},
- "userDataParameters": {
- "$ref": "./common.json#/definitions/UserDataParameters",
- "readOnly": true,
- "description": "The user parameters from the customer."
+ "version": {
+ "type": "string",
+ "description": "Specifies the version of the image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available."
},
- "networkInterfaces": {
+ "exactVersion": {
+ "type": "string",
+ "description": "Specifies in decimal numbers, the exact version of image used to create the virtual machine."
+ }
+ },
+ "description": "The image reference properties."
+ },
+ "StorageProfile": {
+ "properties": {
+ "imageReference": {
+ "$ref": "#/definitions/ImageReference",
+ "description": "The image reference properties."
+ },
+ "osDisk": {
+ "$ref": "#/definitions/OsDisk",
+ "description": "Specifies information about the operating system disk used by the virtual machine."
+ },
+ "dataDisks": {
"type": "array",
"items": {
- "$ref": "./common.json#/definitions/NetworkInterface"
+ "$ref": "#/definitions/DataDisk"
},
- "description": "The network interface configurations."
+ "description": "Specifies the parameters that are used to add a data disk to a virtual machine."
}
},
- "description": "Virtual network function vendor configuration."
+ "description": "Specifies the storage settings for the virtual machine disks."
},
- "ImageReference": {
+ "OsDisk": {
"properties": {
"osType": {
"type": "string",
@@ -1195,51 +971,70 @@
"modelAsString": true
}
},
- "vhdName": {
+ "name": {
"type": "string",
"description": "The VHD name."
},
- "vhdType": {
+ "vhd": {
+ "$ref": "#/definitions/VirtualHardDisk",
+ "description": "The virtual hard disk."
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the size of os disk in gigabytes. This is the fully expanded disk size needed of the VHD image on the ASE. This disk size should be greater than the size of the VHD provided in vhdUri."
+ }
+ },
+ "description": "Specifies information about the operating system disk used by the virtual machine.
For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)."
+ },
+ "VirtualHardDisk": {
+ "properties": {
+ "uri": {
"type": "string",
- "description": "The VHD type.",
+ "x-ms-secret": true,
+ "x-ms-mutability": [
+ "create",
+ "update"
+ ],
+ "description": "Specifies the virtual hard disk's uri."
+ }
+ },
+ "description": "Describes the uri of a disk."
+ },
+ "DataDisk": {
+ "properties": {
+ "createOption": {
+ "type": "string",
+ "description": "Specifies how the virtual machine should be created.",
"enum": [
"Unknown",
- "VHD",
- "VHDX"
+ "Empty"
],
"x-ms-enum": {
- "name": "VHDType",
+ "name": "DiskCreateOptionTypes",
"modelAsString": true
}
},
- "sasUri": {
+ "name": {
"type": "string",
- "description": "The VHD SAS URI."
+ "description": "The name of data disk."
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the size of an empty disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image."
}
},
- "description": "The image reference properties."
+ "description": "Specifies information about the operating system disk used by the virtual machine.
For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)."
},
- "OsProfile": {
+ "CustomProfile": {
"properties": {
- "adminUsername": {
- "type": "string",
- "description": "Specifies the name of the administrator account.
For root access to the Linux VM, see [Using root privileges on Linux virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)
For a list of built-in system users on Linux that should not be used in this field, see [Selecting User Names for Linux on Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)."
- },
- "adminPassword": {
- "type": "string",
- "x-ms-secret": true,
- "x-ms-mutability": [
- "create",
- "update"
- ],
- "description": "Specifies the password of the administrator account.
**Minimum-length (Windows):** 8 characters
**Minimum-length (Linux):** 6 characters
**Max-length (Windows):** 123 characters
**Max-length (Linux):** 72 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)
For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password)."
- },
- "sshPublicKey": {
+ "metadataConfigurationPath": {
"type": "string",
- "description": "Contains information about SSH certificate public key and the path on the Linux VM where the public key is placed."
+ "description": "Path for metadata configuration."
}
},
- "description": "Specifies the operating system settings for the role instance."
+ "description": "Specifies the custom settings for the virtual machine."
},
"PreviewSubscription": {
"x-ms-azure-resource": true,
@@ -1248,22 +1043,22 @@
"name": {
"type": "string",
"readOnly": true,
- "description": "Preview subscription id"
+ "description": "The preview subscription ID."
},
"id": {
"type": "string",
"readOnly": true,
- "description": "ARM id of the resource"
+ "description": "The ARM ID of the resource."
},
"type": {
"type": "string",
"readOnly": true,
- "description": "Type of the resource"
+ "description": "The type of the resource."
}
}
},
"PreviewSubscriptionsList": {
- "description": "List of customer subscriptions which can use a sku.",
+ "description": "A list of customer subscriptions which can use a sku.",
"properties": {
"value": {
"type": "array",
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/vendorNetworkFunction.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/vendorNetworkFunction.json
new file mode 100644
index 000000000000..16ffd4f5a464
--- /dev/null
+++ b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/vendorNetworkFunction.json
@@ -0,0 +1,708 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "HybridNetworkManagementClient",
+ "description": "The resources in this swagger specification will be used to manage the vendor network function deployment in the Microsoft.HybridNetwork resource provider.",
+ "version": "2020-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}/providers/Microsoft.HybridNetwork/locations/{locationName}/vendors/{vendorName}/networkFunctions/{serviceKey}": {
+ "get": {
+ "tags": [
+ "VendorNetworkFunctions"
+ ],
+ "operationId": "VendorNetworkFunctions_Get",
+ "description": "Gets information about the specified vendor network function.",
+ "parameters": [
+ {
+ "name": "locationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Azure region where the network function resource was created by the customer."
+ },
+ {
+ "name": "vendorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vendor."
+ },
+ {
+ "name": "serviceKey",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The GUID for the vendor network function."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request is successful. The operation returns the resulting vendor network function sub resource.",
+ "schema": {
+ "$ref": "#/definitions/VendorNetworkFunction"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get vendor network function sub resource by service key of network function.": {
+ "$ref": "./examples/VendorNfGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "VendorNetworkFunctions"
+ ],
+ "operationId": "VendorNetworkFunctions_CreateOrUpdate",
+ "description": "Creates or updates a vendor network function.",
+ "parameters": [
+ {
+ "name": "locationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Azure region where the network function resource was created by the customer."
+ },
+ {
+ "name": "vendorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vendor."
+ },
+ {
+ "name": "serviceKey",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The GUID for the vendor network function."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VendorNetworkFunction"
+ },
+ "description": "Parameters supplied to the create or update vendor network function operation."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Creation or update is successful. The operation returns the resulting vendor network function sub resource.",
+ "schema": {
+ "$ref": "#/definitions/VendorNetworkFunction"
+ }
+ },
+ "201": {
+ "description": "Created. The operation returns the resulting vendor network function sub resource.",
+ "schema": {
+ "$ref": "#/definitions/VendorNetworkFunction"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update vendor network function sub resource": {
+ "$ref": "./examples/VendorNfCreate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/locations/{locationName}/vendors/{vendorName}/networkFunctions/{serviceKey}/roleInstances/{roleInstanceName}/start": {
+ "post": {
+ "tags": [
+ "RoleInstances"
+ ],
+ "operationId": "RoleInstances_Start",
+ "description": "Starts a role instance of a vendor network function.",
+ "parameters": [
+ {
+ "name": "locationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Azure region where the network function resource was created by customer."
+ },
+ {
+ "name": "vendorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vendor."
+ },
+ {
+ "name": "serviceKey",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The GUID for the vendor network function."
+ },
+ {
+ "name": "roleInstanceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the role instance of the vendor network function."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted. The header contains 'Azure-AsyncOperation' header which can be used to monitor the progress of the operation."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Start a role instance of a vendor network function": {
+ "$ref": "./examples/RoleInstanceStart.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/locations/{locationName}/vendors/{vendorName}/networkFunctions/{serviceKey}/roleInstances/{roleInstanceName}/stop": {
+ "post": {
+ "tags": [
+ "RoleInstances"
+ ],
+ "operationId": "RoleInstances_Stop",
+ "description": "Powers off (stop) a role instance of a vendor network function.",
+ "parameters": [
+ {
+ "name": "locationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Azure region where the network function resource was created by customer."
+ },
+ {
+ "name": "vendorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vendor."
+ },
+ {
+ "name": "serviceKey",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The GUID for the vendor network function."
+ },
+ {
+ "name": "roleInstanceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the role instance of the vendor network function."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted. The header contains 'Azure-AsyncOperation' header which can be used to monitor the progress of the operation."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Stop a role instance of a vendor network function": {
+ "$ref": "./examples/RoleInstanceStop.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/locations/{locationName}/vendors/{vendorName}/networkFunctions/{serviceKey}/roleInstances/{roleInstanceName}/restart": {
+ "post": {
+ "tags": [
+ "RoleInstances"
+ ],
+ "operationId": "RoleInstances_Restart",
+ "description": "Restarts a role instance of a vendor network function.",
+ "parameters": [
+ {
+ "name": "locationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Azure region where the network function resource was created by customer."
+ },
+ {
+ "name": "vendorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vendor."
+ },
+ {
+ "name": "serviceKey",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The GUID for the vendor network function."
+ },
+ {
+ "name": "roleInstanceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the role instance of the vendor network function."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted. The header contains 'Azure-AsyncOperation' header which can be used to monitor the progress of the operation."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Restart a role instance of a vendor network function": {
+ "$ref": "./examples/RoleInstanceRestart.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/locations/{locationName}/vendors/{vendorName}/networkFunctions/{serviceKey}/roleInstances/{roleInstanceName}": {
+ "get": {
+ "tags": [
+ "RoleInstances"
+ ],
+ "operationId": "RoleInstances_Get",
+ "description": "Gets the information of role instance of vendor network function.",
+ "parameters": [
+ {
+ "name": "locationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Azure region where the network function resource was created by customer."
+ },
+ {
+ "name": "vendorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vendor."
+ },
+ {
+ "name": "serviceKey",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The GUID for the vendor network function."
+ },
+ {
+ "name": "roleInstanceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the role instance of the vendor network function."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/RoleInstance"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get the operational state of role instance of vendor network function": {
+ "$ref": "./examples/RoleInstanceGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/locations/{locationName}/vendors/{vendorName}/networkFunctions": {
+ "get": {
+ "tags": [
+ "VendorNetworkFunctions"
+ ],
+ "operationId": "VendorNetworkFunctions_List",
+ "description": "Lists all the vendor network function sub resources in an Azure region, filtered by skuType, skuName, vendorProvisioningState.",
+ "parameters": [
+ {
+ "name": "locationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Azure region where the network function resource was created by the customer."
+ },
+ {
+ "name": "vendorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vendor."
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The filter to apply on the operation. The properties you can use for eq (equals) are: skuType, skuName and vendorProvisioningState."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request is successful. The operation returns the resulting vendor network function sub resource.",
+ "schema": {
+ "$ref": "#/definitions/VendorNetworkFunctionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all nfs of vendor resource": {
+ "$ref": "./examples/VendorNfListByVendor.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/locations/{locationName}/vendors/{vendorName}/networkFunctions/{serviceKey}/roleInstances": {
+ "get": {
+ "tags": [
+ "RoleInstances"
+ ],
+ "operationId": "RoleInstances_List",
+ "description": "Lists the information of role instances of vendor network function.",
+ "parameters": [
+ {
+ "name": "locationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Azure region where the network function resource was created by customer."
+ },
+ {
+ "name": "vendorName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vendor."
+ },
+ {
+ "name": "serviceKey",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The GUID for the vendor network function."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/NetworkFunctionRoleInstanceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all role instances of vendor network function": {
+ "$ref": "./examples/RoleInstanceListByVendorNetworkFunction.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "VendorNetworkFunctionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VendorNetworkFunction"
+ },
+ "description": "A list of vendor network functions."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "Response for vendors API service call."
+ },
+ "VendorNetworkFunction": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VendorNetworkFunctionPropertiesFormat",
+ "description": "Network function details."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Vendor network function sub resource."
+ },
+ "VendorNetworkFunctionPropertiesFormat": {
+ "description": "Vendor network function properties.",
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "$ref": "./common.json#/definitions/ProvisioningState",
+ "description": "The provisioning state of the vendor network function sub resource."
+ },
+ "vendorProvisioningState": {
+ "$ref": "./common.json#/definitions/VendorProvisioningState",
+ "description": "The vendor controlled provisioning state of the vendor network function."
+ },
+ "skuName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the sku."
+ },
+ "skuType": {
+ "$ref": "./common.json#/definitions/SkuType",
+ "description": "The sku type.",
+ "readOnly": true
+ },
+ "networkFunctionVendorConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkFunctionVendorConfiguration"
+ },
+ "description": "An array of network function vendor configurations."
+ }
+ }
+ },
+ "NetworkFunctionVendorConfiguration": {
+ "properties": {
+ "roleName": {
+ "type": "string",
+ "description": "The name of the vendor network function role."
+ },
+ "osProfile": {
+ "description": "Specifies the operating system settings for the role instance.",
+ "$ref": "./common.json#/definitions/OsProfile"
+ },
+ "userDataParameters": {
+ "$ref": "./common.json#/definitions/UserDataParameters",
+ "readOnly": true,
+ "description": "The user parameters from the customer."
+ },
+ "networkInterfaces": {
+ "type": "array",
+ "items": {
+ "$ref": "./common.json#/definitions/NetworkInterface"
+ },
+ "description": "The network interface configurations."
+ }
+ },
+ "description": "Network function vendor configuration."
+ },
+ "NetworkFunctionRoleInstanceListResult": {
+ "description": "List of role instances of vendor network function.",
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RoleInstance"
+ },
+ "description": "A list of role instances."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ }
+ },
+ "RoleInstance": {
+ "x-ms-azure-resource": true,
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The role instance name."
+ },
+ "id": {
+ "type": "string",
+ "description": "The ARM ID of the resource."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of the resource."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RoleInstanceProperties",
+ "description": "The role instance properties."
+ }
+ },
+ "description": "The role instance sub resource."
+ },
+ "RoleInstanceProperties": {
+ "properties": {
+ "operationalState": {
+ "type": "string",
+ "description": "The operational state of the role instance.",
+ "enum": [
+ "Unknown",
+ "Stopped",
+ "Running",
+ "Stopping",
+ "Starting"
+ ],
+ "x-ms-enum": {
+ "name": "OperationalState",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "The role instance properties of the network function."
+ }
+ }
+}
diff --git a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/virtualNetworkFunction.json b/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/virtualNetworkFunction.json
deleted file mode 100644
index 41d501d7b662..000000000000
--- a/specification/hybridnetwork/resource-manager/Microsoft.HybridNetwork/preview/2020-01-01-preview/virtualNetworkFunction.json
+++ /dev/null
@@ -1,463 +0,0 @@
-{
- "swagger": "2.0",
- "info": {
- "title": "HybridNetworkManagementClient",
- "description": "The resources in this swagger specification will be used to manage the virtual network function deployment in a hybrid network resource provider.",
- "version": "2020-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.HybridNetwork/virtualNetworkFunctions/{virtualNetworkFunctionName}": {
- "delete": {
- "tags": [
- "VirtualNetworkFunctions"
- ],
- "operationId": "VirtualNetworkFunctions_Delete",
- "description": "Deletes the specified hybrid network virtual network function resource.",
- "parameters": [
- {
- "name": "resourceGroupName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the resource group."
- },
- {
- "name": "virtualNetworkFunctionName",
- "description": "The name of the hybrid network virtual network function.",
- "in": "path",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "./common.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "The operation is completed successfully."
- },
- "202": {
- "description": "Accepted. The header contains ‘Azure-AsyncOperation’ header pointing to an operations resource. The operation URI can be queried to find the current state of the operation."
- },
- "204": {
- "description": "Request successful. Resource with the specified name does not exist."
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
- }
- }
- },
- "x-ms-examples": {
- "Delete hybrid network virtual network function resource": {
- "$ref": "./examples/VirtualNetworkFunctionDelete.json"
- }
- },
- "x-ms-long-running-operation": true,
- "x-ms-long-running-operation-options": {
- "final-state-via": "location"
- }
- },
- "get": {
- "tags": [
- "VirtualNetworkFunctions"
- ],
- "operationId": "VirtualNetworkFunctions_Get",
- "description": "Gets information about the specified hybrid network virtual network function resource.",
- "parameters": [
- {
- "name": "resourceGroupName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the resource group."
- },
- {
- "name": "virtualNetworkFunctionName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of hybrid network virtual network function resource."
- },
- {
- "$ref": "./common.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Operation successful. The operation returns the resulting hybrid network virtual network function resource.",
- "schema": {
- "$ref": "#/definitions/VirtualNetworkFunction"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
- }
- }
- },
- "x-ms-examples": {
- "Get hybrid network virtual network function resource": {
- "$ref": "./examples/VirtualNetworkFunctionGet.json"
- }
- }
- },
- "put": {
- "tags": [
- "VirtualNetworkFunctions"
- ],
- "operationId": "VirtualNetworkFunctions_CreateOrUpdate",
- "description": "Creates or updates a hybrid network virtual network function resource.",
- "parameters": [
- {
- "name": "resourceGroupName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the resource group."
- },
- {
- "name": "virtualNetworkFunctionName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "Resource name for the hybrid network virtual network function resource."
- },
- {
- "name": "parameters",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/VirtualNetworkFunction"
- },
- "description": "Parameters supplied in the body to create or update hybrid network virtual network function operation."
- },
- {
- "$ref": "./common.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "The operation is completed successfully.",
- "schema": {
- "$ref": "#/definitions/VirtualNetworkFunction"
- }
- },
- "201": {
- "description": "Created or Updated. The header contains ‘Azure-AsyncOperation’ header pointing to an operation resource. The operation URI can be queried to find the current state of the operation.",
- "schema": {
- "$ref": "#/definitions/VirtualNetworkFunction"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
- }
- }
- },
- "x-ms-examples": {
- "Create hybrid network virtual network function resource": {
- "$ref": "./examples/VirtualNetworkFunctionCreate.json"
- }
- },
- "x-ms-long-running-operation": true,
- "x-ms-long-running-operation-options": {
- "final-state-via": "azure-async-operation"
- }
- },
- "patch": {
- "tags": [
- "VirtualNetworkFunctions"
- ],
- "operationId": "VirtualNetworkFunctions_UpdateTags",
- "description": "Updates the tags for hybrid network virtual network function resource.",
- "parameters": [
- {
- "name": "resourceGroupName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the resource group."
- },
- {
- "name": "virtualNetworkFunctionName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "Resource name for the virtual network function resource."
- },
- {
- "name": "parameters",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "./common.json#/definitions/TagsObject"
- },
- "description": "Parameters supplied to update hybrid network virtual network function tags."
- },
- {
- "$ref": "./common.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Update is completed successfully. The operation returns the resulting hybrid network virtual network function resource.",
- "schema": {
- "$ref": "#/definitions/VirtualNetworkFunction"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
- }
- }
- },
- "x-ms-examples": {
- "Update tags for hybrid network virtual network function resource": {
- "$ref": "./examples/VirtualNetworkFunctionUpdateTags.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/providers/Microsoft.HybridNetwork/virtualNetworkFunctions": {
- "get": {
- "description": "List all the hybrid network virtual network functions in a subscription.",
- "operationId": "VirtualNetworkFunctions_ListBySubscription",
- "parameters": [
- {
- "$ref": "./common.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The operation returns a list of hybrid network virtual network function resources.",
- "schema": {
- "$ref": "#/definitions/VirtualNetworkFunctionListResult"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
- }
- }
- },
- "tags": [
- "VirtualNetworkFunctions"
- ],
- "x-ms-examples": {
- "List all hybrid network virtual network function resources in subscription.": {
- "$ref": "./examples/VirtualNetworkFunctionListBySubscription.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
- }
- }
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridNetwork/virtualNetworkFunctions": {
- "get": {
- "tags": [
- "VirtualNetworkFunctions"
- ],
- "operationId": "VirtualNetworkFunctions_ListByResourceGroup",
- "description": "List all the hybrid network virtual network function resources in a resource group.",
- "parameters": [
- {
- "name": "resourceGroupName",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The name of the resource group."
- },
- {
- "$ref": "./common.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "./common.json#/parameters/SubscriptionIdParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The operation returns a list of hybrid network virtual network function resources.",
- "schema": {
- "$ref": "#/definitions/VirtualNetworkFunctionListResult"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "./common.json#/definitions/ErrorDetails"
- }
- }
- },
- "x-ms-examples": {
- "List hybrid network virtual network function in resource group": {
- "$ref": "./examples/VirtualNetworkFunctionListByResourceGroup.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
- }
- }
- }
- },
- "definitions": {
- "VirtualNetworkFunction": {
- "properties": {
- "properties": {
- "x-ms-client-flatten": true,
- "$ref": "#/definitions/VirtualNetworkFunctionPropertiesFormat",
- "description": "Hybrid network virtual network function properties."
- },
- "etag": {
- "type": "string",
- "description": "A unique read-only string that changes whenever the resource is updated."
- }
- },
- "allOf": [
- {
- "$ref": "./common.json#/definitions/Resource"
- }
- ],
- "description": "Hybrid network virtual network function resource response."
- },
- "VirtualNetworkFunctionPropertiesFormat": {
- "description": "Hybrid network virtual network function properties.",
- "properties": {
- "provisioningState": {
- "readOnly": true,
- "$ref": "./common.json#/definitions/ProvisioningState",
- "description": "The provisioning state of the hybrid network virtual network function resource."
- },
- "device": {
- "$ref": "./common.json#/definitions/SubResource",
- "description": "The reference to the hybrid network device."
- },
- "skuName": {
- "type": "string",
- "description": "The sku name for the hybrid network virtual network function."
- },
- "skuType": {
- "readOnly": true,
- "$ref": "./common.json#/definitions/SkuType",
- "description": "The sku type for the hybrid network virtual network function."
- },
- "vendorName": {
- "type": "string",
- "description": "The vendor name for the hybrid network virtual network function."
- },
- "serviceKey": {
- "type": "string",
- "readOnly": true,
- "description": "The service key for the virtual network function resource."
- },
- "vendorProvisioningState": {
- "readOnly": true,
- "$ref": "./common.json#/definitions/VendorProvisioningState",
- "description": "The vendor provisioning state for the virtual network function resource."
- },
- "managedApplication": {
- "readOnly": true,
- "$ref": "./common.json#/definitions/SubResource",
- "description": "The resource URI of the managed application."
- },
- "managedApplicationParameters": {
- "$ref": "./common.json#/definitions/ManagedApplicationParameters",
- "description": "The parameters for the managed application."
- },
- "virtualNetworkFunctionUserConfigurations": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/VirtualNetworkFunctionUserConfiguration"
- },
- "description": "The virtual network function configurations from the user."
- }
- }
- },
- "VirtualNetworkFunctionListResult": {
- "properties": {
- "value": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/VirtualNetworkFunction"
- },
- "description": "A list of hybrid network virtual network function resources in a subscription or resource group."
- },
- "nextLink": {
- "type": "string",
- "readOnly": true,
- "description": "The URL to get the next set of results."
- }
- },
- "description": "Response for hybrid network virtual network function API service call."
- },
- "VirtualNetworkFunctionUserConfiguration": {
- "properties": {
- "roleName": {
- "type": "string",
- "description": "The name of the virtual network function role."
- },
- "userDataParameters": {
- "$ref": "./common.json#/definitions/UserDataParameters",
- "description": "The user data parameters from the customer."
- },
- "networkInterfaces": {
- "type": "array",
- "items": {
- "$ref": "./common.json#/definitions/NetworkInterface"
- },
- "description": "The network interface configuration."
- }
- },
- "description": "The virtual network function user configuration."
- }
- }
-}
diff --git a/specification/hybridnetwork/resource-manager/readme.azureresourceschema.md b/specification/hybridnetwork/resource-manager/readme.azureresourceschema.md
index e01e8f7e4357..a8d43d547bdb 100644
--- a/specification/hybridnetwork/resource-manager/readme.azureresourceschema.md
+++ b/specification/hybridnetwork/resource-manager/readme.azureresourceschema.md
@@ -20,10 +20,11 @@ output-folder: $(azureresourceschema-folder)/schemas
# all the input files in this apiVersion
input-file:
- Microsoft.HybridNetwork/preview/2020-01-01-preview/common.json
- - Microsoft.HybridNetwork/preview/2020-01-01-preview/virtualNetworkFunction.json
+ - Microsoft.HybridNetwork/preview/2020-01-01-preview/networkFunction.json
- Microsoft.HybridNetwork/preview/2020-01-01-preview/device.json
- - Microsoft.HybridNetwork/preview/2020-01-01-preview/operations.json
+ - Microsoft.HybridNetwork/preview/2020-01-01-preview/operation.json
- Microsoft.HybridNetwork/preview/2020-01-01-preview/vendor.json
- - Microsoft.HybridNetwork/preview/2020-01-01-preview/virtualNetworkFunctionVendors.json
+ - Microsoft.HybridNetwork/preview/2020-01-01-preview/networkFunctionVendor.json
+ - Microsoft.HybridNetwork/preview/2020-01-01-preview/vendorNetworkFunction.json
```
diff --git a/specification/hybridnetwork/resource-manager/readme.go.md b/specification/hybridnetwork/resource-manager/readme.go.md
index 31aa99b2c827..5485073c0531 100644
--- a/specification/hybridnetwork/resource-manager/readme.go.md
+++ b/specification/hybridnetwork/resource-manager/readme.go.md
@@ -22,5 +22,5 @@ Please also specify `--go-sdks-folder= 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/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.go.md b/specification/keyvault/resource-manager/readme.go.md
index 18186ff695aa..3bb372ff5eee 100644
--- a/specification/keyvault/resource-manager/readme.go.md
+++ b/specification/keyvault/resource-manager/readme.go.md
@@ -13,11 +13,20 @@ go:
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-preview-2020-04
- tag: package-2019-09
- tag: package-2018-02
- tag: package-2016-10
- tag: package-2015-06
```
+### Tag: package-preview-2020-04 and go
+
+These settings apply only when `--tag=package-preview-2020-04 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-preview-2020-04' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-04-01-preview/$(namespace)
+```
### Tag: package-2019-09 and go
diff --git a/specification/keyvault/resource-manager/readme.java.md b/specification/keyvault/resource-manager/readme.java.md
index 161b5ee85134..cd19bdec7637 100644
--- a/specification/keyvault/resource-manager/readme.java.md
+++ b/specification/keyvault/resource-manager/readme.java.md
@@ -15,11 +15,29 @@ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-keyvault
```yaml $(java) && $(multiapi)
batch:
+ - tag: profile-hybrid-2020-09-01
- tag: package-2018-02-14-preview
- tag: package-2016-10
- tag: package-2015-06
```
+### Tag: profile-hybrid-2020-09-01 and java
+
+These settings apply only when `--tag=profile-hybrid-2020-09-01 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'profile-hybrid-2020-09-01' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.keyvault.v2019_09_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/keyvault/mgmt-v2019_09_01
+regenerate-manager: true
+generate-interface: true
+directive:
+ from: keyvault.json
+ where: $.paths["/subscriptions/{subscriptionId}/resources"].get
+ transform: $['operationId'] = 'Vaults_ListResource'
+```
+
### Tag: package-2018-02-14-preview and java
These settings apply only when `--tag=package-2018-02-14-preview --java` is specified on the command line.
@@ -95,3 +113,15 @@ input-file:
- Microsoft.KeyVault/stable/2016-10-01/keyvault.json
- Microsoft.KeyVault/stable/2016-10-01/secrets.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/providers.json
+- Microsoft.KeyVault/stable/2019-09-01/keyvault.json
+- Microsoft.KeyVault/stable/2019-09-01/secrets.json
+```
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/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/CreateSourceControlConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/CreateSourceControlConfiguration.json
new file mode 100644
index 000000000000..bdc5945d6b0f
--- /dev/null
+++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/CreateSourceControlConfiguration.json
@@ -0,0 +1,110 @@
+{
+ "parameters": {
+ "subscriptionId": "subId1",
+ "resourceGroupName": "rg1",
+ "clusterRp": "Microsoft.Kubernetes",
+ "clusterResourceName": "connectedClusters",
+ "sourceControlConfigurationName": "SRS_GitHubConfig",
+ "api-version": "2020-10-01-preview",
+ "clusterName": "clusterName1",
+ "sourceControlConfiguration": {
+ "properties": {
+ "repositoryUrl": "git@github.com:k8sdeveloper425/flux-get-started",
+ "operatorNamespace": "SRS_Namespace",
+ "operatorInstanceName": "SRSGitHubFluxOp-01",
+ "operatorType": "Flux",
+ "operatorScope": "namespace",
+ "operatorParams": "--git-email=xyzgituser@users.srs.github.com",
+ "configurationProtectedSettings": {
+ "protectedSetting1Key": "protectedSetting1Value"
+ },
+ "enableHelmOperator": true,
+ "sshKnownHostsContents": "c3NoLmRldi5henVyZS5jb20gc3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDN0hyMW9UV3FOcU9sekdKT2ZHSjROYWtWeUl6ZjFyWFlkNGQ3d282akJsa0x2Q0E0b2RCbEwwbURVeVowL1FVZlRUcWV1K3RtMjJnT3N2K1ZyVlRNazZ2d1JVNzVnWS95OXV0NU1iM2JSNUJWNThkS1h5cTlBOVVlQjVDYWtlaG41WmdtNngxbUtvVnlmK0ZGbjI2aVlxWEpSZ3pJWlpjWjVWNmhyRTBRZzM5a1ptNGF6NDhvMEFVYmY2U3A0U0xkdm51TWEyc1ZOd0hCYm9TN0VKa201N1hRUFZVMy9RcHlOTEhiV0Rkend0cmxTK2V6MzBTM0FkWWhMS0VPeEFHOHdlT255cnRMSkFVZW45bVRrb2w4b0lJMWVkZjdtV1diV1ZmMG5CbWx5MjErblpjbUNUSVNRQnRkY3lQYUVubzdmRlFNREQyNi9zMGxmS29iNEt3OEg=",
+ "helmOperatorProperties": {
+ "chartVersion": "0.3.0",
+ "chartValues": "--set git.ssh.secretName=flux-git-deploy --set tillerNamespace=kube-system"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {},
+ "description": "Details of the Kubernetes Configuration's current status.",
+ "body": {
+ "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/SRS_GitHubConfig",
+ "type": "Microsoft.KubernetesConfiguration/sourceControlConfigurations",
+ "name": "SRS_GitHubConfig",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-09-08T05:10:57.027Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-09-08T05:10:57.027Z"
+ },
+ "properties": {
+ "repositoryUrl": "git@github.com:k8sdeveloper425/flux-get-started",
+ "operatorNamespace": "SRS_Namespace",
+ "operatorInstanceName": "SRSGitHubFluxOp-01",
+ "operatorType": "Flux",
+ "operatorScope": "namespace",
+ "operatorParams": "--git-email=xyzgituser@users.srs.github.com",
+ "enableHelmOperator": true,
+ "helmOperatorProperties": {
+ "chartVersion": "0.3.0",
+ "chartValues": "--set git.ssh.secretName=flux-git-deploy --set tillerNamespace=kube-system"
+ },
+ "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAqvTzeL+BWgcHnC1CTBRMg2ZfCh9khlrvb2avFHiGG24rRvjLHlKqtfiiw+cZNCKskUyVKqamD2RHrhyn/wXvJ9fFRt0LhYLKn4hJhJaPx4IawdWnW1MUv4U+Mr8o3Cxps4EmiZemqri3fOrhzEIlPL272whKpzlDLV7L4W1XQIGmVPwQ93HTzKEd5uHuEuw6JyFftDDLlCnd3Q1kQ7HOabFEfcSSr9cMx2MU4j/Pjuf3Rd/CzeksvKtU009KSXSnWKm8LL1fihSc1H1WDTi8iuZtT63hsNYH1yxrPRpMVScs3ufLViAGO9NEHQSgDdl/OERQQqKisUn2Qm6adgmftw== rsa-key-20190909",
+ "sshKnownHostsContents": "c3NoLmRldi5henVyZS5jb20gc3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDN0hyMW9UV3FOcU9sekdKT2ZHSjROYWtWeUl6ZjFyWFlkNGQ3d282akJsa0x2Q0E0b2RCbEwwbURVeVowL1FVZlRUcWV1K3RtMjJnT3N2K1ZyVlRNazZ2d1JVNzVnWS95OXV0NU1iM2JSNUJWNThkS1h5cTlBOVVlQjVDYWtlaG41WmdtNngxbUtvVnlmK0ZGbjI2aVlxWEpSZ3pJWlpjWjVWNmhyRTBRZzM5a1ptNGF6NDhvMEFVYmY2U3A0U0xkdm51TWEyc1ZOd0hCYm9TN0VKa201N1hRUFZVMy9RcHlOTEhiV0Rkend0cmxTK2V6MzBTM0FkWWhMS0VPeEFHOHdlT255cnRMSkFVZW45bVRrb2w4b0lJMWVkZjdtV1diV1ZmMG5CbWx5MjErblpjbUNUSVNRQnRkY3lQYUVubzdmRlFNREQyNi9zMGxmS29iNEt3OEg=",
+ "provisioningState": "Succeeded",
+ "complianceStatus": {
+ "complianceState": "Pending",
+ "lastConfigApplied": "2020-09-08T05:25:32.122Z",
+ "message": "Configuration successfully created",
+ "messageLevel": "Info"
+ }
+ }
+ }
+ },
+ "200": {
+ "headers": {},
+ "description": "Details of the Kubernetes Configuration's current status.",
+ "body": {
+ "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/SRS_GitHubConfig",
+ "type": "Microsoft.KubernetesConfiguration/sourceControlConfigurations",
+ "name": "SRS_GitHubConfig",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-09-08T05:10:57.027Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-09-08T05:10:57.027Z"
+ },
+ "properties": {
+ "repositoryUrl": "git@github.com:k8sdeveloper425/flux-get-started",
+ "operatorNamespace": "SRS_Namespace",
+ "operatorInstanceName": "SRSGitHubFluxOp-01",
+ "operatorType": "Flux",
+ "operatorScope": "namespace",
+ "operatorParams": "--git-email=xyzgituser@users.srs.github.com",
+ "enableHelmOperator": true,
+ "helmOperatorProperties": {
+ "chartVersion": "0.3.0",
+ "chartValues": "--set git.ssh.secretName=flux-git-deploy --set tillerNamespace=kube-system"
+ },
+ "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAqvTzeL+BWgcHnC1CTBRMg2ZfCh9khlrvb2avFHiGG24rRvjLHlKqtfiiw+cZNCKskUyVKqamD2RHrhyn/wXvJ9fFRt0LhYLKn4hJhJaPx4IawdWnW1MUv4U+Mr8o3Cxps4EmiZemqri3fOrhzEIlPL272whKpzlDLV7L4W1XQIGmVPwQ93HTzKEd5uHuEuw6JyFftDDLlCnd3Q1kQ7HOabFEfcSSr9cMx2MU4j/Pjuf3Rd/CzeksvKtU009KSXSnWKm8LL1fihSc1H1WDTi8iuZtT63hsNYH1yxrPRpMVScs3ufLViAGO9NEHQSgDdl/OERQQqKisUn2Qm6adgmftw== rsa-key-20190909",
+ "sshKnownHostsContents": "c3NoLmRldi5henVyZS5jb20gc3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDN0hyMW9UV3FOcU9sekdKT2ZHSjROYWtWeUl6ZjFyWFlkNGQ3d282akJsa0x2Q0E0b2RCbEwwbURVeVowL1FVZlRUcWV1K3RtMjJnT3N2K1ZyVlRNazZ2d1JVNzVnWS95OXV0NU1iM2JSNUJWNThkS1h5cTlBOVVlQjVDYWtlaG41WmdtNngxbUtvVnlmK0ZGbjI2aVlxWEpSZ3pJWlpjWjVWNmhyRTBRZzM5a1ptNGF6NDhvMEFVYmY2U3A0U0xkdm51TWEyc1ZOd0hCYm9TN0VKa201N1hRUFZVMy9RcHlOTEhiV0Rkend0cmxTK2V6MzBTM0FkWWhMS0VPeEFHOHdlT255cnRMSkFVZW45bVRrb2w4b0lJMWVkZjdtV1diV1ZmMG5CbWx5MjErblpjbUNUSVNRQnRkY3lQYUVubzdmRlFNREQyNi9zMGxmS29iNEt3OEg=",
+ "provisioningState": "Succeeded",
+ "complianceStatus": {
+ "complianceState": "Pending",
+ "lastConfigApplied": "2020-09-08T05:25:32.122Z",
+ "message": "Configuration successfully created",
+ "messageLevel": "Info"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/DeleteSourceControlConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/DeleteSourceControlConfiguration.json
new file mode 100644
index 000000000000..043fe81333af
--- /dev/null
+++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/DeleteSourceControlConfiguration.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "subscriptionId": "subId1",
+ "resourceGroupName": "rg1",
+ "clusterRp": "Microsoft.Kubernetes",
+ "clusterResourceName": "connectedClusters",
+ "sourceControlConfigurationName": "SRS_GitHubConfig",
+ "api-version": "2020-10-01-preview",
+ "clusterName": "clusterName1"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/GetSourceControlConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/GetSourceControlConfiguration.json
new file mode 100644
index 000000000000..a851f8189b88
--- /dev/null
+++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/GetSourceControlConfiguration.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "subscriptionId": "subId1",
+ "resourceGroupName": "rg1",
+ "clusterRp": "Microsoft.Kubernetes",
+ "clusterResourceName": "connectedClusters",
+ "sourceControlConfigurationName": "SRS_GitHubConfig",
+ "api-version": "2020-10-01-preview",
+ "clusterName": "clusterName1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "description": "Details of the Source Control Configuration's current status.",
+ "body": {
+ "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/SRS_GitHubConfig",
+ "type": "Microsoft.KubernetesConfiguration/sourceControlConfigurations",
+ "name": "SRS_GitHubConfig",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-09-08T05:10:57.027Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-09-08T05:10:57.027Z"
+ },
+ "properties": {
+ "repositoryUrl": "git@github.com:k8sdeveloper425/flux-get-started",
+ "operatorNamespace": "SRS_Namespace",
+ "operatorInstanceName": "SRSGitHubFluxOp-01",
+ "operatorType": "Flux",
+ "operatorScope": "namespace",
+ "operatorParams": "--git-email=xyzgituser@users.srs.github.com",
+ "helmOperatorProperties": {
+ "chartVersion": "0.3.0",
+ "chartValues": "--set git.ssh.secretName=flux-git-deploy --set tillerNamespace=kube-system"
+ },
+ "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAqvTzeL+BWgcHnC1CTBRMg2ZfCh9khlrvb2avFHiGG24rRvjLHlKqtfiiw+cZNCKskUyVKqamD2RHrhyn/wXvJ9fFRt0LhYLKn4hJhJaPx4IawdWnW1MUv4U+Mr8o3Cxps4EmiZemqri3fOrhzEIlPL272whKpzlDLV7L4W1XQIGmVPwQ93HTzKEd5uHuEuw6JyFftDDLlCnd3Q1kQ7HOabFEfcSSr9cMx2MU4j/Pjuf3Rd/CzeksvKtU009KSXSnWKm8LL1fihSc1H1WDTi8iuZtT63hsNYH1yxrPRpMVScs3ufLViAGO9NEHQSgDdl/OERQQqKisUn2Qm6adgmftw== rsa-key-20190909",
+ "sshKnownHostsContents": "c3NoLmRldi5henVyZS5jb20gc3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDN0hyMW9UV3FOcU9sekdKT2ZHSjROYWtWeUl6ZjFyWFlkNGQ3d282akJsa0x2Q0E0b2RCbEwwbURVeVowL1FVZlRUcWV1K3RtMjJnT3N2K1ZyVlRNazZ2d1JVNzVnWS95OXV0NU1iM2JSNUJWNThkS1h5cTlBOVVlQjVDYWtlaG41WmdtNngxbUtvVnlmK0ZGbjI2aVlxWEpSZ3pJWlpjWjVWNmhyRTBRZzM5a1ptNGF6NDhvMEFVYmY2U3A0U0xkdm51TWEyc1ZOd0hCYm9TN0VKa201N1hRUFZVMy9RcHlOTEhiV0Rkend0cmxTK2V6MzBTM0FkWWhMS0VPeEFHOHdlT255cnRMSkFVZW45bVRrb2w4b0lJMWVkZjdtV1diV1ZmMG5CbWx5MjErblpjbUNUSVNRQnRkY3lQYUVubzdmRlFNREQyNi9zMGxmS29iNEt3OEg=",
+ "provisioningState": "Succeeded",
+ "complianceStatus": {
+ "complianceState": "Pending",
+ "lastConfigApplied": "2020-09-08T05:25:32.122Z",
+ "message": "Configuration successfully created",
+ "messageLevel": "Info"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/ListSourceControlConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/ListSourceControlConfiguration.json
new file mode 100644
index 000000000000..c1c3b2bd8ae3
--- /dev/null
+++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/ListSourceControlConfiguration.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "subscriptionId": "subId1",
+ "resourceGroupName": "rg1",
+ "clusterRp": "Microsoft.Kubernetes",
+ "clusterResourceName": "connectedClusters",
+ "api-version": "2020-10-01-preview",
+ "clusterName": "clusterName1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/SRS_GitHubConfig",
+ "type": "Microsoft.KubernetesConfiguration/sourceControlConfigurations",
+ "name": "SRS_GitHubConfig",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-09-08T05:10:57.027Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-09-08T05:10:57.027Z"
+ },
+ "properties": {
+ "repositoryUrl": "git@github.com:k8sdeveloper425/SRSClusterconfigs",
+ "operatorNamespace": "SRS_Namespace",
+ "operatorInstanceName": "SRSGitHubFluxOp-01",
+ "operatorType": "Flux",
+ "operatorScope": "namespace",
+ "sshKnownHostsContents": "c3NoLmRldi5henVyZS5jb20gc3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDN0hyMW9UV3FOcU9sekdKT2ZHSjROYWtWeUl6ZjFyWFlkNGQ3d282akJsa0x2Q0E0b2RCbEwwbURVeVowL1FVZlRUcWV1K3RtMjJnT3N2K1ZyVlRNazZ2d1JVNzVnWS95OXV0NU1iM2JSNUJWNThkS1h5cTlBOVVlQjVDYWtlaG41WmdtNngxbUtvVnlmK0ZGbjI2aVlxWEpSZ3pJWlpjWjVWNmhyRTBRZzM5a1ptNGF6NDhvMEFVYmY2U3A0U0xkdm51TWEyc1ZOd0hCYm9TN0VKa201N1hRUFZVMy9RcHlOTEhiV0Rkend0cmxTK2V6MzBTM0FkWWhMS0VPeEFHOHdlT255cnRMSkFVZW45bVRrb2w4b0lJMWVkZjdtV1diV1ZmMG5CbWx5MjErblpjbUNUSVNRQnRkY3lQYUVubzdmRlFNREQyNi9zMGxmS29iNEt3OEg=",
+ "provisioningState": "Succeeded",
+ "complianceStatus": {
+ "complianceState": "Compliant"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/SCRS_GitHubConfig",
+ "type": "Microsoft.KubernetesConfiguration/sourceControlConfigurations",
+ "name": "SCRS_GitHubConfig",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-09-08T05:10:57.027Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-09-08T05:10:57.027Z"
+ },
+ "properties": {
+ "repositoryUrl": "git@github.com:k8sdeveloper425/SCRSClusterconfigs",
+ "operatorNamespace": "SCRS_Namespace",
+ "operatorInstanceName": "SCRSGitHubFluxOp-02",
+ "operatorType": "Flux",
+ "operatorScope": "cluster",
+ "sshKnownHostsContents": "c3NoLmRldi5henVyZS5jb20gc3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDN0hyMW9UV3FOcU9sekdKT2ZHSjROYWtWeUl6ZjFyWFlkNGQ3d282akJsa0x2Q0E0b2RCbEwwbURVeVowL1FVZlRUcWV1K3RtMjJnT3N2K1ZyVlRNazZ2d1JVNzVnWS95OXV0NU1iM2JSNUJWNThkS1h5cTlBOVVlQjVDYWtlaG41WmdtNngxbUtvVnlmK0ZGbjI2aVlxWEpSZ3pJWlpjWjVWNmhyRTBRZzM5a1ptNGF6NDhvMEFVYmY2U3A0U0xkdm51TWEyc1ZOd0hCYm9TN0VKa201N1hRUFZVMy9RcHlOTEhiV0Rkend0cmxTK2V6MzBTM0FkWWhMS0VPeEFHOHdlT255cnRMSkFVZW45bVRrb2w4b0lJMWVkZjdtV1diV1ZmMG5CbWx5MjErblpjbUNUSVNRQnRkY3lQYUVubzdmRlFNREQyNi9zMGxmS29iNEt3OEg=",
+ "provisioningState": "Succeeded",
+ "complianceStatus": {
+ "complianceState": "Compliant"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..d42cdeab1445
--- /dev/null
+++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/examples/OperationsList.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview"
+ },
+ "responses": {
+ "200": {
+ "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
+ }
+ ]
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..a42f62cca3ad
--- /dev/null
+++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/kubernetesconfiguration.json
@@ -0,0 +1,730 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-10-01-preview",
+ "title": "SourceControlConfigurationClient",
+ "description": "Use these APIs to create Source Control Configuration resources through ARM, for Kubernetes Clusters."
+ },
+ "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/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/{sourceControlConfigurationName}": {
+ "get": {
+ "tags": [
+ "SourceControlConfiguration"
+ ],
+ "description": "Gets details of the Source Control Configuration.",
+ "operationId": "SourceControlConfigurations_Get",
+ "x-ms-examples": {
+ "Get Source Control Configuration": {
+ "$ref": "./examples/GetSourceControlConfiguration.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterRpParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterResourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SourceControlConfigurationNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SourceControlConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "SourceControlConfiguration"
+ ],
+ "description": "Create a new Kubernetes Source Control Configuration.",
+ "operationId": "SourceControlConfigurations_CreateOrUpdate",
+ "x-ms-examples": {
+ "Create Source Control Configuration": {
+ "$ref": "./examples/CreateSourceControlConfiguration.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterRpParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterResourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SourceControlConfigurationNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "sourceControlConfiguration",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SourceControlConfiguration"
+ },
+ "description": "Properties necessary to Create KubernetesConfiguration."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SourceControlConfiguration"
+ }
+ },
+ "201": {
+ "description": "Created.",
+ "schema": {
+ "$ref": "#/definitions/SourceControlConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "SourceControlConfiguration"
+ ],
+ "description": "This will delete the YAML file used to set up the Source control configuration, thus stopping future sync from the source repo.",
+ "operationId": "SourceControlConfigurations_Delete",
+ "x-ms-examples": {
+ "Delete Source Control Configuration": {
+ "$ref": "./examples/DeleteSourceControlConfiguration.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterRpParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterResourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SourceControlConfigurationNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has been completed successfully."
+ },
+ "204": {
+ "description": "No Content. The request has been accepted but the configuration was not found."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations": {
+ "get": {
+ "tags": [
+ "SourceControlConfiguration"
+ ],
+ "description": "List all Source Control Configurations.",
+ "operationId": "SourceControlConfigurations_List",
+ "x-ms-examples": {
+ "List Source Control Configuration": {
+ "$ref": "./examples/ListSourceControlConfiguration.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterRpParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterResourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SourceControlConfigurationList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/providers/Microsoft.KubernetesConfiguration/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "operationId": "Operations_List",
+ "x-ms-examples": {
+ "BatchAccountDelete": {
+ "$ref": "./examples/OperationsList.json"
+ }
+ },
+ "description": "List all the available operations the KubernetesConfiguration resource provider supports.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK response definition.",
+ "schema": {
+ "$ref": "#/definitions/ResourceProviderOperationList"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "SystemData": {
+ "description": "Top level metadata https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources",
+ "type": "object",
+ "properties": {
+ "createdBy": {
+ "description": "A string identifier for the identity that created the resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "createdByType": {
+ "description": "The type of identity that created the resource: user, application, managedIdentity, key",
+ "type": "string",
+ "readOnly": true
+ },
+ "createdAt": {
+ "format": "date-time",
+ "description": "The timestamp of resource creation (UTC)",
+ "type": "string",
+ "readOnly": true
+ },
+ "lastModifiedBy": {
+ "description": "A string identifier for the identity that last modified the resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "lastModifiedByType": {
+ "description": "The type of identity that last modified the resource: user, application, managedIdentity, key",
+ "type": "string",
+ "readOnly": true
+ },
+ "lastModifiedAt": {
+ "format": "date-time",
+ "description": "The timestamp of resource last modification (UTC)",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "Resource": {
+ "description": "The Resource model definition.",
+ "type": "object",
+ "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"
+ },
+ "systemData": {
+ "description": "Top level metadata https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources",
+ "$ref": "#/definitions/SystemData"
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "ProxyResource": {
+ "description": "ARM proxy resource.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {}
+ },
+ "Result": {
+ "description": "Sample result definition",
+ "properties": {
+ "sampleProperty": {
+ "type": "string",
+ "description": "Sample property of type string"
+ }
+ }
+ },
+ "ErrorResponse": {
+ "description": "Error response.",
+ "properties": {
+ "error": {
+ "description": "Error definition.",
+ "$ref": "#/definitions/ErrorDefinition"
+ }
+ }
+ },
+ "ErrorDefinition": {
+ "description": "Error definition.",
+ "readOnly": true,
+ "required": [
+ "message",
+ "code"
+ ],
+ "properties": {
+ "code": {
+ "description": "Service specific error code which serves as the substatus for the HTTP error code.",
+ "type": "string",
+ "minimum": 100,
+ "maximum": 600
+ },
+ "message": {
+ "description": "Description of the error.",
+ "type": "string"
+ }
+ }
+ },
+ "ComplianceStatus": {
+ "description": "Compliance Status details",
+ "type": "object",
+ "readOnly": true,
+ "properties": {
+ "complianceState": {
+ "description": "The compliance state of the configuration.",
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ComplianceStateType",
+ "modelAsString": true
+ },
+ "enum": [
+ "Pending",
+ "Compliant",
+ "Noncompliant",
+ "Installed",
+ "Failed"
+ ]
+ },
+ "lastConfigApplied": {
+ "description": "Datetime the configuration was last applied.",
+ "type": "string",
+ "format": "date-time"
+ },
+ "message": {
+ "description": "Message from when the configuration was applied.",
+ "type": "string"
+ },
+ "messageLevel": {
+ "description": "Level of the message.",
+ "type": "string",
+ "enum": [
+ "Error",
+ "Warning",
+ "Information"
+ ],
+ "x-ms-enum": {
+ "name": "MessageLevelType",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "ChartVersion": {
+ "description": "Version of the operator Helm chart.",
+ "type": "string"
+ },
+ "ChartValues": {
+ "description": "Values override for the operator Helm chart.",
+ "type": "string"
+ },
+ "HelmOperatorProperties": {
+ "description": "Properties for Helm operator.",
+ "type": "object",
+ "properties": {
+ "chartVersion": {
+ "description": "Version of the operator Helm chart.",
+ "$ref": "#/definitions/ChartVersion"
+ },
+ "chartValues": {
+ "description": "Values override for the operator Helm chart.",
+ "$ref": "#/definitions/ChartValues"
+ }
+ }
+ },
+ "ConfigurationProtectedSettings": {
+ "description": "Name-value pairs of protected configuration settings for the configuration",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "OperatorTypeDefinition": {
+ "description": "Type of the operator",
+ "type": "string",
+ "enum": [
+ "Flux"
+ ],
+ "x-ms-enum": {
+ "name": "OperatorType",
+ "modelAsString": true
+ }
+ },
+ "OperatorScopeDefinition": {
+ "description": "Scope at which the operator will be installed.",
+ "type": "string",
+ "enum": [
+ "cluster",
+ "namespace"
+ ],
+ "default": "cluster",
+ "x-ms-enum": {
+ "name": "OperatorScopeType",
+ "modelAsString": true
+ }
+ },
+ "EnableHelmOperatorDefinition": {
+ "description": "Option to enable Helm Operator for this git configuration.",
+ "type": "boolean",
+ "enum": [
+ "true",
+ "false"
+ ],
+ "x-ms-enum": {
+ "name": "EnableHelmOperatorType",
+ "modelAsString": true
+ }
+ },
+ "SourceControlConfiguration": {
+ "description": "The SourceControl Configuration object returned in Get & Put response.",
+ "properties": {
+ "properties": {
+ "type": "object",
+ "x-ms-client-flatten": true,
+ "description": "Properties to create a Source Control Configuration resource",
+ "properties": {
+ "repositoryUrl": {
+ "type": "string",
+ "description": "Url of the SourceControl Repository."
+ },
+ "operatorNamespace": {
+ "description": "The namespace to which this operator is installed to. Maximum of 253 lower case alphanumeric characters, hyphen and period only.",
+ "type": "string",
+ "default": "default"
+ },
+ "operatorInstanceName": {
+ "description": "Instance name of the operator - identifying the specific configuration.",
+ "type": "string"
+ },
+ "operatorType": {
+ "description": "Type of the operator",
+ "$ref": "#/definitions/OperatorTypeDefinition"
+ },
+ "operatorParams": {
+ "description": "Any Parameters for the Operator instance in string format.",
+ "type": "string"
+ },
+ "configurationProtectedSettings": {
+ "description": "Name-value pairs of protected configuration settings for the configuration",
+ "type": "object",
+ "$ref": "#/definitions/ConfigurationProtectedSettings"
+ },
+ "operatorScope": {
+ "description": "Scope at which the operator will be installed.",
+ "$ref": "#/definitions/OperatorScopeDefinition"
+ },
+ "repositoryPublicKey": {
+ "description": "Public Key associated with this SourceControl configuration (either generated within the cluster or provided by the user).",
+ "type": "string",
+ "readOnly": true
+ },
+ "sshKnownHostsContents": {
+ "description": "Base64-encoded known_hosts contents containing public SSH keys required to access private Git instances",
+ "type": "string"
+ },
+ "enableHelmOperator": {
+ "description": "Option to enable Helm Operator for this git configuration.",
+ "$ref": "#/definitions/EnableHelmOperatorDefinition"
+ },
+ "helmOperatorProperties": {
+ "description": "Properties for Helm operator.",
+ "type": "object",
+ "$ref": "#/definitions/HelmOperatorProperties"
+ },
+ "provisioningState": {
+ "type": "string",
+ "description": "The provisioning state of the resource provider.",
+ "readOnly": true,
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "ProvisioningStateType"
+ },
+ "enum": [
+ "Accepted",
+ "Deleting",
+ "Running",
+ "Succeeded",
+ "Failed"
+ ]
+ },
+ "complianceStatus": {
+ "type": "object",
+ "description": "Compliance Status of the Configuration",
+ "readOnly": true,
+ "$ref": "#/definitions/ComplianceStatus"
+ }
+ }
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ]
+ },
+ "SourceControlConfigurationList": {
+ "description": "Result of the request to list Source Control Configurations. It contains a list of SourceControlConfiguration objects and a URL link to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/SourceControlConfiguration"
+ },
+ "description": "List of Source Control Configurations within a Kubernetes cluster."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "URL to get the next set of configuration objects, if any."
+ }
+ }
+ },
+ "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 KubernetesConfiguration.",
+ "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"
+ }
+ }
+ },
+ "isDataAction": {
+ "description": "The flag that indicates whether the operation applies to data plane.",
+ "type": "boolean",
+ "readOnly": true
+ }
+ }
+ },
+ "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."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "URL to the next set of results, if any."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000)"
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group.",
+ "x-ms-parameter-location": "method"
+ },
+ "ClusterRpParameter": {
+ "name": "clusterRp",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "Microsoft.ContainerService",
+ "Microsoft.Kubernetes"
+ ],
+ "description": "The Kubernetes cluster RP - either Microsoft.ContainerService (for AKS clusters) or Microsoft.Kubernetes (for OnPrem K8S clusters).",
+ "x-ms-parameter-location": "method"
+ },
+ "ClusterResourceNameParameter": {
+ "name": "clusterResourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "managedClusters",
+ "connectedClusters"
+ ],
+ "description": "The Kubernetes cluster resource name - either managedClusters (for AKS clusters) or connectedClusters (for OnPrem K8S clusters).",
+ "x-ms-parameter-location": "method"
+ },
+ "ClusterNameParameter": {
+ "name": "clusterName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the kubernetes cluster.",
+ "x-ms-parameter-location": "method"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "The API version to be used with the HTTP request."
+ },
+ "SourceControlConfigurationNameParameter": {
+ "name": "sourceControlConfigurationName",
+ "in": "path",
+ "description": "Name of the Source Control Configuration.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/kubernetesconfiguration/resource-manager/readme.md b/specification/kubernetesconfiguration/resource-manager/readme.md
index b4f77c2a7a2f..5115badb9a86 100644
--- a/specification/kubernetesconfiguration/resource-manager/readme.md
+++ b/specification/kubernetesconfiguration/resource-manager/readme.md
@@ -24,16 +24,25 @@ For other options on installation see [Installing AutoRest](https://aka.ms/autor
These are the global settings for the kubernetesconfiguration.
-```yaml
+``` yaml
openapi-type: arm
-tag: package-2019-11-01-preview
+tag: package-preview-2020-10
```
+
+### Tag: package-preview-2020-10
+
+These settings apply only when `--tag=package-preview-2020-10` is specified on the command line.
+
+```yaml $(tag) == 'package-preview-2020-10'
+input-file:
+ - Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/kubernetesconfiguration.json
+```
### Tag: package-2019-11-01-preview
These settings apply only when `--tag=package-2019-11-01-preview` is specified on the command line.
-```yaml $(tag) == 'package-2019-11-01-preview'
+``` yaml $(tag) == 'package-2019-11-01-preview'
input-file:
- Microsoft.KubernetesConfiguration/preview/2019-11-01-preview/kubernetesconfiguration.json
```
@@ -47,7 +56,7 @@ input-file:
This section describes what SDK should be generated by the automatic system.
This is not used by Autorest itself.
-```yaml $(swagger-to-sdk)
+``` yaml $(swagger-to-sdk)
swagger-to-sdk:
- repo: azure-sdk-for-python
- repo: azure-sdk-for-java
@@ -84,4 +93,3 @@ See configuration in [readme.csharp.md](./readme.csharp.md)
## AzureResourceSchema
See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-
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/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/examples/GetMetroAreaInfo.json b/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/examples/GetMetroAreaInfo.json
index 5105fdde77ed..34064024fa0d 100644
--- a/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/examples/GetMetroAreaInfo.json
+++ b/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/examples/GetMetroAreaInfo.json
@@ -307,7 +307,8 @@
"captionOverride": "Bus"
}
}
- ]
+ ],
+ "isFaresSupported": "true"
}
},
"400": {
diff --git a/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/examples/GetTransitItinerary.json b/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/examples/GetTransitItinerary.json
index 02fc587bd829..91f2c104f189 100644
--- a/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/examples/GetTransitItinerary.json
+++ b/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/examples/GetTransitItinerary.json
@@ -2,7 +2,7 @@
"parameters": {
"api-version": "1.0",
"format": "json",
- "query": "68fa6e31-d1a4-4457-a15b-8f5036a76a78---201909167EB6D19458C443BFAD897246FD28DAD4:0---121",
+ "query": "6f1eb44e-255f-4d06-9491-a35ee7864e19---20200929FF43D18907D24B35A1A7454DE7231C89:0---81",
"detailType": [
"geometry"
]
@@ -10,148 +10,198 @@
"responses": {
"200": {
"body": {
- "departureTime": "2019-09-16T18:04:53Z",
- "arrivalTime": "2019-09-16T18:08:07Z",
+ "departureTime": "2020-09-29T20:48:05Z",
+ "arrivalTime": "2020-09-29T20:53:25Z",
"legs": [
{
- "legType": "Bicycle",
- "legStartTime": "2019-09-16T18:04:53Z",
- "legEndTime": "2019-09-16T18:08:07Z",
- "steps": [
+ "legType": "Wait",
+ "legStartTime": "2020-09-29T20:48:05Z",
+ "legEndTime": "2020-09-29T20:48:05Z",
+ "lineGroup": {
+ "lineGroupId": "0---211457",
+ "agencyId": "0---321",
+ "agencyName": "CTA",
+ "lineNumber": "22",
+ "caption1": "Clark",
+ "caption2": "22 Clark",
+ "color": "565A5C",
+ "transitType": "Bus"
+ },
+ "line": {
+ "lineId": "0---1151684",
+ "lineGroupId": "0---211457",
+ "direction": "forward",
+ "agencyId": "0---321",
+ "lineNumber": "22",
+ "lineDestination": "Southbound - Harrison"
+ },
+ "stops": [
+ {
+ "stopId": "0---161771",
+ "stopKey": "1853",
+ "stopName": "Clark & Oak (South)",
+ "stopCode": "1853",
+ "position": {
+ "latitude": 41.900657,
+ "longitude": -87.631426
+ },
+ "mainTransitType": "Bus",
+ "mainAgencyId": "0---321",
+ "mainAgencyName": "CTA"
+ },
+ {
+ "stopId": "0---33004397",
+ "stopKey": "18255",
+ "stopName": "Clark & Huron (South)",
+ "stopCode": "18255",
+ "position": {
+ "latitude": 41.894729,
+ "longitude": -87.631288
+ },
+ "mainTransitType": "Bus",
+ "mainAgencyId": "0---321",
+ "mainAgencyName": "CTA"
+ }
+ ],
+ "waitOnVehicle": "false"
+ },
+ {
+ "legType": "Bus",
+ "legStartTime": "2020-09-29T20:48:05Z",
+ "legEndTime": "2020-09-29T20:51:15Z",
+ "lineGroup": {
+ "lineGroupId": "81---211457",
+ "agencyId": "81---321",
+ "agencyName": "CTA",
+ "lineNumber": "22",
+ "caption1": "Clark",
+ "caption2": "22 Clark",
+ "color": "565A5C",
+ "transitType": "Bus"
+ },
+ "line": {
+ "lineId": "81---1151684",
+ "lineGroupId": "81---211457",
+ "direction": "forward",
+ "agencyId": "81---321",
+ "lineNumber": "22",
+ "lineDestination": "Southbound - Harrison"
+ },
+ "stops": [
{
- "direction": {
- "relativeDirection": "depart"
+ "stopId": "81---161771",
+ "stopKey": "1853",
+ "stopName": "Clark & Oak (South)",
+ "stopCode": "1853",
+ "position": {
+ "latitude": 41.900657,
+ "longitude": -87.631426
},
- "streetName": "3rd Avenue"
+ "mainTransitType": "Bus",
+ "mainAgencyId": "81---321",
+ "mainAgencyName": "CTA"
},
{
- "direction": {
- "relativeDirection": "right"
+ "stopId": "81---161772",
+ "stopKey": "1854",
+ "stopName": "Clark & Delaware (South)",
+ "stopCode": "1854",
+ "position": {
+ "latitude": 41.899361,
+ "longitude": -87.631386
},
- "streetName": "Dean Street"
+ "mainTransitType": "Bus",
+ "mainAgencyId": "81---321",
+ "mainAgencyName": "CTA"
},
{
- "direction": {
- "relativeDirection": "right"
+ "stopId": "81---33004397",
+ "stopKey": "18255",
+ "stopName": "Clark & Huron (South)",
+ "stopCode": "18255",
+ "position": {
+ "latitude": 41.894729,
+ "longitude": -87.631288
},
- "streetName": "5th Avenue"
+ "mainTransitType": "Bus",
+ "mainAgencyId": "81---321",
+ "mainAgencyName": "CTA"
}
],
- "origin": {
- "position": {
- "latitude": 40.680903,
- "longitude": -73.983723
- }
- },
- "destination": {
- "position": {
- "latitude": 40.682051,
- "longitude": -73.976702
- }
- },
"geometry": {
"type": "LineString",
"coordinates": [
[
- -73.98373,
- 40.6809
- ],
- [
- -73.98371,
- 40.68089
- ],
- [
- -73.98328,
- 40.68152
- ],
- [
- -73.9831,
- 40.68179
- ],
- [
- -73.98303,
- 40.68189
- ],
- [
- -73.98302,
- 40.68191
- ],
- [
- -73.9829,
- 40.68208
- ],
- [
- -73.98286,
- 40.68214
- ],
- [
- -73.9828,
- 40.68223
+ -87.63157,
+ 41.90064
],
[
- -73.98243,
- 40.68278
+ -87.63156,
+ 41.90057
],
[
- -73.98199,
- 40.68342
+ -87.63153,
+ 41.90045
],
[
- -73.98161,
- 40.68398
+ -87.6315,
+ 41.90029
],
[
- -73.98157,
- 40.68405
+ -87.63121,
+ 41.89508
],
[
- -73.9812,
- 40.6839
+ -87.63121,
+ 41.89498
],
[
- -73.97984,
- 40.68338
+ -87.63121,
+ 41.89487
],
[
- -73.9794,
- 40.6832
+ -87.63121,
+ 41.89481
],
[
- -73.97924,
- 40.68314
+ -87.6312,
+ 41.89476
],
[
- -73.97912,
- 40.68309
+ -87.6312,
+ 41.89473
],
[
- -73.97899,
- 40.68304
- ],
- [
- -73.97675,
- 40.68217
- ],
- [
- -73.97659,
- 40.68211
- ],
- [
- -73.97665,
- 40.68203
- ],
- [
- -73.97665,
- 40.68203
- ],
- [
- -73.97671,
- 40.68205
+ -87.6312,
+ 41.89472
]
]
+ },
+ "legFare": {
+ "fares": [
+ {
+ "price": {
+ "amount": 225,
+ "currencyCode": "USD"
+ },
+ "usage": "pay"
+ }
+ ]
}
}
- ]
+ ],
+ "itineraryFare": {
+ "price": {
+ "amount": 225,
+ "currencyCode": "USD"
+ },
+ "tickets": [
+ {
+ "amount": 225,
+ "currencyCode": "USD"
+ }
+ ]
+ }
}
},
"400": {
diff --git a/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/examples/GetTransitRoute.json b/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/examples/GetTransitRoute.json
index 9074ad95aaef..280920327153 100644
--- a/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/examples/GetTransitRoute.json
+++ b/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/examples/GetTransitRoute.json
@@ -2,181 +2,219 @@
"parameters": {
"api-version": "1.0",
"format": "json",
- "origin": "40.680903,-73.983723",
+ "origin": "41.948437, -87.655334",
"originType": "position",
- "destination": "40.682051,-73.976702",
- "destinationType": "position"
+ "destination": "41.878876, -87.635918",
+ "destinationType": "position",
+ "modeType": "publicTransit",
+ "transitType": "bus"
},
"responses": {
"200": {
"body": {
"results": [
{
- "itineraryId": "68fa6e31-d1a4-4457-a15b-8f5036a76a78---201909167EB6D19458C443BFAD897246FD28DAD4:0---121",
- "departureTime": "2019-09-16T18:04:53Z",
- "arrivalTime": "2019-09-16T18:08:07Z",
- "travelTimeInSeconds": 194,
- "numberOfLegs": 1,
- "legs": [
- {
- "legType": "Bicycle",
- "legStartTime": "2019-09-16T18:04:53Z",
- "legEndTime": "2019-09-16T18:08:07Z",
- "lengthInMeters": 877
- }
- ]
- },
- {
- "itineraryId": "68fa6e31-d1a4-4457-a15b-8f5036a76a78---20190916E4C79AA6602341F0973B94A3A79D9D36:0---121",
- "departureTime": "2019-09-16T18:04:53Z",
- "arrivalTime": "2019-09-16T18:07:57Z",
- "travelTimeInSeconds": 184,
- "numberOfLegs": 1,
- "legs": [
- {
- "legType": "Bicycle",
- "legStartTime": "2019-09-16T18:04:53Z",
- "legEndTime": "2019-09-16T18:07:57Z",
- "lengthInMeters": 851
- }
- ]
- },
- {
- "itineraryId": "68fa6e31-d1a4-4457-a15b-8f5036a76a78---201909168C38C8E44DEC41B7B6B7DB3ADE640722:0---121",
- "departureTime": "2019-09-16T18:04:53Z",
- "arrivalTime": "2019-09-16T18:13:33Z",
- "travelTimeInSeconds": 520,
- "numberOfLegs": 3,
+ "itineraryId": "41372ab5-8577-481a-ab24-e84572fe69a5---2020092910DC67FA27034F15A29F4AE5415ADAF2:0---81",
+ "departureTime": "2020-09-30T00:30:29Z",
+ "arrivalTime": "2020-09-30T01:18:16Z",
+ "travelTimeInSeconds": 2867,
+ "numberOfLegs": 4,
"legs": [
{
"legType": "Walk",
- "legStartTime": "2019-09-16T18:04:53Z",
- "legEndTime": "2019-09-16T18:07:12Z",
- "caption": "Douglass Street",
- "lengthInMeters": 93
+ "legStartTime": "2020-09-30T00:30:29Z",
+ "legEndTime": "2020-09-30T00:34:01Z",
+ "caption": "North Clark Street",
+ "lengthInMeters": 196
},
{
- "legType": "Bicycle",
- "legStartTime": "2019-09-16T18:07:12Z",
- "legEndTime": "2019-09-16T18:10:22Z",
- "caption": "Dean Street",
- "lengthInMeters": 734
+ "legType": "Wait",
+ "legStartTime": "2020-09-30T00:34:01Z",
+ "legEndTime": "2020-09-30T00:35:02Z",
+ "caption": "22"
+ },
+ {
+ "legType": "Bus",
+ "legStartTime": "2020-09-30T00:35:02Z",
+ "legEndTime": "2020-09-30T01:12:52Z",
+ "caption": "22",
+ "lengthInMeters": 8463,
+ "legFare": {
+ "fares": [
+ {
+ "price": {
+ "amount": 225,
+ "currencyCode": "USD"
+ },
+ "usage": "pay"
+ }
+ ]
+ }
},
{
"legType": "Walk",
- "legStartTime": "2019-09-16T18:10:22Z",
- "legEndTime": "2019-09-16T18:13:33Z",
- "lengthInMeters": 212
+ "legStartTime": "2020-09-30T01:12:53Z",
+ "legEndTime": "2020-09-30T01:18:16Z",
+ "lengthInMeters": 421
}
- ]
+ ],
+ "itineraryFare": {
+ "price": {
+ "amount": 225,
+ "currencyCode": "USD"
+ },
+ "tickets": [
+ {
+ "amount": 225,
+ "currencyCode": "USD"
+ }
+ ]
+ }
},
{
- "itineraryId": "68fa6e31-d1a4-4457-a15b-8f5036a76a78---201909168960D307482847EF9E0A2A59D22A5D2F:0---121",
- "departureTime": "2019-09-16T18:04:53Z",
- "arrivalTime": "2019-09-16T18:14:00Z",
- "travelTimeInSeconds": 547,
+ "itineraryId": "41372ab5-8577-481a-ab24-e84572fe69a5---2020092910DC67FA27034F15A29F4AE5415ADAF2:1---81",
+ "departureTime": "2020-09-30T00:32:42Z",
+ "arrivalTime": "2020-09-30T01:26:29Z",
+ "travelTimeInSeconds": 3227,
"numberOfLegs": 3,
"legs": [
{
"legType": "Walk",
- "legStartTime": "2019-09-16T18:04:53Z",
- "legEndTime": "2019-09-16T18:07:12Z",
- "caption": "Douglass Street",
- "lengthInMeters": 93
+ "legStartTime": "2020-09-30T00:32:42Z",
+ "legEndTime": "2020-09-30T00:39:40Z",
+ "caption": "West Sheridan Road",
+ "lengthInMeters": 480
},
{
- "legType": "Bicycle",
- "legStartTime": "2019-09-16T18:07:12Z",
- "legEndTime": "2019-09-16T18:10:22Z",
- "caption": "Dean Street",
- "lengthInMeters": 734
+ "legType": "Wait",
+ "legStartTime": "2020-09-30T00:39:40Z",
+ "legEndTime": "2020-09-30T00:40:41Z",
+ "caption": "151"
},
{
- "legType": "Walk",
- "legStartTime": "2019-09-16T18:10:22Z",
- "legEndTime": "2019-09-16T18:14:00Z",
- "lengthInMeters": 237
+ "legType": "Bus",
+ "legStartTime": "2020-09-30T00:40:41Z",
+ "legEndTime": "2020-09-30T01:26:29Z",
+ "caption": "151",
+ "lengthInMeters": 10539,
+ "legFare": {
+ "fares": [
+ {
+ "price": {
+ "amount": 225,
+ "currencyCode": "USD"
+ },
+ "usage": "pay"
+ }
+ ]
+ }
}
- ]
+ ],
+ "itineraryFare": {
+ "price": {
+ "amount": 225,
+ "currencyCode": "USD"
+ },
+ "tickets": [
+ {
+ "amount": 225,
+ "currencyCode": "USD"
+ }
+ ]
+ }
},
{
- "itineraryId": "68fa6e31-d1a4-4457-a15b-8f5036a76a78---2019091632031DBD314545E19C0CD726BCE4BCD8:0---121",
- "departureTime": "2019-09-16T18:06:17Z",
- "arrivalTime": "2019-09-16T18:16:00Z",
- "travelTimeInSeconds": 583,
- "numberOfLegs": 3,
+ "itineraryId": "41372ab5-8577-481a-ab24-e84572fe69a5---2020092910DC67FA27034F15A29F4AE5415ADAF2:2---81",
+ "departureTime": "2020-09-30T00:28:04Z",
+ "arrivalTime": "2020-09-30T01:24:46Z",
+ "travelTimeInSeconds": 3402,
+ "numberOfLegs": 7,
"legs": [
{
"legType": "Walk",
- "legStartTime": "2019-09-16T18:06:17Z",
- "legEndTime": "2019-09-16T18:11:56Z",
- "caption": "Dean Street",
- "lengthInMeters": 429
+ "legStartTime": "2020-09-30T00:28:04Z",
+ "legEndTime": "2020-09-30T00:35:40Z",
+ "caption": "West Waveland Avenue",
+ "lengthInMeters": 522
},
{
"legType": "Wait",
- "legStartTime": "2019-09-16T18:11:56Z",
- "legEndTime": "2019-09-16T18:12:57Z",
- "caption": "B65"
+ "legStartTime": "2020-09-30T00:35:40Z",
+ "legEndTime": "2020-09-30T00:36:41Z",
+ "caption": "8"
},
{
"legType": "Bus",
- "legStartTime": "2019-09-16T18:12:57Z",
- "legEndTime": "2019-09-16T18:16:00Z",
- "caption": "B65",
- "lengthInMeters": 422
- }
- ]
- },
- {
- "itineraryId": "68fa6e31-d1a4-4457-a15b-8f5036a76a78---2019091632031DBD314545E19C0CD726BCE4BCD8:1---121",
- "departureTime": "2019-09-16T18:15:04Z",
- "arrivalTime": "2019-09-16T18:24:36Z",
- "travelTimeInSeconds": 572,
- "numberOfLegs": 4,
- "legs": [
+ "legStartTime": "2020-09-30T00:36:41Z",
+ "legEndTime": "2020-09-30T01:09:41Z",
+ "caption": "8",
+ "lengthInMeters": 8059,
+ "legFare": {
+ "fares": [
+ {
+ "price": {
+ "amount": 225,
+ "currencyCode": "USD"
+ },
+ "usage": "pay"
+ }
+ ]
+ }
+ },
{
"legType": "Walk",
- "legStartTime": "2019-09-16T18:15:04Z",
- "legEndTime": "2019-09-16T18:15:50Z",
- "caption": "3rd Avenue",
- "lengthInMeters": 51
+ "legStartTime": "2020-09-30T01:09:42Z",
+ "legEndTime": "2020-09-30T01:11:59Z",
+ "caption": "West Van Buren Street",
+ "lengthInMeters": 174
},
{
"legType": "Wait",
- "legStartTime": "2019-09-16T18:15:50Z",
- "legEndTime": "2019-09-16T18:16:51Z",
- "caption": "B37"
+ "legStartTime": "2020-09-30T01:11:59Z",
+ "legEndTime": "2020-09-30T01:18:43Z",
+ "caption": "126"
},
{
"legType": "Bus",
- "legStartTime": "2019-09-16T18:16:51Z",
- "legEndTime": "2019-09-16T18:21:00Z",
- "caption": "B37",
- "lengthInMeters": 942
+ "legStartTime": "2020-09-30T01:18:43Z",
+ "legEndTime": "2020-09-30T01:22:45Z",
+ "caption": "126",
+ "lengthInMeters": 1092,
+ "legFare": {
+ "fares": [
+ {
+ "price": {
+ "amount": 25,
+ "currencyCode": "USD"
+ },
+ "usage": "pay"
+ }
+ ]
+ }
},
{
"legType": "Walk",
- "legStartTime": "2019-09-16T18:21:01Z",
- "legEndTime": "2019-09-16T18:24:36Z",
- "lengthInMeters": 278
- }
- ]
- },
- {
- "itineraryId": "68fa6e31-d1a4-4457-a15b-8f5036a76a78---2019091632031DBD314545E19C0CD726BCE4BCD8:2---121",
- "departureTime": "2019-09-16T18:04:53Z",
- "arrivalTime": "2019-09-16T18:15:38Z",
- "travelTimeInSeconds": 645,
- "numberOfLegs": 1,
- "legs": [
- {
- "legType": "Walk",
- "legStartTime": "2019-09-16T18:04:53Z",
- "legEndTime": "2019-09-16T18:15:38Z",
- "lengthInMeters": 829
+ "legStartTime": "2020-09-30T01:22:46Z",
+ "legEndTime": "2020-09-30T01:24:46Z",
+ "lengthInMeters": 102
}
- ]
+ ],
+ "itineraryFare": {
+ "price": {
+ "amount": 250,
+ "currencyCode": "USD"
+ },
+ "tickets": [
+ {
+ "amount": 225,
+ "currencyCode": "USD"
+ },
+ {
+ "amount": 25,
+ "currencyCode": "USD"
+ }
+ ]
+ }
}
]
}
diff --git a/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/mobility.json b/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/mobility.json
index afeb93435bcf..3af3f353c1f6 100644
--- a/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/mobility.json
+++ b/specification/maps/data-plane/Microsoft.Maps/Mobility/preview/1.0/mobility.json
@@ -126,6 +126,7 @@
"name": "metroId",
"description": "The unique id of the metro area. Can be retrieved via [Get Metro Area API](https://aka.ms/AzureMapsMobilityMetro).",
"type": "integer",
+ "format": "int32",
"in": "query",
"required": false,
"x-ms-parameter-location": "method"
@@ -144,7 +145,7 @@
"get": {
"x-publish": true,
"operationId": "Mobility_GetMetroAreaPreview",
- "description": "**Metro Area API**\n\n**Applies to**: S1 pricing tier.\n\nService allows to request metro areas in which the Azure Maps Mobility Service is available. The service supports filtering results by country or coordinate location. Information returned includes Metro Area details such as metro Id, name and a representation of the metro area geometry in GeoJSON format.",
+ "description": "**Metro Area API**\n\n**Applies to**: S1 pricing tier.\n\nService allows users to request metro areas in which the Azure Maps Mobility Service is available. The service supports filtering results by country or coordinate location. Information returned includes Metro Area details such as metro Id, name and a representation of the metro area geometry in GeoJSON format.",
"x-ms-examples": {
"MetroArea": {
"$ref": "./examples/GetMetroArea.json"
@@ -230,7 +231,7 @@
"get": {
"x-publish": true,
"operationId": "Mobility_GetMetroAreaInfoPreview",
- "description": "**Metro Area Info API**\n\n**Applies to**: S1 pricing tier.\n\nService allows to request additional information for metro areas in which the Azure Maps Mobility Service is available. Information such as supported transit types, transit agencies and active alerts is available, depending on the options selected.",
+ "description": "**Metro Area Info API**\n\n**Applies to**: S1 pricing tier.\n\nService allows users to request additional information for metro areas in which the Azure Maps Mobility services are available. Information such as supported transit types, transit agencies and active alerts is available, depending on the options selected. Also, the service returns information if the public transit fare information is available for the requested metro area.",
"x-ms-examples": {
"MetroAreaInfo": {
"$ref": "./examples/GetMetroAreaInfo.json"
@@ -254,7 +255,8 @@
"description": "metroId. The unique id of the metro area. Required parameter specifying the required metro area to search in. Can be retrieved via [Get Metro Area API](https://aka.ms/AzureMapsMobilityTransitRoute).",
"in": "query",
"required": true,
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
{
"name": "detailType",
@@ -362,14 +364,16 @@
"description": "Maximum number of responses that will be returned. Default is 3, minimum 1 and maximum 100. Sort order is based on distance from input location.",
"in": "query",
"required": false,
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
{
"name": "radius",
"description": "Specifies the search area to constrain a search. The radius in meters to for the results to be constrained to the defined area. Default value is 30 meters, minimum 1 meter and maximum 5000 meters (5km).",
"in": "query",
"required": false,
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
{
"name": "objectType",
@@ -649,7 +653,7 @@
"get": {
"x-publish": true,
"operationId": "Mobility_GetTransitRoutePreview",
- "description": "**Transit Route API**\n\n**Applies to**: S1 pricing tier.\n\nGet Transit Route API will allow trip planning returning the best possible route options between an origin and destination by using multi-modal search. Service provides a variety of travel modes, including walk, bike, and public transit. The API supports parameters to request one or multiple public transit types such as bus, tram and subway, and prefer a specific transit agency operating in the area. Also, service provides options to choose optimal route with least walk or transfers and specify arrival or departure times when user need to be at a specific destination by a certain time.",
+ "description": "**Transit Route API**\n\n**Applies to**: S1 pricing tier.\n\nGet Transit Route API will allow trip planning returning the best possible route options between an origin and destination by using multi-modal search. Service provides a variety of travel modes, including walk, bike, and public transit. The API supports parameters to request one or multiple public transit types such as bus, tram and subway, and prefer a specific transit agency operating in the area. Also, service provides transit fare details and options to choose optimal route with least walk or transfers and specify arrival or departure times when user need to be at a specific destination by a certain time.",
"x-ms-examples": {
"TransitRoute": {
"$ref": "./examples/GetTransitRoute.json"
@@ -994,7 +998,7 @@
"get": {
"x-publish": true,
"operationId": "Mobility_GetTransitItineraryPreview",
- "description": "**Transit Itinerary API**\n\n**Applies to**: S1 pricing tier.\n\nReturns data according to an itinerary Id previously returned by [Transit Route API](https://aka.ms/AzureMapsMobilityTransitRoute). The basic info contains data as to the various legs comprising the itinerary, including the locations, public transit lines, start and end times. User can request additional routing information such as the shape of the itinerary and detailed itinerary schedules is also available, depending on the options selected. An itinerary is available up to 24 hours following a search request.",
+ "description": "**Transit Itinerary API**\n\n**Applies to**: S1 pricing tier.\n\nReturns data according to an itinerary Id previously returned by [Transit Route API](https://aka.ms/AzureMapsMobilityTransitRoute). The basic info contains data as to the various legs comprising the itinerary, including the locations, public transit lines, start and end times and fare information. Users can request additional routing information such as the shape of the itinerary and detailed itinerary schedules is also available, depending on the options selected. An itinerary is available up to 24 hours following a search request.",
"x-ms-examples": {
"TransitItinerary": {
"$ref": "./examples/GetTransitItinerary.json"
@@ -1180,13 +1184,15 @@
"description": "The maximum arrivals to return. If not specified, the system default will be used. For stops max number of arrivals per stop. For lines max arrivals per stop on the line. For everything else max arrivals overall.",
"in": "query",
"required": false,
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
{
"name": "maxMinutesInFuture",
"description": "The maximum time (in minutes) in the future to return arrivals for. If not specified, the system default (30 minutes) will be used. The minimum value is 0 and maximum value is 60 minutes.",
"required": false,
"type": "integer",
+ "format": "int32",
"in": "query"
},
{
@@ -1295,7 +1301,8 @@
"description": "Time in seconds within which if the provider doesn’t respond, end point will return static data.",
"in": "query",
"required": false,
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
{
"$ref": "#/parameters/MobilityLanguage"
@@ -1521,14 +1528,19 @@
}
},
"MetroAreaInfoResponse": {
- "description": "This object is returned from a successful Metro Area call.",
+ "description": "This object is returned from a successful Metro Area Info call.",
"type": "object",
"properties": {
"metroName": {
"type": "string",
"description": "The name of the metro area."
},
+ "isFaresSupported": {
+ "type": "string",
+ "description": "Indicates if public transit fares information is available in the metro area. Fare information is available through [Get Transit Route API](https://aka.ms/AzureMapsMobilityTransitRoute) and [Get Transit Itinerary APIs](https://aka.ms/AzureMapsMobilityTransitItinerary)."
+ },
"transitTypes": {
+ "description": "Supported transit types in the metro area. Returned if specified in the request.",
"type": "array",
"items": {
"$ref": "#/definitions/TransitTypeResult"
@@ -1604,6 +1616,10 @@
},
"legs": {
"$ref": "#/definitions/ItinerarySummary"
+ },
+ "itineraryFare": {
+ "description": "Itinerary level transit fare information. Returned only if fare information is available for the entire itinerary. [Get Metro Area Info API](https://aka.ms/AzureMapsMobilityMetroAreaInfo) can be requested to confirm if fare information is available in the metro area.",
+ "$ref": "#/definitions/ItineraryFare"
}
}
},
@@ -1658,7 +1674,8 @@
"properties": {
"metroId": {
"description": "The metro area's Id for use with other API calls.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"metroName": {
"description": "The main display name of the metro.",
@@ -1852,7 +1869,7 @@
}
},
"Alert": {
- "description": "Basic information associated with the active alert.",
+ "description": "Basic information associated with the active alert. Returned if specified in the request and there is an active alert in the metro area.",
"type": "object",
"properties": {
"alertSummary": {
@@ -1932,15 +1949,21 @@
},
"travelTimeInSeconds": {
"description": "Estimated travel time in seconds.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"numberOfLegs": {
"description": "Number of legs.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"legs": {
"description": "An array summarizing the legs of this itinerary.",
"$ref": "#/definitions/RouteItinerarySummary"
+ },
+ "itineraryFare": {
+ "description": "Itinerary level transit fare information. Returned only if fare information is available for the entire itinerary. [Get Metro Area Info API](https://aka.ms/AzureMapsMobilityMetroAreaInfo) can be requested to confirm if fare information is available in the metro area.",
+ "$ref": "#/definitions/ItineraryFare"
}
}
},
@@ -1957,6 +1980,10 @@
"description": "The travel mode of the leg.",
"$ref": "#/definitions/LegType"
},
+ "legFare": {
+ "description": "Leg level public transit fare information. Returned only if fare information is available for the entire itinerary.",
+ "$ref": "#/definitions/LegFare"
+ },
"legStartTime": {
"description": "Start time for the leg in ISO 8601 format, e.g. 1996-12-19T19:39:57-08:00.",
"type": "string"
@@ -1971,7 +1998,8 @@
},
"lengthInMeters": {
"description": "The total distance of the leg in meters.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
}
}
},
@@ -2031,6 +2059,10 @@
"description": "Relevant for Public Transit and Wait legs only",
"$ref": "#/definitions/Departures"
},
+ "legFare": {
+ "description": "Leg level public transit fare information. Returned only if fare information is available for the entire itinerary.",
+ "$ref": "#/definitions/LegFare"
+ },
"waitOnVehicle": {
"description": "Indicates whether it’s necessary to wait for the next leg on the same vehicle (i.e. the bus will only change its line number).",
"type": "string"
@@ -2113,6 +2145,78 @@
]
}
},
+ "ItineraryFare": {
+ "description": "Itinerary level transit fare information.",
+ "type": "object",
+ "properties": {
+ "price": {
+ "description": "The total price for all tickets a user is expected to purchase in order to complete this itinerary.",
+ "$ref": "#/definitions/Price"
+ },
+ "tickets": {
+ "description": "An array describing the individual prices of each of the tickets that the user is expected to purchase throughout this itinerary. The list isn’t ordered.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Tickets"
+ }
+ }
+ }
+ },
+ "Tickets": {
+ "description": "An array describing the individual prices of each of the tickets that the user is expected to purchase throughout this itinerary. The list isn’t ordered.",
+ "type": "object",
+ "properties": {
+ "amount": {
+ "description": "Price of the ticket in cents. For example, $5.00 is returned as ‘500’.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "currencyCode": {
+ "description": "Currency code, for example for US dollars “USD”.",
+ "type": "string"
+ }
+ }
+ },
+ "LegFare": {
+ "description": "Leg level public transit fare information. Returned only if fare information is available for the entire itinerary level and supported by the local transit agency.",
+ "type": "object",
+ "properties": {
+ "fares": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Fares"
+ }
+ }
+ }
+ },
+ "Fares": {
+ "description": "Detailed fare information for the leg.",
+ "type": "object",
+ "properties": {
+ "price": {
+ "description": "The price of the ticket when purchased for the individual leg, not for the entire route at once.",
+ "$ref": "#/definitions/Price"
+ },
+ "usage": {
+ "description": "Supported values are:\n\n * pay – user is expected to pay for this ticket in order to consume the current leg\n * transfer – user can use a ticket purchased in a previous leg in order to consume the current leg. In general, when transfer is specified, the number of transfers is counted, and has a limit.\n * continue – user can use a ticket purchased in a previous leg in order to consume the current leg. In general, when continue is specified, the number of transfers isn’t incremented for this leg.\n * upgrade – user is expected to upgrade a ticket purchased in a previous leg in order to consume the current leg.",
+ "type": "string"
+ }
+ }
+ },
+ "Price": {
+ "type": "object",
+ "properties": {
+ "amount": {
+ "description": "Price of the ticket in cents. For example, $5.00 is returned as ‘500’.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "currencyCode": {
+ "description": "Currency code, for example for US dollars “USD”.",
+ "type": "string"
+ }
+ }
+ },
"LegPoint": {
"type": "object",
"properties": {
@@ -2332,7 +2436,7 @@
"type": "object",
"properties": {
"transitType": {
- "description": "Supported public transit type.",
+ "description": "Supported public transit type. Returned if specified in the request.",
"$ref": "#/definitions/TransitType"
},
"captionOverride": {
@@ -2343,7 +2447,7 @@
},
"Agency": {
"type": "object",
- "description": "Details of the agency.",
+ "description": "Details of the agency. Returned if specified in the request.",
"properties": {
"agencyId": {
"description": "The Id of the relevant transit agency, for example, '5872'",
@@ -2437,7 +2541,8 @@
"properties": {
"arrivalMinutes": {
"description": "The estimated time of arrival in minutes.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"scheduleType": {
"description": "Whether the result is based on real-time or static data.",
diff --git a/specification/maps/data-plane/Microsoft.Maps/Render/preview/1.0/render.json b/specification/maps/data-plane/Microsoft.Maps/Render/preview/1.0/render.json
index 91719c1102f1..3b9a123fb0a5 100644
--- a/specification/maps/data-plane/Microsoft.Maps/Render/preview/1.0/render.json
+++ b/specification/maps/data-plane/Microsoft.Maps/Render/preview/1.0/render.json
@@ -165,6 +165,7 @@
"description": "X coordinate of the tile on zoom grid. Value must be in the range [0, 2`zoom` -1].\n\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.",
"required": true,
"type": "integer",
+ "format": "int32",
"x-ms-parameter-location": "method"
},
"yTileIndex": {
@@ -174,6 +175,7 @@
"description": "Y coordinate of the tile on zoom grid. Value must be in the range [0, 2`zoom` -1].\n\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.",
"required": true,
"type": "integer",
+ "format": "int32",
"x-ms-parameter-location": "method"
},
"TextFormat": {
@@ -208,6 +210,7 @@
"description": "Zoom level for the desired tile. Zoom value must be in the range: 0-18 (inclusive).\n\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.",
"required": true,
"type": "integer",
+ "format": "int32",
"x-ms-parameter-location": "method"
},
"VectorZoom": {
@@ -216,6 +219,7 @@
"description": "Zoom level for the desired tile. Zoom value must be in the range: 0-20 (inclusive).\n\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.",
"required": true,
"type": "integer",
+ "format": "int32",
"x-ms-parameter-location": "method"
},
"ImageryRasterZoom": {
@@ -224,6 +228,7 @@
"description": "Zoom level for the desired tile. Zoom value must be in the range: 1-19 (inclusive).\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.",
"required": true,
"type": "integer",
+ "format": "int32",
"x-ms-parameter-location": "method"
},
"RasterVectorNaturalEarthZoom": {
@@ -232,6 +237,7 @@
"description": "Zoom level for the desired tile. For _raster_ tiles, value must be in the range: 0-18 (inclusive). Terra raster tiles, values must be in the range 0-6 (inclusive). For _vector_ tiles, value must be in the range: 0-22 (inclusive).\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.",
"required": true,
"type": "integer",
+ "format": "int32",
"x-ms-parameter-location": "method"
},
"Text": {
@@ -344,6 +350,7 @@
"required": false,
"default": 12,
"type": "integer",
+ "format": "int32",
"minimum": 0,
"maximum": 20
},
@@ -367,6 +374,7 @@
"description": "Height of the resulting image in pixels. Range is 1 to 8192. Default\nis 512. It shouldn’t be used with bbox.",
"required": false,
"type": "integer",
+ "format": "int32",
"minimum": 1,
"maximum": 8192,
"default": 512
@@ -377,6 +385,7 @@
"description": "Width of the resulting image in pixels. Range is 1 to 8192. Default is 512. It shouldn’t be used with bbox.",
"required": false,
"type": "integer",
+ "format": "int32",
"minimum": 1,
"maximum": 8192,
"default": 512
diff --git a/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.0/examples/GetMapTileV2.json b/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.0/examples/GetMapTileV2.json
new file mode 100644
index 000000000000..a7f739006589
--- /dev/null
+++ b/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.0/examples/GetMapTileV2.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "api-version": "2.0",
+ "tilesetId": "microsoft.base",
+ "zoom": 6,
+ "x": 10,
+ "y": 22,
+ "subscription-key": "[subscription-key]"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": "binary string image"
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "400 BadRequest",
+ "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive."
+ }
+ }
+ },
+ "401": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "401 Unauthorized",
+ "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
+ }
+ }
+ },
+ "403": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "403 Forbidden",
+ "message": "Permission, capacity, or authentication issues."
+ }
+ }
+ },
+ "404": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "404 NotFound",
+ "message": "Not Found: the requested resource could not be found, but it may be available again in the future."
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "500 InternalServerError",
+ "message": "An error occurred while processing the request. Please try again later."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.0/render.json b/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.0/render.json
new file mode 100644
index 000000000000..3c5065885532
--- /dev/null
+++ b/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.0/render.json
@@ -0,0 +1,382 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Maps Render Service",
+ "version": "2.0",
+ "description": "Azure Maps Render REST APIs"
+ },
+ "host": "atlas.microsoft.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "application/xml"
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/azure/role-based-access-control/overview) control it can be used to control access to Azure Maps REST APIs. Azure Role based access controls are used to designate access to one or more Azure Maps resource account or sub-resources. Any user, group, or service principal can be granted access via a built in role or a custom role composed of one or more permissions to Azure Maps REST APIs.\n\nTo implement scenarios we recommend viewing [authentication concepts](https://aka.ms/amauth). In summary, this security definition provides a solution for modeling application(s) via objects capable of access control on specific APIs and scopes.\n\n#### Note\n* This security definition **requires** the use of the `x-ms-client-id` header to indicate which Azure Maps resource the application is requesting access to. This can be acquired from the [Maps management API](https://aka.ms/amauthdetails).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* The Azure role based access control is configured from the [Azure management plane](https://aka.ms/amrbac) via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.",
+ "scopes": {
+ "user_impersonation": "Impersonates a user's Azure Active Directory account."
+ }
+ },
+ "apiKeyQuery": {
+ "type": "apiKey",
+ "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.",
+ "name": "subscription-key",
+ "in": "query"
+ }
+ },
+ "security": [
+ {
+ "azure_auth": []
+ },
+ {
+ "apiKeyQuery": []
+ }
+ ],
+ "responses": {
+ "400": {
+ "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.",
+ "schema": {
+ "$ref": "#/definitions/ODataErrorResponse"
+ }
+ },
+ "401": {
+ "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.",
+ "schema": {
+ "$ref": "#/definitions/ODataErrorResponse"
+ },
+ "headers": {
+ "WWW-Authenticate": {
+ "type": "string",
+ "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\""
+ }
+ }
+ },
+ "403": {
+ "description": "Permission, capacity, or authentication issues.",
+ "schema": {
+ "$ref": "#/definitions/ODataErrorResponse"
+ }
+ },
+ "404": {
+ "description": "Not Found: the requested resource could not be found, but it may be available again in the future.",
+ "schema": {
+ "$ref": "#/definitions/ODataErrorResponse"
+ }
+ },
+ "500": {
+ "description": "An error occurred while processing the request. Please try again later.",
+ "schema": {
+ "$ref": "#/definitions/ODataErrorResponse"
+ }
+ }
+ },
+ "parameters": {
+ "ClientId": {
+ "name": "x-ms-client-id",
+ "description": "Specifies which account is intended for usage in conjunction with the Azure AD security model. It represents a unique ID for the Azure Maps account and can be retrieved from Azure Maps management plane Account API. To use Azure AD security in Azure Maps see the following [articles](https://aka.ms/amauthdetails) for guidance.",
+ "type": "string",
+ "in": "header",
+ "required": false,
+ "x-ms-parameter-location": "client"
+ },
+ "SubscriptionKey": {
+ "name": "subscription-key",
+ "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "client"
+ },
+ "ApiVersion": {
+ "name": "api-version",
+ "description": "Version number of Azure Maps API. Current version is 2.0",
+ "type": "string",
+ "in": "query",
+ "required": true,
+ "default": "2.0",
+ "x-ms-parameter-location": "client"
+ },
+ "TilesetId_rv2": {
+ "name": "tilesetId",
+ "description": "A tileset is a collection of raster or vector data broken up into a uniform grid of square tiles at preset zoom levels. Every tileset has a **tilesetId** to use when making requests. The **tilesetId** for tilesets created using [Azure Maps Creator](https://aka.ms/amcreator) are generated through the [Tileset Create API](https://docs.microsoft.com/en-us/rest/api/maps/tileset). The ready-to-use tilesets supplied by Azure Maps are listed below. For example, microsoft.base.",
+ "type": "string",
+ "in": "query",
+ "required": true,
+ "enum": [
+ "microsoft.base",
+ "microsoft.base.labels",
+ "microsoft.base.hybrid",
+ "microsoft.terra.main",
+ "microsoft.base.road",
+ "microsoft.base.darkgrey",
+ "microsoft.base.labels.road",
+ "microsoft.base.hybrid.road",
+ "microsoft.imagery",
+ "microsoft.weather.radar.main",
+ "microsoft.weather.infrared.main"
+ ],
+ "x-ms-enum": {
+ "name": "TilesetID",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "microsoft.base",
+ "description": "A base map is a standard map that displays roads, natural and artificial features along with the labels for those features in a vector tile. \n\nSupports zoom levels 0 through 22. Format: vector (pbf)."
+ },
+ {
+ "value": "microsoft.base.labels",
+ "description": "Displays labels for roads, natural and artificial features in a vector tile. \n\nSupports zoom levels 0 through 22. Format: vector (pbf)."
+ },
+ {
+ "value": "microsoft.base.hybrid",
+ "description": "Displays road, boundary and label data in a vector tile. \n\nSupports zoom levels 0 through 22. Format: vector (pbf)."
+ },
+ {
+ "value": "microsoft.terra.main",
+ "description": "Shaded relief and terra layers. \n\nSupports zoom levels 0 through 6. Format: raster (png)."
+ },
+ {
+ "value": "microsoft.base.road",
+ "description": "All layers with our main style. \n\nSupports zoom levels 0 through 18. Format: raster (png)."
+ },
+ {
+ "value": "microsoft.base.darkgrey",
+ "description": "All layers with our dark grey style. \n\nSupports zoom levels 0 through 18. Format: raster (png)."
+ },
+ {
+ "value": "microsoft.base.labels.road",
+ "description": "Label data in our main style. \n\nSupports zoom levels 0 through 18. Format: raster (png)."
+ },
+ {
+ "value": "microsoft.base.hybrid.road",
+ "description": "Road, boundary and label data in our main style. \n\nSupports zoom levels 0 through 18. Format: raster (png)."
+ },
+ {
+ "value": "microsoft.imagery",
+ "description": "A combination of satellite and aerial imagery. Only available in S1 pricing SKU. \n\nSupports zoom levels 1 through 19. Format: raster (jpeg)."
+ },
+ {
+ "value": "microsoft.weather.radar.main",
+ "description": "Weather radar tiles. Latest weather radar images including areas of rain, snow, ice and mixed conditions. Please see [coverage information](https://aka.ms/AzureMapsWeatherCoverage) for Azure Maps Weather service. To learn more about the Radar data, please see [Weather concepts](https://aka.ms/AzureMapsWeatherConcepts). \n\nSupports zoom levels 0 through 15. Format: raster (png)."
+ },
+ {
+ "value": "microsoft.weather.infrared.main",
+ "description": "Weather infrared tiles. Latest Infrared Satellite images shows clouds by their temperature. Please see [coverage information](https://aka.ms/AzureMapsWeatherCoverage) for Azure Maps Weather service. To learn more about the returned Satellite data, please see [Weather concepts](https://aka.ms/AzureMapsWeatherConcepts). \n\nSupports zoom levels 0 through 15. Format: raster (png)."
+ }
+ ]
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "xTileIndex": {
+ "name": "x",
+ "x-ms-client-name": "xTileIndex",
+ "in": "query",
+ "description": "X coordinate of the tile on zoom grid. Value must be in the range [0, 2`zoom` -1].\n\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.",
+ "required": true,
+ "type": "integer",
+ "format": "int32",
+ "x-ms-parameter-location": "method"
+ },
+ "yTileIndex": {
+ "name": "y",
+ "x-ms-client-name": "yTileIndex",
+ "in": "query",
+ "description": "Y coordinate of the tile on zoom grid. Value must be in the range [0, 2`zoom` -1].\n\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.",
+ "required": true,
+ "type": "integer",
+ "format": "int32",
+ "x-ms-parameter-location": "method"
+ },
+ "MapTileV2Zoom": {
+ "name": "zoom",
+ "in": "query",
+ "description": "Zoom level for the desired tile. Please find TilesetID list below for more details on supported zoom level for each tilesetId. \n\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.",
+ "required": true,
+ "type": "integer",
+ "format": "int32",
+ "x-ms-parameter-location": "method"
+ },
+ "Language": {
+ "name": "language",
+ "in": "query",
+ "description": "Language in which search results should be returned. Should be one of supported IETF language tags, case insensitive. When data in specified language is not available for a specific field, default language is used.\n\nPlease refer to [Supported Languages](https://docs.microsoft.com/en-us/azure/azure-maps/supported-languages) for details.",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "Text": {
+ "name": "text",
+ "in": "query",
+ "description": "Yes/no value to exclude textual data from response. Only images and country names will be in response.",
+ "required": false,
+ "type": "string",
+ "enum": [
+ "yes",
+ "no"
+ ],
+ "default": "yes",
+ "x-ms-parameter-location": "method"
+ },
+ "View": {
+ "name": "view",
+ "in": "query",
+ "description": "The View parameter specifies which set of geopolitically disputed content is returned via Azure Maps services, including borders and labels displayed on the map. The View parameter (also referred to as “user region parameter”) will show the correct maps for that country/region. By default, the View parameter is set to “Unified” even if you haven’t defined it in the request. It is your responsibility to determine the location of your users, and then set the View parameter correctly for that location. Alternatively, you have the option to set ‘View=Auto’, which will return the map data based on the IP address of the request. The View parameter in Azure Maps must be used in compliance with applicable laws, including those regarding mapping, of the country where maps, images and other data and third party content that you are authorized to access via Azure Maps is made available. Example: view=IN.\n\nPlease refer to [Supported Views](https://aka.ms/AzureMapsLocalizationViews) for details and to see the available Views.",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "paths": {
+ "/map/tile": {
+ "get": {
+ "x-publish": true,
+ "description": "**Applies to**: S0 and S1 pricing tiers.\n\nThe Get Map Tiles API allows users to request map tiles in vector or raster formats typically to be integrated into a map control or SDK. Some example tiles that can be requested are Azure Maps road tiles, real-time Weather Radar tiles or the map tiles created using [Azure Maps Creator](https://aka.ms/amcreator). By default, Azure Maps uses vector tiles for its web map control (Web SDK) and Android SDK.",
+ "operationId": "RenderV2_GetMapTilePreview",
+ "x-ms-examples": {
+ "GetMapTile": {
+ "$ref": "./examples/GetMapTileV2.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ClientId"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionKey"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/TilesetId_rv2"
+ },
+ {
+ "$ref": "#/parameters/MapTileV2Zoom"
+ },
+ {
+ "$ref": "#/parameters/xTileIndex"
+ },
+ {
+ "$ref": "#/parameters/yTileIndex"
+ },
+ {
+ "name": "timeStamp",
+ "in": "query",
+ "description": "The desired date and time of the requested tile. This parameter must be specified in the standard date-time format (e.g. 2019-11-14T16:03:00-08:00), as defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). This parameter is only supported when tilesetId parameter is set to one of the values below.\n \n* microsoft.weather.infrared.main: We provide tiles up to 3 hours in the past. Tiles are available in 10-minute intervals. We round the timeStamp value to the nearest 10-minute time frame.\n* microsoft.weather.radar.main: We provide tiles up to 1.5 hours in the past and up to 2 hours in the future. Tiles are available in 5-minute intervals. We round the timeStamp value to the nearest 5-minute time frame.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "tileSize",
+ "in": "query",
+ "description": "The size of the returned map tile in pixels.",
+ "required": false,
+ "type": "string",
+ "default": "256",
+ "enum": [
+ "256",
+ "512"
+ ],
+ "x-ms-enum": {
+ "name": "TileSize",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "256",
+ "description": "Return a 256 by 256 pixel tile. Available for all tilesetIds except for\n* microsoft.terra.main"
+ },
+ {
+ "value": "512",
+ "description": "Return a 512 by 512 pixel tile. Available for all tilesetIds except for \n* microsoft.weather.radar.main\n* microsoft.weather.infrared.main\n* microsoft.base.hybrid"
+ }
+ ]
+ }
+ },
+ {
+ "$ref": "#/parameters/Language"
+ },
+ {
+ "$ref": "#/parameters/View"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MapTileResultv2"
+ }
+ },
+ "400": {
+ "$ref": "#/responses/400"
+ },
+ "401": {
+ "$ref": "#/responses/401"
+ },
+ "403": {
+ "$ref": "#/responses/403"
+ },
+ "404": {
+ "$ref": "#/responses/404"
+ },
+ "500": {
+ "$ref": "#/responses/500"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ODataErrorResponse": {
+ "type": "object",
+ "description": "This response object is returned when an error occurs in the Maps API.",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/ODataError"
+ }
+ }
+ },
+ "ODataError": {
+ "type": "object",
+ "description": "This object is returned when an error occurs in the Maps API.",
+ "properties": {
+ "code": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The ODataError code."
+ },
+ "message": {
+ "type": "string",
+ "readOnly": true,
+ "description": "If available, a human readable description of the error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ODataError"
+ }
+ },
+ "target": {
+ "type": "string",
+ "readOnly": true,
+ "description": "If available, the target causing the error."
+ }
+ }
+ },
+ "MapTileResultv2": {
+ "description": "The tile returned from a successful API call.",
+ "type": "string",
+ "format": "binary",
+ "readOnly": true
+ }
+ }
+}
diff --git a/specification/maps/data-plane/Microsoft.Maps/Traffic/preview/1.0/traffic.json b/specification/maps/data-plane/Microsoft.Maps/Traffic/preview/1.0/traffic.json
index 5bf252cbddc8..ad56b8206ba0 100644
--- a/specification/maps/data-plane/Microsoft.Maps/Traffic/preview/1.0/traffic.json
+++ b/specification/maps/data-plane/Microsoft.Maps/Traffic/preview/1.0/traffic.json
@@ -212,6 +212,7 @@
"description": "Zoom level for the desired tile. Zoom value must be in the range: 0-22 (inclusive).\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.",
"required": true,
"type": "integer",
+ "format": "int32",
"x-ms-parameter-location": "method"
},
"RasterVectorZoom": {
@@ -220,6 +221,7 @@
"description": "Zoom level for the desired tile. For _raster_ tiles, value must be in the range: 0-22 (inclusive). For _vector_ tiles, value must be in the range: 0-22 (inclusive).\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.",
"required": true,
"type": "integer",
+ "format": "int32",
"x-ms-parameter-location": "method"
},
"xTileIndex": {
@@ -229,6 +231,7 @@
"description": "X coordinate of the tile on zoom grid. Value must be in the range [0, 2`zoom` -1].\n\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.",
"required": true,
"type": "integer",
+ "format": "int32",
"x-ms-parameter-location": "method"
},
"yTileIndex": {
@@ -238,6 +241,7 @@
"description": "Y coordinate of the tile on zoom grid. Value must be in the range [0, 2`zoom` -1].\n\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.",
"required": true,
"type": "integer",
+ "format": "int32",
"x-ms-parameter-location": "method"
}
},
@@ -315,6 +319,7 @@
"description": "The value of the width of the line representing traffic. This value is a multiplier and the accepted values range from 1 - 20. The default value is 10. This parameter is not valid when format is pbf.",
"required": false,
"type": "integer",
+ "format": "int32",
"minimum": 1,
"maximum": 20,
"default": 10
@@ -429,6 +434,7 @@
"description": "The value of the width of the line representing traffic. This value is a multiplier and the accepted values range from 1 - 20. The default value is 10.",
"required": false,
"type": "integer",
+ "format": "int32",
"default": 10,
"minimum": 1,
"maximum": 20
@@ -643,6 +649,7 @@
"description": "Zoom level for desired tile. 0 to 22 for raster tiles, 0 through 22 for vector tiles",
"required": true,
"type": "integer",
+ "format": "int32",
"minimum": 0,
"maximum": 22
},
@@ -774,6 +781,7 @@
"description": "Zoom level of the map viewport. Used to determine whether the view can be zoomed in.",
"required": true,
"type": "integer",
+ "format": "int32",
"minimum": 0,
"maximum": 22
},
@@ -790,6 +798,7 @@
"description": "Zoom level of the overview map. If there is no mini map, use the same zoom level as boundingZoom.",
"required": true,
"type": "integer",
+ "format": "int32",
"minimum": 0,
"maximum": 22
},
@@ -906,21 +915,25 @@
"currentSpeed": {
"description": "The current average speed at the selected point, in the units requested. This is calculated from the currentTravelTime and the length of the selected segment.",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"freeFlowSpeed": {
"description": "The free flow speed expected under ideal conditions, expressed in the units requested. This is related to the freeFlowTravelTime.",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"currentTravelTime": {
"description": "Current travel time in seconds based on fused real-time measurements between the defined locations in the specified direction.",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"freeFlowTravelTime": {
"description": "The travel time in seconds which would be expected under ideal free flow conditions.",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"confidence": {
@@ -1022,11 +1035,13 @@
"ic": {
"description": "The icon category associated with this incident. Values are numbers in the range 0-13, with the following meanings -- 0: Unknown, 1: Accident, 2: Fog, 3: Dangerous Conditions, 4: Rain, 5: Ice, 6: Jam, 7: Lane Closed, 8: Road Closed, 9: Road Works, 10: Wind, 11: Flooding, 12: Detour, 13: Cluster",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"ty": {
"description": "The magnitude of delay associated with incident. These values correspond to incident colors in the traffic tiles",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"cbl": {
@@ -1066,11 +1081,13 @@
"cs": {
"description": "Cluster size: the number of incidents in the cluster",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"l": {
"description": "Length of the incident in meters",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"r": {
@@ -1081,6 +1098,7 @@
"dl": {
"description": "Delay caused by the incident in seconds (except in road closures)",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"t": {
@@ -1122,6 +1140,7 @@
"@trafficAge": {
"description": "@Traffic Age property",
"type": "integer",
+ "format": "int32",
"readOnly": true
},
"@trafficModelId": {
diff --git a/specification/maps/data-plane/readme.md b/specification/maps/data-plane/readme.md
index b31946f65218..aba744cd6897 100644
--- a/specification/maps/data-plane/readme.md
+++ b/specification/maps/data-plane/readme.md
@@ -52,6 +52,7 @@ input-file:
- Microsoft.Maps/Geolocation/preview/1.0/geolocation.json
- Microsoft.Maps/Mobility/preview/1.0/mobility.json
- Microsoft.Maps/Render/preview/1.0/render.json
+ - Microsoft.Maps/Render/preview/2.0/render.json
- Microsoft.Maps/Route/preview/1.0/route.json
- Microsoft.Maps/Search/preview/1.0/search.json
- Microsoft.Maps/Spatial/preview/1.0/spatial.json
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/mediaservices/resource-manager/readme.go.md b/specification/mediaservices/resource-manager/readme.go.md
index 9254d7a9d81d..67b27da0d748 100644
--- a/specification/mediaservices/resource-manager/readme.go.md
+++ b/specification/mediaservices/resource-manager/readme.go.md
@@ -13,6 +13,7 @@ go:
```yaml $(go) && $(multiapi)
batch:
+ - tag: package-2020-05
- tag: package-2015-10
- tag: package-2018-03-preview
- tag: package-2018-06-preview
@@ -20,6 +21,15 @@ batch:
- tag: package-2019-05-preview
```
+### Tag: package-2020-05 and go
+
+These settings apply only when `--tag=package-2020-05 --go` is specified on the command line.
+Please also specify the `--go-sdk-folder=`.
+
+```yaml $(tag) == 'package-2020-05' && $(go)
+output-folder: $(go-sdk-folder)/services/mediaservices/mgmt/2020-05-01/$(namespace)
+```
+
### Tag: package-2015-10 and go
These settings apply only when `--tag=package-2015-10 --go` is specified on the command line.
diff --git a/specification/mediaservices/resource-manager/readme.java.md b/specification/mediaservices/resource-manager/readme.java.md
new file mode 100644
index 000000000000..15bf2760628a
--- /dev/null
+++ b/specification/mediaservices/resource-manager/readme.java.md
@@ -0,0 +1,103 @@
+## 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.mediaservices
+license-header: MICROSOFT_MIT_NO_CODEGEN
+payload-flattening-threshold: 1
+output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-mediaservices
+```
+
+### Java multi-api
+
+``` yaml $(java) && $(multiapi)
+batch:
+ - tag: package-2015-10
+ - tag: package-2018-03-preview
+ - tag: package-2018-06-preview
+ - tag: package-2018-07
+ - tag: package-2019-05-preview
+ - tag: package-2020-05
+```
+
+### Tag: package-2015-10 and java
+
+These settings apply only when `--tag=package-2015-10 --java` is specified on the command line.
+Please also specify the `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2015-10' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.mediaservices.v2015_10_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/mediaservices/mgmt-v2015_10_01
+regenerate-manager: true
+generate-interface: true
+```
+
+### Tag: package-2018-03-preview and java
+
+These settings apply only when `--tag=package-2018-03-preview --java` is specified on the command line.
+Please also specify the `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2018-03-preview' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.mediaservices.v2018_03_30_preview
+ output-folder: $(azure-libraries-for-java-folder)/sdk/mediaservices/mgmt-v2018_03_30_preview
+regenerate-manager: true
+generate-interface: true
+```
+
+### Tag: package-2018-06-preview and java
+
+These settings apply only when `--tag=package-2018-06-preview --java` is specified on the command line.
+Please also specify the `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2018-06-preview' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.mediaservices.v2018_06_01_preview
+ output-folder: $(azure-libraries-for-java-folder)/sdk/mediaservices/mgmt-v2018_06_01_preview
+regenerate-manager: true
+generate-interface: true
+```
+
+### Tag: package-2018-07 and java
+
+These settings apply only when `--tag=package-2018-07 --java` is specified on the command line.
+Please also specify the `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2018-07' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.mediaservices.v2018_07_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/mediaservices/mgmt-v2018_07_01
+regenerate-manager: true
+generate-interface: true
+```
+
+### Tag: package-2019-05-preview and java
+
+These settings apply only when `--tag=package-2019-05-preview --java` is specified on the command line.
+Please also specify the `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2019-05-preview' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.mediaservices.v2019_05_01_preview
+ output-folder: $(azure-libraries-for-java-folder)/sdk/mediaservices/mgmt-v2019_05_01_preview
+regenerate-manager: true
+generate-interface: true
+```
+
+### 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 the `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2020-05' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.mediaservices.v2020_05_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/mediaservices/mgmt-v2020_05_01
+regenerate-manager: true
+generate-interface: true
+```
\ No newline at end of file
diff --git a/specification/mediaservices/resource-manager/readme.md b/specification/mediaservices/resource-manager/readme.md
index 034130b45ce3..39d5cbbc62dc 100644
--- a/specification/mediaservices/resource-manager/readme.md
+++ b/specification/mediaservices/resource-manager/readme.md
@@ -227,93 +227,7 @@ 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=`.
-
-``` yaml $(java)
-azure-arm: true
-fluent: true
-namespace: com.microsoft.azure.management.mediaservices
-license-header: MICROSOFT_MIT_NO_CODEGEN
-payload-flattening-threshold: 1
-output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-mediaservices
-```
-
-### Java multi-api
-
-``` yaml $(java) && $(multiapi)
-batch:
- - tag: package-2015-10
- - tag: package-2018-03-preview
- - tag: package-2018-06-preview
- - tag: package-2018-07
- - tag: package-2019-05-preview
-```
-
-### Tag: package-2015-10 and java
-
-These settings apply only when `--tag=package-2015-10 --java` is specified on the command line.
-Please also specify the `--azure-libraries-for-java-folder=`.
-
-``` yaml $(tag) == 'package-2015-10' && $(java) && $(multiapi)
-java:
- namespace: com.microsoft.azure.management.mediaservices.v2015_10_01
- output-folder: $(azure-libraries-for-java-folder)/sdk/mediaservices/mgmt-v2015_10_01
-regenerate-manager: true
-generate-interface: true
-```
-
-### Tag: package-2018-03-preview and java
-
-These settings apply only when `--tag=package-2018-03-preview --java` is specified on the command line.
-Please also specify the `--azure-libraries-for-java-folder=`.
-
-``` yaml $(tag) == 'package-2018-03-preview' && $(java) && $(multiapi)
-java:
- namespace: com.microsoft.azure.management.mediaservices.v2018_03_30_preview
- output-folder: $(azure-libraries-for-java-folder)/sdk/mediaservices/mgmt-v2018_03_30_preview
-regenerate-manager: true
-generate-interface: true
-```
-
-### Tag: package-2018-06-preview and java
-
-These settings apply only when `--tag=package-2018-06-preview --java` is specified on the command line.
-Please also specify the `--azure-libraries-for-java-folder=`.
-
-``` yaml $(tag) == 'package-2018-06-preview' && $(java) && $(multiapi)
-java:
- namespace: com.microsoft.azure.management.mediaservices.v2018_06_01_preview
- output-folder: $(azure-libraries-for-java-folder)/sdk/mediaservices/mgmt-v2018_06_01_preview
-regenerate-manager: true
-generate-interface: true
-```
-
-### Tag: package-2018-07 and java
-
-These settings apply only when `--tag=package-2018-07 --java` is specified on the command line.
-Please also specify the `--azure-libraries-for-java-folder=`.
-
-``` yaml $(tag) == 'package-2018-07' && $(java) && $(multiapi)
-java:
- namespace: com.microsoft.azure.management.mediaservices.v2018_07_01
- output-folder: $(azure-libraries-for-java-folder)/sdk/mediaservices/mgmt-v2018_07_01
-regenerate-manager: true
-generate-interface: true
-```
-
-### Tag: package-2019-05-preview and java
-
-These settings apply only when `--tag=package-2019-05-preview --java` is specified on the command line.
-Please also specify the `--azure-libraries-for-java-folder=`.
-
-``` yaml $(tag) == 'package-2019-05-preview' && $(java) && $(multiapi)
-java:
- namespace: com.microsoft.azure.management.mediaservices.v2019_05_01_preview
- output-folder: $(azure-libraries-for-java-folder)/sdk/mediaservices/mgmt-v2019_05_01_preview
-regenerate-manager: true
-generate-interface: true
-```
+See configuration in [readme.java.md](./readme.java.md)
## Suppression
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/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/CapabilitiesByLocationList.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/CapabilitiesByLocationList.json
new file mode 100644
index 000000000000..54179b014b28
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/CapabilitiesByLocationList.json
@@ -0,0 +1,197 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "locationName": "WestUS"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "zone": "none",
+ "supportedFlexibleServerEditions": [
+ {
+ "name": "Burstable",
+ "supportedStorageEditions": [
+ {
+ "name": "PremiumFileShare",
+ "minStorageSize": {
+ "name": "10240",
+ "storageSizeMB": 10240
+ },
+ "maxStorageSize": {
+ "name": "16777216",
+ "storageSizeMB": 16777216
+ },
+ "minBackupRetentionDays": 7,
+ "maxBackupRetentionDays": 35
+ }
+ ],
+ "supportedServerVersions": [
+ {
+ "name": "5.7",
+ "supportedVcores": [
+ {
+ "name": "Standard_B1s",
+ "vCores": 1,
+ "supportedIops": 320,
+ "supportedMemoryPerVcoreMB": 2048
+ },
+ {
+ "name": "Standard_B1ms",
+ "vCores": 1,
+ "supportedIops": 640,
+ "supportedMemoryPerVcoreMB": 2048
+ },
+ {
+ "name": "Standard_B2s",
+ "vCores": 2,
+ "supportedIops": 1280,
+ "supportedMemoryPerVcoreMB": 2048
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "GeneralPurpose",
+ "supportedStorageEditions": [
+ {
+ "name": "PremiumFileShare",
+ "minStorageSize": {
+ "name": "10240",
+ "storageSizeMB": 10240
+ },
+ "maxStorageSize": {
+ "name": "16777216",
+ "storageSizeMB": 16777216
+ },
+ "minBackupRetentionDays": 7,
+ "maxBackupRetentionDays": 35
+ }
+ ],
+ "supportedServerVersions": [
+ {
+ "name": "5.7",
+ "supportedVcores": [
+ {
+ "name": "Standard_D2ds_v4",
+ "vCores": 2,
+ "supportedIops": 3200,
+ "supportedMemoryPerVcoreMB": 4096
+ },
+ {
+ "name": "Standard_D4ds_v4",
+ "vCores": 4,
+ "supportedIops": 6400,
+ "supportedMemoryPerVcoreMB": 4096
+ },
+ {
+ "name": "Standard_D8ds_v4",
+ "vCores": 8,
+ "supportedIops": 12800,
+ "supportedMemoryPerVcoreMB": 4096
+ },
+ {
+ "name": "Standard_D16ds_v4",
+ "vCores": 16,
+ "supportedIops": 20000,
+ "supportedMemoryPerVcoreMB": 4096
+ },
+ {
+ "name": "Standard_D32ds_v4",
+ "vCores": 32,
+ "supportedIops": 20000,
+ "supportedMemoryPerVcoreMB": 4096
+ },
+ {
+ "name": "Standard_D48ds_v4",
+ "vCores": 48,
+ "supportedIops": 20000,
+ "supportedMemoryPerVcoreMB": 4096
+ },
+ {
+ "name": "Standard_D64ds_v4",
+ "vCores": 64,
+ "supportedIops": 20000,
+ "supportedMemoryPerVcoreMB": 4096
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "MemoryOptimized",
+ "supportedStorageEditions": [
+ {
+ "name": "PremiumFileShare",
+ "minStorageSize": {
+ "name": "10240",
+ "storageSizeMB": 10240
+ },
+ "maxStorageSize": {
+ "name": "16777216",
+ "storageSizeMB": 16777216
+ },
+ "minBackupRetentionDays": 7,
+ "maxBackupRetentionDays": 35
+ }
+ ],
+ "supportedServerVersions": [
+ {
+ "name": "5.7",
+ "supportedVcores": [
+ {
+ "name": "Standard_E2ds_v4",
+ "vCores": 2,
+ "supportedIops": 3200,
+ "supportedMemoryPerVcoreMB": 8192
+ },
+ {
+ "name": "Standard_E4ds_v4",
+ "vCores": 4,
+ "supportedIops": 6400,
+ "supportedMemoryPerVcoreMB": 8192
+ },
+ {
+ "name": "Standard_E8ds_v4",
+ "vCores": 8,
+ "supportedIops": 12800,
+ "supportedMemoryPerVcoreMB": 8192
+ },
+ {
+ "name": "Standard_E16ds_v4",
+ "vCores": 16,
+ "supportedIops": 20000,
+ "supportedMemoryPerVcoreMB": 8192
+ },
+ {
+ "name": "Standard_E32ds_v4",
+ "vCores": 32,
+ "supportedIops": 20000,
+ "supportedMemoryPerVcoreMB": 8192
+ },
+ {
+ "name": "Standard_E48ds_v4",
+ "vCores": 48,
+ "supportedIops": 20000,
+ "supportedMemoryPerVcoreMB": 8192
+ },
+ {
+ "name": "Standard_E64ds_v4",
+ "vCores": 64,
+ "supportedIops": 20000,
+ "supportedMemoryPerVcoreMB": 8192
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/CheckNameAvailability.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/CheckNameAvailability.json
new file mode 100644
index 000000000000..03f4890a7aec
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/CheckNameAvailability.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "nameAvailabilityRequest": {
+ "name": "name1",
+ "type": "Microsoft.DBforMySQL"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": true,
+ "message": "",
+ "reason": ""
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/CheckVirtualNetworkSubnetUsage.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/CheckVirtualNetworkSubnetUsage.json
new file mode 100644
index 000000000000..90177d94e351
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/CheckVirtualNetworkSubnetUsage.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "locationName": "WestUS",
+ "parameters": {
+ "virtualNetworkArmResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/testvnet"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "delegatedSubnetsUsage": [
+ {
+ "subnetName": "test-subnet-1",
+ "usage": 2
+ },
+ {
+ "subnetName": "test-subnet-2",
+ "usage": 3
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ConfigurationGet.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ConfigurationGet.json
new file mode 100644
index 000000000000..70a438703fd8
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ConfigurationGet.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "configurationName": "event_scheduler",
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "value": "ON",
+ "description": "Indicates the status of the Event Scheduler.",
+ "defaultValue": "OFF",
+ "dataType": "Enumeration",
+ "allowedValues": "ON,OFF,DISABLED",
+ "source": "user-override",
+ "isConfigPendingRestart": "False",
+ "isDynamicConfig": "True",
+ "isReadOnly": "False"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testserver/configurations/event_scheduler",
+ "name": "event_scheduler",
+ "type": "Microsoft.DBforMySQL/flexibleServers/configurations"
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ConfigurationUpdate.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ConfigurationUpdate.json
new file mode 100644
index 000000000000..4d8bdab664bc
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ConfigurationUpdate.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "serverName": "testserver",
+ "configurationName": "event_scheduler",
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "parameters": {
+ "properties": {
+ "value": "on",
+ "source": "user-override"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "value": "ON",
+ "description": "Indicates the status of the Event Scheduler.",
+ "defaultValue": "OFF",
+ "dataType": "Enumeration",
+ "allowedValues": "ON,OFF,DISABLED",
+ "source": "user-override",
+ "isConfigPendingRestart": "False",
+ "isDynamicConfig": "True"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/testserver/configurations/event_scheduler",
+ "name": "event_scheduler",
+ "type": "Microsoft.DBforMySQL/flexibleServers/configurations"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ConfigurationsListByServer.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ConfigurationsListByServer.json
new file mode 100644
index 000000000000..def3b30711ea
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ConfigurationsListByServer.json
@@ -0,0 +1,91 @@
+{
+ "parameters": {
+ "serverName": "mysqltestsvc1",
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "value": "OFF",
+ "description": "Indicates the status of the Event Scheduler.",
+ "defaultValue": "OFF",
+ "dataType": "Enumeration",
+ "allowedValues": "ON,OFF,DISABLED",
+ "source": "system-default",
+ "isConfigPendingRestart": "False",
+ "isDynamicConfig": "True"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestsvc1/configurations/event_scheduler",
+ "name": "event_scheduler",
+ "type": "Microsoft.DBforMySQL/flexibleServers/configurations"
+ },
+ {
+ "properties": {
+ "value": "4",
+ "description": "Number of digits by which to increase the scale of the result of division operations.",
+ "defaultValue": "4",
+ "dataType": "Integer",
+ "allowedValues": "0-30",
+ "source": "system-default",
+ "isConfigPendingRestart": "False",
+ "isDynamicConfig": "True"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestsvc1/configurations/div_precision_increment",
+ "name": "div_precision_increment",
+ "type": "Microsoft.DBforMySQL/flexibleServers/configurations"
+ },
+ {
+ "properties": {
+ "value": "1024",
+ "description": "Maximum allowed result length in bytes for the GROUP_CONCAT().",
+ "defaultValue": "1024",
+ "dataType": "Integer",
+ "allowedValues": "4-16777216",
+ "source": "system-default",
+ "isConfigPendingRestart": "False",
+ "isDynamicConfig": "True"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestsvc1/configurations/group_concat_max_len",
+ "name": "group_concat_max_len",
+ "type": "Microsoft.DBforMySQL/flexibleServers/configurations"
+ },
+ {
+ "properties": {
+ "value": "ON",
+ "description": "Whether innodb adaptive hash indexes are enabled or disabled.",
+ "defaultValue": "ON",
+ "dataType": "Enumeration",
+ "allowedValues": "ON,OFF",
+ "source": "system-default",
+ "isConfigPendingRestart": "False",
+ "isDynamicConfig": "True"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestsvc1/configurations/innodb_adaptive_hash_index",
+ "name": "innodb_adaptive_hash_index",
+ "type": "Microsoft.DBforMySQL/flexibleServers/configurations"
+ },
+ {
+ "properties": {
+ "value": "50",
+ "description": "The length of time in seconds an InnoDB transaction waits for a row lock before giving up.",
+ "defaultValue": "50",
+ "dataType": "Integer",
+ "allowedValues": "1-3600",
+ "source": "system-default",
+ "isConfigPendingRestart": "False",
+ "isDynamicConfig": "True"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestsvc1/configurations/innodb_lock_wait_timeout",
+ "name": "innodb_lock_wait_timeout",
+ "type": "Microsoft.DBforMySQL/flexibleServers/configurations"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/DatabaseCreate.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/DatabaseCreate.json
new file mode 100644
index 000000000000..bff8a976401a
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/DatabaseCreate.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "databaseName": "db1",
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "parameters": {
+ "properties": {
+ "charset": "utf8",
+ "collation": "utf8_general_ci"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testserver/databases/db1",
+ "name": "db1",
+ "type": "Microsoft.DBforMySQL/flexibleServers/databases",
+ "properties": {
+ "charset": "utf8",
+ "collation": "utf8_general_ci"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testserver/databases/db1",
+ "name": "db1",
+ "type": "Microsoft.DBforMySQL/flexibleServers/databases",
+ "properties": {
+ "charset": "utf8",
+ "collation": "utf8_general_ci"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/DatabaseDelete.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/DatabaseDelete.json
new file mode 100644
index 000000000000..404378d42fe4
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/DatabaseDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "databaseName": "db1",
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/DatabaseGet.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/DatabaseGet.json
new file mode 100644
index 000000000000..820cc9b63ff5
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/DatabaseGet.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "databaseName": "db1",
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testserver/databases/db1",
+ "name": "db1",
+ "type": "Microsoft.DBforMySQL/flexibleServers/databases",
+ "properties": {
+ "charset": "utf8",
+ "collation": "utf8_general_ci"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/DatabasesListByServer.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/DatabasesListByServer.json
new file mode 100644
index 000000000000..e0da00a6f878
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/DatabasesListByServer.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testserver/databases/db1",
+ "name": "db1",
+ "type": "Microsoft.DBforMySQL/flexibleServers/databases",
+ "properties": {
+ "charset": "utf8",
+ "collation": "utf8_general_ci"
+ }
+ },
+ {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testserver/databases/db2",
+ "name": "db2",
+ "type": "Microsoft.DBforMySQL/flexibleServers/databases",
+ "properties": {
+ "charset": "utf8",
+ "collation": "utf8_general_ci"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/FirewallRuleCreate.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/FirewallRuleCreate.json
new file mode 100644
index 000000000000..03b11cd864c4
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/FirewallRuleCreate.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "firewallRuleName": "rule1",
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "parameters": {
+ "properties": {
+ "startIpAddress": "0.0.0.0",
+ "endIpAddress": "255.255.255.255"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testserver/firewallRules/rule1",
+ "name": "rule1",
+ "type": "Microsoft.DBforMySQL/flexibleServers/firewallRules",
+ "properties": {
+ "startIpAddress": "0.0.0.0",
+ "endIpAddress": "255.255.255.255"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testserver/firewallRules/rule1",
+ "name": "rule1",
+ "type": "Microsoft.DBforMySQL/flexibleServers/firewallRules",
+ "properties": {
+ "startIpAddress": "0.0.0.0",
+ "endIpAddress": "255.255.255.255"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/FirewallRuleDelete.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/FirewallRuleDelete.json
new file mode 100644
index 000000000000..b181e98d1678
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/FirewallRuleDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "firewallRuleName": "rule1",
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/FirewallRuleGet.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/FirewallRuleGet.json
new file mode 100644
index 000000000000..a1858025a6ae
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/FirewallRuleGet.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "firewallRuleName": "rule1",
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testserver/firewallRules/rule1",
+ "name": "rule1",
+ "type": "Microsoft.DBforMySQL/flexibleServers/firewallRules",
+ "properties": {
+ "startIpAddress": "0.0.0.0",
+ "endIpAddress": "255.255.255.255"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/FirewallRulesListByServer.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/FirewallRulesListByServer.json
new file mode 100644
index 000000000000..0b39100d799f
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/FirewallRulesListByServer.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testserver/firewallRules/rule1",
+ "name": "rule1",
+ "type": "Microsoft.DBforMySQL/flexibleServers/firewallRules",
+ "properties": {
+ "startIpAddress": "0.0.0.0",
+ "endIpAddress": "255.255.255.255"
+ }
+ },
+ {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testserver/firewallRules/rule2",
+ "name": "rule2",
+ "type": "Microsoft.DBforMySQL/flexibleServers/firewallRules",
+ "properties": {
+ "startIpAddress": "1.0.0.0",
+ "endIpAddress": "255.0.0.0"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/OperationsList.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/OperationsList.json
new file mode 100644
index 000000000000..6add7867c492
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/OperationsList.json
@@ -0,0 +1,217 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.DBforMySQL/locations/performanceTiers/read",
+ "display": {
+ "provider": "Microsoft DB for MySQL",
+ "resource": "Performance Tiers",
+ "operation": "List Performance Tiers",
+ "description": "Returns the list of Performance Tiers available."
+ }
+ },
+ {
+ "name": "Microsoft.DBforMySQL/flexibleServers/firewallRules/read",
+ "display": {
+ "provider": "Microsoft DB for MySQL",
+ "resource": "Firewall Rules",
+ "operation": "List/Get Firewall Rules",
+ "description": "Return the list of firewall rules for a server or gets the properties for the specified firewall rule."
+ }
+ },
+ {
+ "name": "Microsoft.DBforMySQL/flexibleServers/firewallRules/write",
+ "display": {
+ "provider": "Microsoft DB for MySQL",
+ "resource": "Firewall Rules",
+ "operation": "Create/Update Firewall Rule",
+ "description": "Creates a firewall rule with the specified parameters or update an existing rule."
+ }
+ },
+ {
+ "name": "Microsoft.DBforMySQL/flexibleServers/firewallRules/delete",
+ "display": {
+ "provider": "Microsoft DB for MySQL",
+ "resource": "Firewall Rules",
+ "operation": "Delete Firewall Rule",
+ "description": "Deletes an existing firewall rule."
+ }
+ },
+ {
+ "name": "Microsoft.DBforMySQL/flexibleServers/read",
+ "display": {
+ "provider": "Microsoft DB for MySQL",
+ "resource": "MySQL Server",
+ "operation": "List/Get MySQL Servers",
+ "description": "Return the list of servers or gets the properties for the specified server."
+ }
+ },
+ {
+ "name": "Microsoft.DBforMySQL/flexibleServers/write",
+ "display": {
+ "provider": "Microsoft DB for MySQL",
+ "resource": "MySQL Server",
+ "operation": "Create/Update MySQL Server",
+ "description": "Creates a server with the specified parameters or update the properties or tags for the specified server."
+ }
+ },
+ {
+ "name": "Microsoft.DBforMySQL/flexibleServers/delete",
+ "display": {
+ "provider": "Microsoft DB for MySQL",
+ "resource": "MySQL Server",
+ "operation": "Delete MySQL Server",
+ "description": "Deletes an existing server."
+ }
+ },
+ {
+ "name": "Microsoft.DBforMySQL/performanceTiers/read",
+ "display": {
+ "provider": "Microsoft DB for MySQL",
+ "resource": "Performance Tiers",
+ "operation": "List Performance Tiers",
+ "description": "Returns the list of Performance Tiers available."
+ }
+ },
+ {
+ "name": "Microsoft.DBforMySQL/flexibleServers/recoverableServers/read",
+ "display": {
+ "provider": "Microsoft DB for MySQL",
+ "resource": "Recoverable MySQL Server",
+ "operation": "Get Recoverable MySQL Server info",
+ "description": "Return the recoverable MySQL Server info"
+ }
+ },
+ {
+ "name": "Microsoft.DBforMySQL/flexibleServers/providers/Microsoft.Insights/metricDefinitions/read",
+ "display": {
+ "provider": "Microsoft DB for MySQL",
+ "resource": "Database Metric Definition",
+ "operation": "Get database metric definitions",
+ "description": "Return types of metrics that are available for databases"
+ },
+ "properties": {
+ "serviceSpecification": {
+ "metricSpecifications": [
+ {
+ "name": "cpu_percent",
+ "displayName": "CPU percent",
+ "displayDescription": "CPU percent",
+ "unit": "Percent",
+ "aggregationType": "Average",
+ "fillGapWithZero": true
+ },
+ {
+ "name": "memory_percent",
+ "displayName": "Memory percent",
+ "displayDescription": "Memory percent",
+ "unit": "Percent",
+ "aggregationType": "Average",
+ "fillGapWithZero": true
+ },
+ {
+ "name": "io_consumption_percent",
+ "displayName": "IO percent",
+ "displayDescription": "IO percent",
+ "unit": "Percent",
+ "aggregationType": "Average",
+ "fillGapWithZero": true
+ },
+ {
+ "name": "storage_percent",
+ "displayName": "Storage percentage",
+ "displayDescription": "Storage percentage",
+ "unit": "Percent",
+ "aggregationType": "Average"
+ },
+ {
+ "name": "storage_used",
+ "displayName": "Storage used",
+ "displayDescription": "Storage used",
+ "unit": "Bytes",
+ "aggregationType": "Average"
+ },
+ {
+ "name": "storage_limit",
+ "displayName": "Storage limit",
+ "displayDescription": "Storage limit",
+ "unit": "Bytes",
+ "aggregationType": "Average"
+ },
+ {
+ "name": "serverlog_storage_percent",
+ "displayName": "Server Log storage percent",
+ "displayDescription": "Server Log storage percent",
+ "unit": "Percent",
+ "aggregationType": "Average"
+ },
+ {
+ "name": "serverlog_storage_usage",
+ "displayName": "Server Log storage used",
+ "displayDescription": "Server Log storage used",
+ "unit": "Bytes",
+ "aggregationType": "Average"
+ },
+ {
+ "name": "serverlog_storage_limit",
+ "displayName": "Server Log storage limit",
+ "displayDescription": "Server Log storage limit",
+ "unit": "Bytes",
+ "aggregationType": "Average"
+ },
+ {
+ "name": "active_connections",
+ "displayName": "Total active connections",
+ "displayDescription": "Total active connections",
+ "unit": "Count",
+ "aggregationType": "Average",
+ "fillGapWithZero": true
+ },
+ {
+ "name": "connections_failed",
+ "displayName": "Total failed connections",
+ "displayDescription": "Total failed connections",
+ "unit": "Count",
+ "aggregationType": "Average",
+ "fillGapWithZero": true
+ },
+ {
+ "name": "seconds_behind_master",
+ "displayName": "Replication lag in seconds",
+ "displayDescription": "Replication lag in seconds",
+ "unit": "Count",
+ "aggregationType": "Average",
+ "fillGapWithZero": true
+ }
+ ]
+ }
+ }
+ },
+ {
+ "name": "Microsoft.DBforMySQL/flexibleServers/providers/Microsoft.Insights/diagnosticSettings/read",
+ "display": {
+ "provider": "Microsoft DB for MySQL",
+ "resource": "Database Metric Definition",
+ "operation": "Read diagnostic setting",
+ "description": "Gets the disagnostic setting for the resource"
+ }
+ },
+ {
+ "name": "Microsoft.DBforMySQL/flexibleServers/providers/Microsoft.Insights/diagnosticSettings/write",
+ "display": {
+ "provider": "Microsoft DB for MySQL",
+ "resource": "Database Metric Definition",
+ "operation": "Write diagnostic setting",
+ "description": "Creates or updates the diagnostic setting for the resource"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ReplicasListByServer.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ReplicasListByServer.json
new file mode 100644
index 000000000000..b5503df0c06f
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ReplicasListByServer.json
@@ -0,0 +1,103 @@
+{
+ "parameters": {
+ "serverName": "testprimary",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testserver",
+ "name": "testserver",
+ "type": "Microsoft.DBforMySQL/flexibleServers",
+ "location": "northeurope",
+ "tags": {
+ "elasticServer": "1"
+ },
+ "sku": {
+ "name": "Standard_D12_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "storageProfile": {
+ "storageMB": 256000,
+ "storageIops": 200,
+ "backupRetentionDays": 35
+ },
+ "administratorLogin": "cloudsa",
+ "sslEnforcement": "Enabled",
+ "publicNetworkAccess": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "testserver.mysql.database.azure.com",
+ "version": "5.7",
+ "replicationRole": "Replica",
+ "sourceServerId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testprimary",
+ "replicaCapacity": 0
+ }
+ },
+ {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testserver1",
+ "name": "testserver1",
+ "type": "Microsoft.DBforMySQL/flexibleServers",
+ "location": "northeurope",
+ "tags": {
+ "elasticServer": "1"
+ },
+ "sku": {
+ "name": "Standard_D12_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "storageProfile": {
+ "storageMB": 256000,
+ "storageIops": 200,
+ "backupRetentionDays": 35
+ },
+ "administratorLogin": "cloudsa",
+ "sslEnforcement": "Enabled",
+ "publicNetworkAccess": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "testserver1.mysql.database.azure.com",
+ "version": "5.7",
+ "replicationRole": "Replica",
+ "sourceServerId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testprimary",
+ "replicaCapacity": 0
+ }
+ },
+ {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testserver2",
+ "name": "testserver2",
+ "type": "Microsoft.DBforMySQL/flexibleServers",
+ "location": "northeurope",
+ "tags": {
+ "elasticServer": "1"
+ },
+ "sku": {
+ "name": "Standard_D12_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "storageProfile": {
+ "storageMB": 256000,
+ "storageIops": 200,
+ "backupRetentionDays": 35
+ },
+ "administratorLogin": "cloudsa",
+ "sslEnforcement": "Enabled",
+ "publicNetworkAccess": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "testserver2.mysql.database.azure.com",
+ "version": "5.7",
+ "replicationRole": "Replica",
+ "sourceServerId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TestGroup/providers/Microsoft.DBforMySQL/flexibleServers/testprimary",
+ "replicaCapacity": 0
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerCreate.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerCreate.json
new file mode 100644
index 000000000000..db62b78f4e95
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerCreate.json
@@ -0,0 +1,88 @@
+{
+ "parameters": {
+ "serverName": "mysqltestsvc4",
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "parameters": {
+ "location": "westus",
+ "properties": {
+ "administratorLogin": "cloudsa",
+ "administratorLoginPassword": "pass$w0rd",
+ "sslEnforcement": "Enabled",
+ "storageProfile": {
+ "storageMB": 128000,
+ "storageIops": 200,
+ "backupRetentionDays": 7
+ },
+ "createMode": "Default"
+ },
+ "sku": {
+ "name": "Standard_D14_v2",
+ "tier": "GeneralPurpose"
+ },
+ "tags": {
+ "ElasticServer": "1"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "sku": {
+ "name": "Standard_D14_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "administratorLogin": "cloudsa",
+ "storageProfile": {
+ "storageMB": 128000,
+ "storageIops": 200,
+ "backupRetentionDays": 7
+ },
+ "version": "5.7",
+ "sslEnforcement": "Enabled",
+ "publicNetworkAccess": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "mysqltestsvc4.mysql.database.azure.com"
+ },
+ "location": "westus",
+ "tags": {
+ "ElasticServer": "1"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestsvc4",
+ "name": "mysqltestsvc4",
+ "type": "Microsoft.DBforMySQL/flexibleServers"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestsvc4",
+ "name": "mysqltestsvc4",
+ "type": "Microsoft.DBforMySQL/flexibleServers",
+ "location": "westus",
+ "sku": {
+ "name": "Standard_D14_v2",
+ "tier": "GeneralPurpose"
+ },
+ "tags": {
+ "elasticServer": "1"
+ },
+ "properties": {
+ "administratorLogin": "cloudsa",
+ "storageProfile": {
+ "storageMB": 128000,
+ "storageIops": 200,
+ "backupRetentionDays": 7
+ },
+ "version": "5.7",
+ "sslEnforcement": "Enabled",
+ "publicNetworkAccess": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "mysqltestsvc4.mysql.database.azure.com"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerCreateReplica.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerCreateReplica.json
new file mode 100644
index 000000000000..04d66245e40d
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerCreateReplica.json
@@ -0,0 +1,80 @@
+{
+ "parameters": {
+ "serverName": "targetserver",
+ "resourceGroupName": "TargetResourceGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "parameters": {
+ "location": "westus",
+ "properties": {
+ "createMode": "Replica",
+ "sourceServerId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/PrimaryResourceGroup/providers/Microsoft.DBforMySQL/flexibleServers/primaryserver"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "sku": {
+ "name": "Standard_D14_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "administratorLogin": "cloudsa",
+ "storageProfile": {
+ "storageMB": 128000,
+ "storageIops": 200,
+ "backupRetentionDays": 14
+ },
+ "version": "5.7",
+ "sslEnforcement": "Enabled",
+ "publicNetworkAccess": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "targetserver.mysql.database.azure.com",
+ "replicationRole": "Replica",
+ "sourceServerId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/PrimaryResourceGroup/providers/Microsoft.DBforMySQL/flexibleServers/primaryserver",
+ "replicaCapacity": 0
+ },
+ "location": "westus",
+ "tags": {
+ "ElasticServer": "1"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TargetResourceGroup/providers/Microsoft.DBforMySQL/flexibleServers/targetserver",
+ "name": "targetserver",
+ "type": "Microsoft.DBforMySQL/flexibleServers"
+ }
+ },
+ "200": {
+ "body": {
+ "sku": {
+ "name": "Standard_D14_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "administratorLogin": "cloudsa",
+ "storageProfile": {
+ "storageMB": 128000,
+ "storageIops": 200,
+ "backupRetentionDays": 14
+ },
+ "version": "5.7",
+ "sslEnforcement": "Enabled",
+ "publicNetworkAccess": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "targetserver.mysql.database.azure.com",
+ "replicationRole": "Replica",
+ "sourceServerId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/PrimaryResourceGroup/providers/Microsoft.DBforMySQL/flexibleServers/primaryserver",
+ "replicaCapacity": 0
+ },
+ "location": "westus",
+ "tags": {
+ "ElasticServer": "1"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/TargetResourceGroup/providers/Microsoft.DBforMySQL/flexibleServers/targetserver",
+ "name": "targetserver",
+ "type": "Microsoft.DBforMySQL/flexibleServers"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerCreateWithPointInTimeRestore.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerCreateWithPointInTimeRestore.json
new file mode 100644
index 000000000000..3c5dfe80c7f1
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerCreateWithPointInTimeRestore.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "serverName": "targetserver",
+ "resourceGroupName": "TargetResourceGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "parameters": {
+ "location": "brazilsouth",
+ "properties": {
+ "restorePointInTime": "2017-12-14T00:00:37.467Z",
+ "createMode": "PointInTimeRestore",
+ "sourceServerId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/SourceResourceGroup/providers/Microsoft.DBforMySQL/flexibleServers/sourceserver"
+ },
+ "sku": {
+ "name": "Standard_D14_v2",
+ "tier": "GeneralPurpose"
+ },
+ "tags": {
+ "ElasticServer": "1"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "sku": {
+ "name": "Standard_D14_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "administratorLogin": "cloudsa",
+ "storageProfile": {
+ "storageMB": 128000,
+ "storageIops": 200,
+ "backupRetentionDays": 7
+ },
+ "version": "5.7",
+ "sslEnforcement": "Enabled",
+ "publicNetworkAccess": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "targetserver.mysql.database.azure.com"
+ },
+ "location": "brazilsouth",
+ "tags": {
+ "ElasticServer": "1"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/targetserver",
+ "name": "targetserver",
+ "type": "Microsoft.DBforMySQL/flexibleServers"
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/targetserver",
+ "name": "targetserver",
+ "type": "Microsoft.DBforMySQL/flexibleServers",
+ "location": "brazilsouth",
+ "sku": {
+ "name": "Standard_D14_v2",
+ "tier": "GeneralPurpose"
+ },
+ "tags": {
+ "elasticServer": "1"
+ },
+ "properties": {
+ "administratorLogin": "cloudsa",
+ "storageProfile": {
+ "storageMB": 128000,
+ "storageIops": 200,
+ "backupRetentionDays": 7
+ },
+ "version": "5.7",
+ "sslEnforcement": "Enabled",
+ "publicNetworkAccess": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "targetserver.mysql.database.azure.com"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerDelete.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerDelete.json
new file mode 100644
index 000000000000..67aa06b12dd8
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerGet.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerGet.json
new file mode 100644
index 000000000000..a8da20a34712
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerGet.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "serverName": "mysqltestsvc4",
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "sku": {
+ "name": "Standard_D14_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "administratorLogin": "cloudsa",
+ "storageProfile": {
+ "storageMB": 128000,
+ "storageIops": 200,
+ "backupRetentionDays": 7
+ },
+ "version": "5.7",
+ "sslEnforcement": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "mysqltestsvc4.mysql.database.azure.com",
+ "earliestRestoreDate": "2020-03-14T18:02:41.577+00:00",
+ "replicationRole": "None",
+ "sourceServerId": "",
+ "replicaCapacity": 5,
+ "publicNetworkAccess": "Enabled",
+ "haEnabled": "Enabled",
+ "haState": "Healthy",
+ "availabilityZone": "1",
+ "standbyAvailabilityZone": "2",
+ "maintenanceWindow": {
+ "dayOfWeek": 0,
+ "startHour": 0,
+ "startMinute": 0,
+ "customWindow": "Disabled"
+ },
+ "delegatedSubnetArguments": {
+ "subnetArmResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/test-vnet-subnet"
+ }
+ },
+ "location": "westus",
+ "tags": {
+ "ElasticServer": "1"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestsvc4",
+ "name": "mysqltestsvc4",
+ "type": "Microsoft.DBforMySQL/flexibleServers"
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerGetWithVnet.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerGetWithVnet.json
new file mode 100644
index 000000000000..23bfd3609f55
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerGetWithVnet.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "serverName": "mysqltestsrv",
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "sku": {
+ "name": "Standard_D12_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "administratorLogin": "cloudsa",
+ "storageProfile": {
+ "storageMB": 128000,
+ "storageIops": 200,
+ "backupRetentionDays": 7
+ },
+ "version": "5.7",
+ "sslEnforcement": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "mysqltestsrv.mysql.database.azure.com",
+ "replicationRole": "None",
+ "sourceServerId": "",
+ "replicaCapacity": 5,
+ "publicNetworkAccess": "Disabled",
+ "haEnabled": "Disabled",
+ "delegatedSubnetArguments": {
+ "subnetArmResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/test-vnet-subnet"
+ }
+ },
+ "location": "westus",
+ "tags": {
+ "ElasticServer": "1"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestsrv",
+ "name": "mysqltestsrv",
+ "type": "Microsoft.DBforMySQL/flexibleServers"
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerKeyCreate.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerKeyCreate.json
new file mode 100644
index 000000000000..bbb430b43a56
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerKeyCreate.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "resourceGroupName": "testrg",
+ "serverName": "testserver",
+ "keyName": "someVault_someKey_01234567890123456789012345678901",
+ "api-version": "2020-07-01-preview",
+ "parameters": {
+ "properties": {
+ "serverKeyType": "AzureKeyVault",
+ "uri": "https://someVault.vault.azure.net/keys/someKey/01234567890123456789012345678901"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBForMySql/flexibleServers/testserver/keys/someVault_someKey_01234567890123456789012345678901",
+ "name": "omeVault_someKey_01234567890123456789012345678901",
+ "type": "Microsoft.DBforMySQL/flexibleServers/keys",
+ "kind": "azurekeyvault",
+ "properties": {
+ "serverKeyType": "AzureKeyVault",
+ "uri": "https://someVault.vault.azure.net/keys/someKey/01234567890123456789012345678901",
+ "creationDate": "2017-05-01T00:00:00.0Z"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBForMySql/flexibleServers/testserver/keys/someVault_someKey_01234567890123456789012345678901",
+ "name": "omeVault_someKey_01234567890123456789012345678901",
+ "type": "Microsoft.DBforMySQL/flexibleServers/keys",
+ "kind": "azurekeyvault",
+ "properties": {
+ "serverKeyType": "AzureKeyVault",
+ "uri": "https://someVault.vault.azure.net/keys/someKey/01234567890123456789012345678901",
+ "creationDate": "2017-05-01T00:00:00.0Z"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerKeyDelete.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerKeyDelete.json
new file mode 100644
index 000000000000..2ffdb19b61a5
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerKeyDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "resourceGroupName": "testrg",
+ "serverName": "testserver",
+ "keyName": "someVault_someKey_01234567890123456789012345678901",
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerKeyGet.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerKeyGet.json
new file mode 100644
index 000000000000..c30a6a2402cd
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerKeyGet.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "resourceGroupName": "testrg",
+ "serverName": "testserver",
+ "keyName": "someVault_someKey_01234567890123456789012345678901",
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBForMySql/flexibleServers/testserver/keys/someVault_someKey_01234567890123456789012345678901",
+ "name": "someVault_someKey_01234567890123456789012345678901",
+ "type": "Microsoft.DBforMySQL/flexibleServers/keys",
+ "kind": "azurekeyvault",
+ "properties": {
+ "serverKeyType": "AzureKeyVault",
+ "uri": "https://someVault.vault.azure.net/keys/someKey/01234567890123456789012345678901",
+ "creationDate": "2019-12-01T00:00:00.0Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerKeysListByServer.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerKeysListByServer.json
new file mode 100644
index 000000000000..333b0be52aca
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerKeysListByServer.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "resourceGroupName": "testrg",
+ "serverName": "testserver",
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBForMySql/flexibleServers/testserver/keys/someVault_someKey_01234567890123456789012345678901",
+ "name": "someVault_someKey_01234567890123456789012345678901",
+ "type": "Microsoft.DBforMySQL/flexibleServers/keys",
+ "kind": "azurekeyvault",
+ "properties": {
+ "serverKeyType": "AzureKeyVault",
+ "uri": "https://someVault.vault.azure.net/keys/someKey/01234567890123456789012345678901",
+ "creationDate": "2019-12-01T00:00:00.0Z"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerRestart.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerRestart.json
new file mode 100644
index 000000000000..2113645e4f96
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerRestart.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerStart.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerStart.json
new file mode 100644
index 000000000000..2113645e4f96
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerStart.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerStop.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerStop.json
new file mode 100644
index 000000000000..2113645e4f96
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerStop.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "serverName": "testserver",
+ "resourceGroupName": "TestGroup",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerUpdate.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerUpdate.json
new file mode 100644
index 000000000000..21a0ca95270c
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerUpdate.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "serverName": "mysqltestsvc4",
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "parameters": {
+ "properties": {
+ "administratorLoginPassword": "newpa$$w0rd",
+ "sslEnforcement": "Disabled"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "sku": {
+ "name": "Standard_D12_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "administratorLogin": "cloudsa",
+ "storageProfile": {
+ "storageMB": 128000,
+ "backupRetentionDays": 7
+ },
+ "version": "5.7",
+ "sslEnforcement": "Disabled",
+ "publicNetworkAccess": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "mysqltestsvc4.mysql.database.azure.com",
+ "haEnabled": "Enabled",
+ "haState": "Healthy",
+ "availabilityZone": "1",
+ "standbyAvailabilityZone": "2",
+ "maintenanceWindow": {
+ "dayOfWeek": 0,
+ "startHour": 0,
+ "startMinute": 0,
+ "customWindow": "Disabled"
+ },
+ "delegatedSubnetArguments": {}
+ },
+ "location": "westus",
+ "tags": {
+ "ElasticServer": "1"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestsvc4",
+ "name": "mysqltestsvc4",
+ "type": "Microsoft.DBforMySQL/flexibleServers"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerUpdateWithCustomerMaintenanceWindow.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerUpdateWithCustomerMaintenanceWindow.json
new file mode 100644
index 000000000000..eab5131bebdf
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServerUpdateWithCustomerMaintenanceWindow.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "serverName": "mysqltestsvc4",
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
+ "parameters": {
+ "properties": {
+ "maintenanceWindow": {
+ "customWindow": "Enabled",
+ "dayOfWeek": 0,
+ "startHour": 8,
+ "startMinute": 0
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "sku": {
+ "name": "Standard_D12_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "administratorLogin": "cloudsa",
+ "storageProfile": {
+ "storageMB": 128000,
+ "backupRetentionDays": 7
+ },
+ "version": "5.7",
+ "sslEnforcement": "Disabled",
+ "publicNetworkAccess": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "mysqltestsvc4.mysql.database.azure.com",
+ "haEnabled": "Disabled",
+ "haState": "NotEnabled",
+ "availabilityZone": "1",
+ "standbyAvailabilityZone": null,
+ "maintenanceWindow": {
+ "dayOfWeek": 0,
+ "startHour": 8,
+ "startMinute": 0,
+ "customWindow": "Enabled"
+ },
+ "delegatedSubnetArguments": {}
+ },
+ "location": "westus",
+ "tags": {
+ "ElasticServer": "1"
+ },
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestsvc4",
+ "name": "mysqltestsvc4",
+ "type": "Microsoft.DBforMySQL/flexibleServers"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServersList.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServersList.json
new file mode 100644
index 000000000000..4380b5404009
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServersList.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "sku": {
+ "name": "Standard_D12_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "administratorLogin": "testuser",
+ "storageProfile": {
+ "storageMB": 5120,
+ "storageIops": 200,
+ "backupRetentionDays": 7
+ },
+ "version": "5.7",
+ "sslEnforcement": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "mysqltestsvc1.mysql.database.azure.com",
+ "publicNetworkAccess": "Enabled"
+ },
+ "location": "westus",
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestsvc1",
+ "name": "mysqltestsvc1",
+ "type": "Microsoft.DBforMySQL/flexibleServers"
+ },
+ {
+ "sku": {
+ "name": "Standard_D12_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "administratorLogin": "testuser",
+ "storageProfile": {
+ "storageMB": 5120,
+ "storageIops": 200,
+ "backupRetentionDays": 7
+ },
+ "version": "5.7",
+ "sslEnforcement": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "mysqltstsvc2.mysql.database.azure.com",
+ "publicNetworkAccess": "Enabled"
+ },
+ "location": "westus",
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltstsvc2",
+ "name": "mysqltstsvc2",
+ "type": "Microsoft.DBforMySQL/flexibleServers"
+ },
+ {
+ "sku": {
+ "name": "Standard_D13_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "administratorLogin": "testuser",
+ "storageProfile": {
+ "storageMB": 102400,
+ "storageIops": 200,
+ "backupRetentionDays": 35
+ },
+ "version": "5.7",
+ "sslEnforcement": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "mysqltestsvc3.mysql.database.azure.com",
+ "publicNetworkAccess": "Enabled"
+ },
+ "location": "westus",
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg1/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestsvc3",
+ "name": "mysqltestsvc3",
+ "type": "Microsoft.DBforMySQL/flexibleServers"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServersListByResourceGroup.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServersListByResourceGroup.json
new file mode 100644
index 000000000000..0dd487649c37
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/examples/ServersListByResourceGroup.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "resourceGroupName": "testrg",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "sku": {
+ "name": "Standard_D12_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "administratorLogin": "testuser",
+ "storageProfile": {
+ "storageMB": 5120,
+ "storageIops": 200,
+ "backupRetentionDays": 7
+ },
+ "version": "5.7",
+ "sslEnforcement": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "mysqltestsvc1.mysql.database.azure.com",
+ "publicNetworkAccess": "Enabled"
+ },
+ "location": "westus",
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltestsvc1",
+ "name": "mysqltestsvc1",
+ "type": "Microsoft.DBforMySQL/flexibleServers"
+ },
+ {
+ "sku": {
+ "name": "Standard_D13_v2",
+ "tier": "GeneralPurpose"
+ },
+ "properties": {
+ "administratorLogin": "testuser",
+ "storageProfile": {
+ "storageMB": 5120,
+ "storageIops": 200,
+ "backupRetentionDays": 7
+ },
+ "version": "5.7",
+ "sslEnforcement": "Enabled",
+ "state": "Ready",
+ "fullyQualifiedDomainName": "mysqltstsvc2.mysql.database.azure.com",
+ "publicNetworkAccess": "Enabled"
+ },
+ "location": "westus",
+ "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testrg/providers/Microsoft.DBforMySQL/flexibleServers/mysqltstsvc2",
+ "name": "mysqltstsvc2",
+ "type": "Microsoft.DBforMySQL/flexibleServers"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/mysql.json b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/mysql.json
new file mode 100644
index 000000000000..aae90e29117a
--- /dev/null
+++ b/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2020-07-01-preview/mysql.json
@@ -0,0 +1,2484 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "MySQLManagementClient",
+ "description": "The Microsoft Azure management API provides create, read, update, and delete functionality for Azure MySQL resources including servers, databases, firewall rules and configurations.",
+ "version": "2020-07-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.DBForMySql/flexibleServers/{serverName}": {
+ "put": {
+ "tags": [
+ "Servers"
+ ],
+ "operationId": "Servers_Create",
+ "x-ms-examples": {
+ "Create a new server": {
+ "$ref": "./examples/ServerCreate.json"
+ },
+ "Create a server as a point in time restore": {
+ "$ref": "./examples/ServerCreateWithPointInTimeRestore.json"
+ },
+ "Create a replica server": {
+ "$ref": "./examples/ServerCreateReplica.json"
+ }
+ },
+ "description": "Creates a new server or updates an existing server. The update action will overwrite the existing 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"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Server"
+ },
+ "description": "The required parameters for creating or updating a server."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Server"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/Server"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "Servers"
+ ],
+ "operationId": "Servers_Update",
+ "x-ms-examples": {
+ "Update a server": {
+ "$ref": "./examples/ServerUpdate.json"
+ },
+ "Update server customer maintenance window": {
+ "$ref": "./examples/ServerUpdateWithCustomerMaintenanceWindow.json"
+ }
+ },
+ "description": "Updates an existing server. The request body can contain one to many of the properties present in the normal server definition.",
+ "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"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ServerForUpdate"
+ },
+ "description": "The required parameters for updating a server."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Server"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "Servers"
+ ],
+ "operationId": "Servers_Delete",
+ "x-ms-examples": {
+ "Delete a server": {
+ "$ref": "./examples/ServerDelete.json"
+ }
+ },
+ "description": "Deletes a 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"
+ },
+ "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": [
+ "Servers"
+ ],
+ "operationId": "Servers_Get",
+ "x-ms-examples": {
+ "Get a server": {
+ "$ref": "./examples/ServerGet.json"
+ },
+ "Get a server with vnet": {
+ "$ref": "./examples/ServerGetWithVnet.json"
+ }
+ },
+ "description": "Gets information about a 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/Server"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySql/flexibleServers": {
+ "get": {
+ "tags": [
+ "Servers"
+ ],
+ "operationId": "Servers_ListByResourceGroup",
+ "x-ms-examples": {
+ "List servers in a resource group": {
+ "$ref": "./examples/ServersListByResourceGroup.json"
+ }
+ },
+ "description": "List all the servers in a given resource group.",
+ "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": "OK",
+ "schema": {
+ "$ref": "#/definitions/ServerListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DBForMySql/flexibleServers": {
+ "get": {
+ "tags": [
+ "Servers"
+ ],
+ "operationId": "Servers_List",
+ "x-ms-examples": {
+ "List servers in a subscription": {
+ "$ref": "./examples/ServersList.json"
+ }
+ },
+ "description": "List all the servers in a given 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",
+ "schema": {
+ "$ref": "#/definitions/ServerListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySql/flexibleServers/{serverName}/restart": {
+ "post": {
+ "tags": [
+ "ServerRestart"
+ ],
+ "operationId": "Servers_Restart",
+ "x-ms-examples": {
+ "Restart a server": {
+ "$ref": "./examples/ServerRestart.json"
+ }
+ },
+ "description": "Restarts a 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"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "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.DBForMySql/flexibleServers/{serverName}/start": {
+ "post": {
+ "tags": [
+ "ServerStart"
+ ],
+ "operationId": "Servers_Start",
+ "x-ms-examples": {
+ "Start a server": {
+ "$ref": "./examples/ServerStart.json"
+ }
+ },
+ "description": "Starts a 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"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "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.DBForMySql/flexibleServers/{serverName}/stop": {
+ "post": {
+ "tags": [
+ "ServerStop"
+ ],
+ "operationId": "Servers_Stop",
+ "x-ms-examples": {
+ "Stop a server": {
+ "$ref": "./examples/ServerStop.json"
+ }
+ },
+ "description": "Stops a 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"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "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.DBForMySql/flexibleServers/{serverName}/replicas": {
+ "get": {
+ "tags": [
+ "Servers"
+ ],
+ "operationId": "Replicas_ListByServer",
+ "x-ms-examples": {
+ "List replicas for a server": {
+ "$ref": "./examples/ReplicasListByServer.json"
+ }
+ },
+ "description": "List all the replicas for 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/ServerListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySql/flexibleServers/{serverName}/keys/{keyName}": {
+ "put": {
+ "tags": [
+ "ServerKeys"
+ ],
+ "operationId": "ServerKeys_CreateOrUpdate",
+ "x-ms-examples": {
+ "Creates or updates a MySQL Server key": {
+ "$ref": "./examples/ServerKeyCreate.json"
+ }
+ },
+ "description": "Creates or updates a MySQL Server key.",
+ "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/KeyNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The requested MySQL Server key resource state.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ServerKey"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ServerKey"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/ServerKey"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "ServerKeys"
+ ],
+ "operationId": "ServerKeys_Delete",
+ "x-ms-examples": {
+ "Delete the MySQL Server key": {
+ "$ref": "./examples/ServerKeyDelete.json"
+ }
+ },
+ "description": "Deletes the MySQL Server key with the given name.",
+ "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/KeyNameParameter"
+ }
+ ],
+ "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": [
+ "ServerKeys"
+ ],
+ "operationId": "ServerKeys_Get",
+ "x-ms-examples": {
+ "Get a server key": {
+ "$ref": "./examples/ServerKeyGet.json"
+ }
+ },
+ "description": "Gets a server key.",
+ "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/KeyNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ServerKey"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySql/flexibleServers/{serverName}/keys": {
+ "get": {
+ "tags": [
+ "ServerKeys"
+ ],
+ "operationId": "ServerKeys_ListByServer",
+ "x-ms-examples": {
+ "List the keys for a server.": {
+ "$ref": "./examples/ServerKeysListByServer.json"
+ }
+ },
+ "description": "Gets a list of Server keys.",
+ "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/ServerKeyListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySql/flexibleServers/{serverName}/firewallRules/{firewallRuleName}": {
+ "put": {
+ "tags": [
+ "FirewallRules"
+ ],
+ "operationId": "FirewallRules_CreateOrUpdate",
+ "x-ms-examples": {
+ "Create a firewall rule": {
+ "$ref": "./examples/FirewallRuleCreate.json"
+ }
+ },
+ "description": "Creates a new firewall rule or updates an existing firewall rule.",
+ "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/FirewallRuleNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/FirewallRule"
+ },
+ "description": "The required parameters for creating or updating a firewall rule."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/FirewallRule"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/FirewallRule"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "FirewallRules"
+ ],
+ "operationId": "FirewallRules_Delete",
+ "x-ms-examples": {
+ "Delete a firewall rule": {
+ "$ref": "./examples/FirewallRuleDelete.json"
+ }
+ },
+ "description": "Deletes a firewall rule.",
+ "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/FirewallRuleNameParameter"
+ }
+ ],
+ "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": [
+ "FirewallRules"
+ ],
+ "operationId": "FirewallRules_Get",
+ "x-ms-examples": {
+ "Get a firewall rule": {
+ "$ref": "./examples/FirewallRuleGet.json"
+ }
+ },
+ "description": "Gets information about a server firewall rule.",
+ "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/FirewallRuleNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/FirewallRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySql/flexibleServers/{serverName}/firewallRules": {
+ "get": {
+ "tags": [
+ "FirewallRules"
+ ],
+ "operationId": "FirewallRules_ListByServer",
+ "x-ms-examples": {
+ "List all firewall rules in a server": {
+ "$ref": "./examples/FirewallRulesListByServer.json"
+ }
+ },
+ "description": "List all the firewall rules 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/FirewallRuleListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySql/flexibleServers/{serverName}/databases/{databaseName}": {
+ "put": {
+ "tags": [
+ "Databases"
+ ],
+ "operationId": "Databases_CreateOrUpdate",
+ "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.DBForMySql/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"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySql/flexibleServers/{serverName}/configurations/{configurationName}": {
+ "patch": {
+ "tags": [
+ "Configurations"
+ ],
+ "operationId": "Configurations_Update",
+ "x-ms-examples": {
+ "Update a user configuration": {
+ "$ref": "./examples/ConfigurationUpdate.json"
+ }
+ },
+ "description": "Updates a configuration of a 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"
+ },
+ {
+ "$ref": "#/parameters/ConfigurationNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Configuration"
+ },
+ "description": "The required parameters for updating a server configuration."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Configuration"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "Configurations"
+ ],
+ "operationId": "Configurations_Get",
+ "x-ms-examples": {
+ "Get a configuration": {
+ "$ref": "./examples/ConfigurationGet.json"
+ }
+ },
+ "description": "Gets information about a configuration of 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"
+ },
+ {
+ "$ref": "#/parameters/ConfigurationNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Configuration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForMySql/flexibleServers/{serverName}/configurations": {
+ "get": {
+ "tags": [
+ "Configurations"
+ ],
+ "operationId": "Configurations_ListByServer",
+ "x-ms-examples": {
+ "List all configurations for a server": {
+ "$ref": "./examples/ConfigurationsListByServer.json"
+ }
+ },
+ "description": "List all the configurations 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/ConfigurationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DBForMySql/locations/{locationName}/capabilities": {
+ "get": {
+ "tags": [
+ "LocationBasedCapabilities"
+ ],
+ "operationId": "LocationBasedCapabilities_List",
+ "x-ms-examples": {
+ "CapabilitiesList": {
+ "$ref": "./examples/CapabilitiesByLocationList.json"
+ }
+ },
+ "description": "Get capabilities at specified location in a given subscription.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/LocationNameParameter"
+ }
+ ],
+ "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"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DBForMySql/locations/{locationName}/checkVirtualNetworkSubnetUsage": {
+ "post": {
+ "tags": [
+ "CheckVirtualNetworkSubnetUsage"
+ ],
+ "operationId": "CheckVirtualNetworkSubnetUsage_Execute",
+ "x-ms-examples": {
+ "CapabilitiesList": {
+ "$ref": "./examples/CheckVirtualNetworkSubnetUsage.json"
+ }
+ },
+ "description": "Get virtual network subnet usage for a given vNet resource id.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/LocationNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkSubnetUsageParameter"
+ },
+ "description": "The required parameters for creating or updating a server."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualNetworkSubnetUsageResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DBForMySql/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "CheckNameAvailability"
+ ],
+ "operationId": "CheckNameAvailability_Execute",
+ "x-ms-examples": {
+ "Check name availability": {
+ "$ref": "./examples/CheckNameAvailability.json"
+ }
+ },
+ "description": "Check the availability of name for server",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "nameAvailabilityRequest",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NameAvailabilityRequest"
+ },
+ "description": "The required parameters for checking if server name is available."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/NameAvailability"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.DBForMySql/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "operationId": "Operations_List",
+ "x-ms-examples": {
+ "OperationList": {
+ "$ref": "./examples/OperationsList.json"
+ }
+ },
+ "description": "Lists all of the available REST API operations.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ServerVersion": {
+ "type": "string",
+ "description": "The version of a server.",
+ "enum": [
+ "5.7"
+ ],
+ "x-ms-enum": {
+ "name": "ServerVersion",
+ "modelAsString": true
+ }
+ },
+ "SslEnforcement": {
+ "type": "string",
+ "description": "Enable ssl enforcement or not when connect to server.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "SslEnforcementEnum",
+ "modelAsString": true
+ }
+ },
+ "InfrastructureEncryption": {
+ "type": "string",
+ "description": "Add a second layer of encryption for your data using new encryption algorithm which gives additional data protection. Value is optional but if passed in, must be 'Disabled' or 'Enabled'.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "InfrastructureEncryptionEnum",
+ "modelAsString": true
+ }
+ },
+ "PublicNetworkAccess": {
+ "type": "string",
+ "description": "Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "PublicNetworkAccessEnum",
+ "modelAsString": true
+ }
+ },
+ "HaEnabled": {
+ "type": "string",
+ "description": "Whether or not HA is enabled for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "HaEnabledEnum",
+ "modelAsString": true
+ }
+ },
+ "DelegatedSubnetArguments": {
+ "properties": {
+ "subnetArmResourceId": {
+ "type": "string",
+ "description": "delegated subnet arm resource id."
+ }
+ },
+ "description": "Delegated subnet arguments of a server"
+ },
+ "MaintenanceWindow": {
+ "type": "object",
+ "description": "Maintenance window of a server.",
+ "properties": {
+ "customWindow": {
+ "type": "string",
+ "description": "indicates whether custom window is enabled or disabled"
+ },
+ "startHour": {
+ "type": "integer",
+ "format": "int32",
+ "description": "start hour for maintenance window"
+ },
+ "startMinute": {
+ "type": "integer",
+ "format": "int32",
+ "description": "start minute for maintenance window"
+ },
+ "dayOfWeek": {
+ "type": "integer",
+ "format": "int32",
+ "description": "day of week for maintenance window"
+ }
+ }
+ },
+ "StorageProfile": {
+ "properties": {
+ "backupRetentionDays": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Backup retention days for the server."
+ },
+ "storageMB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Max storage allowed for a server."
+ },
+ "storageIops": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Storage IOPS for a server."
+ },
+ "storageAutogrow": {
+ "type": "string",
+ "description": "Enable Storage Auto Grow.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "StorageAutogrow",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Storage Profile properties of a server"
+ },
+ "Sku": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the sku, e.g. Standard_D32s_v3."
+ },
+ "tier": {
+ "type": "string",
+ "description": "The tier of the particular SKU, e.g. GeneralPurpose.",
+ "enum": [
+ "Burstable",
+ "GeneralPurpose",
+ "MemoryOptimized"
+ ],
+ "x-ms-enum": {
+ "name": "SkuTier",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "name",
+ "tier"
+ ],
+ "description": "Billing information related properties of a server."
+ },
+ "ServerProperties": {
+ "properties": {
+ "administratorLogin": {
+ "type": "string",
+ "description": "The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation).",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "administratorLoginPassword": {
+ "type": "string",
+ "x-ms-secret": true,
+ "format": "password",
+ "description": "The password of the administrator login (required for server creation).",
+ "x-ms-mutability": [
+ "create",
+ "update"
+ ]
+ },
+ "version": {
+ "$ref": "#/definitions/ServerVersion",
+ "description": "Server version."
+ },
+ "sslEnforcement": {
+ "$ref": "#/definitions/SslEnforcement",
+ "description": "Enable ssl enforcement or not when connect to server."
+ },
+ "infrastructureEncryption": {
+ "$ref": "#/definitions/InfrastructureEncryption",
+ "description": "Status showing whether the server enabled infrastructure encryption.",
+ "x-ms-mutability": [
+ "create"
+ ]
+ },
+ "state": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The state of a server.",
+ "enum": [
+ "Ready",
+ "Dropping",
+ "Disabled",
+ "Starting",
+ "Stopping",
+ "Stopped",
+ "Updating"
+ ],
+ "x-ms-enum": {
+ "name": "ServerState",
+ "modelAsString": true
+ }
+ },
+ "haState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The state of a HA server.",
+ "enum": [
+ "NotEnabled",
+ "CreatingStandby",
+ "ReplicatingData",
+ "FailingOver",
+ "Healthy",
+ "RemovingStandby"
+ ],
+ "x-ms-enum": {
+ "name": "ServerHAState",
+ "modelAsString": true
+ }
+ },
+ "haEnabled": {
+ "$ref": "#/definitions/HaEnabled",
+ "description": "Enable HA or not for a server."
+ },
+ "fullyQualifiedDomainName": {
+ "type": "string",
+ "description": "The fully qualified domain name of a server.",
+ "readOnly": true
+ },
+ "earliestRestoreDate": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "Earliest restore point creation time (ISO8601 format)"
+ },
+ "storageProfile": {
+ "$ref": "#/definitions/StorageProfile",
+ "description": "Storage profile of a server."
+ },
+ "replicationRole": {
+ "type": "string",
+ "description": "The replication role."
+ },
+ "replicaCapacity": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "readOnly": true,
+ "description": "The maximum number of replicas that a primary server can have."
+ },
+ "publicNetworkAccess": {
+ "$ref": "#/definitions/PublicNetworkAccess",
+ "readOnly": true,
+ "description": "Whether or not public network access is allowed for this server. Value is optional but if passed in, must be 'Enabled' or 'Disabled'"
+ },
+ "maintenanceWindow": {
+ "$ref": "#/definitions/MaintenanceWindow",
+ "description": "Maintenance window of a server."
+ },
+ "sourceServerId": {
+ "type": "string",
+ "description": "The source MySQL server id.",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "restorePointInTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Restore point creation time (ISO8601 format), specifying the time to restore from.",
+ "x-ms-mutability": [
+ "create"
+ ]
+ },
+ "availabilityZone": {
+ "type": "string",
+ "description": "availability Zone information of the server."
+ },
+ "standbyAvailabilityZone": {
+ "type": "string",
+ "description": "availability Zone information of the server.",
+ "readOnly": true
+ },
+ "byokEnforcement": {
+ "type": "string",
+ "description": "Status showing whether the data encryption is enabled with customer-managed keys.",
+ "readOnly": true
+ },
+ "delegatedSubnetArguments": {
+ "$ref": "#/definitions/DelegatedSubnetArguments",
+ "description": "Delegated subnet arguments."
+ },
+ "createMode": {
+ "type": "string",
+ "description": "The mode to create a new MySQL server.",
+ "enum": [
+ "Default",
+ "PointInTimeRestore",
+ "Replica"
+ ],
+ "x-ms-enum": {
+ "name": "CreateMode",
+ "modelAsString": true
+ },
+ "x-ms-mutability": [
+ "create"
+ ]
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application-specific metadata in the form of key-value pairs."
+ }
+ },
+ "description": "The properties of a server."
+ },
+ "Server": {
+ "properties": {
+ "identity": {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Identity",
+ "description": "The Azure Active Directory identity of the server."
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The SKU (pricing tier) of the server."
+ },
+ "properties": {
+ "$ref": "#/definitions/ServerProperties",
+ "x-ms-client-flatten": true,
+ "description": "Properties of the server."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "description": "Represents a server."
+ },
+ "ServerPropertiesForUpdate": {
+ "properties": {
+ "storageProfile": {
+ "$ref": "#/definitions/StorageProfile",
+ "description": "Storage profile of a server."
+ },
+ "administratorLoginPassword": {
+ "type": "string",
+ "x-ms-secret": true,
+ "format": "password",
+ "description": "The password of the administrator login."
+ },
+ "sslEnforcement": {
+ "$ref": "#/definitions/SslEnforcement",
+ "description": "Enable ssl enforcement or not when connect to server."
+ },
+ "delegatedSubnetArguments": {
+ "$ref": "#/definitions/DelegatedSubnetArguments",
+ "description": "Delegated subnet arguments."
+ },
+ "haEnabled": {
+ "$ref": "#/definitions/HaEnabled",
+ "description": "Enable HA or not for a server."
+ },
+ "maintenanceWindow": {
+ "$ref": "#/definitions/MaintenanceWindow",
+ "description": "Maintenance window of a server."
+ },
+ "replicationRole": {
+ "type": "string",
+ "description": "The replication role of the server."
+ }
+ },
+ "description": "The properties that can be updated for a server."
+ },
+ "ServerForUpdate": {
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The SKU (pricing tier) of the server."
+ },
+ "properties": {
+ "$ref": "#/definitions/ServerPropertiesForUpdate",
+ "x-ms-client-flatten": true,
+ "description": "The properties that can be updated for a server."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application-specific metadata in the form of key-value pairs."
+ }
+ },
+ "description": "Parameters allowed to update for a server."
+ },
+ "ServerListResult": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Server"
+ },
+ "description": "The list of servers"
+ },
+ "nextLink": {
+ "description": "The link used to get the next page of operations.",
+ "type": "string"
+ }
+ },
+ "description": "A list of servers."
+ },
+ "ServerKeyProperties": {
+ "description": "Properties for a key execution.",
+ "required": [
+ "serverKeyType"
+ ],
+ "type": "object",
+ "properties": {
+ "serverKeyType": {
+ "description": "The key type like 'AzureKeyVault'.",
+ "enum": [
+ "AzureKeyVault"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ServerKeyType",
+ "modelAsString": true
+ }
+ },
+ "uri": {
+ "description": "The URI of the key.",
+ "type": "string"
+ },
+ "creationDate": {
+ "format": "date-time",
+ "description": "The key creation date.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ServerKey": {
+ "description": "A MySQL Server key.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "kind": {
+ "description": "Kind of encryption protector used to protect the key.",
+ "type": "string",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/ServerKeyProperties",
+ "description": "Properties of the ServerKey Resource.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "ServerKeyListResult": {
+ "description": "A list of MySQL Server keys.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of MySQL Server keys.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServerKey"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "FirewallRuleProperties": {
+ "properties": {
+ "startIpAddress": {
+ "type": "string",
+ "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$",
+ "description": "The start IP address of the server firewall rule. Must be IPv4 format."
+ },
+ "endIpAddress": {
+ "type": "string",
+ "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$",
+ "description": "The end IP address of the server firewall rule. Must be IPv4 format."
+ }
+ },
+ "required": [
+ "startIpAddress",
+ "endIpAddress"
+ ],
+ "description": "The properties of a server firewall rule."
+ },
+ "FirewallRule": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/FirewallRuleProperties",
+ "x-ms-client-flatten": true,
+ "description": "The properties of a firewall rule."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "description": "Represents a server firewall rule."
+ },
+ "FirewallRuleListResult": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FirewallRule"
+ },
+ "description": "The list of firewall rules in a server."
+ },
+ "nextLink": {
+ "description": "The link used to get the next page of operations.",
+ "type": "string"
+ }
+ },
+ "description": "A list of firewall rules."
+ },
+ "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 operations.",
+ "type": "string"
+ }
+ },
+ "description": "A List of databases."
+ },
+ "ConfigurationProperties": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "Value of the configuration."
+ },
+ "description": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Description of the configuration."
+ },
+ "defaultValue": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Default value of the configuration."
+ },
+ "dataType": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Data type of the configuration."
+ },
+ "allowedValues": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Allowed values of the configuration."
+ },
+ "source": {
+ "type": "string",
+ "description": "Source of the configuration."
+ },
+ "isReadOnly": {
+ "type": "string",
+ "readOnly": true,
+ "description": "If is the configuration read only.",
+ "enum": [
+ "True",
+ "False"
+ ],
+ "x-ms-enum": {
+ "name": "IsReadOnly",
+ "modelAsString": true
+ }
+ },
+ "isConfigPendingRestart": {
+ "type": "string",
+ "readOnly": true,
+ "description": "If is the configuration pending restart or not.",
+ "enum": [
+ "True",
+ "False"
+ ],
+ "x-ms-enum": {
+ "name": "IsConfigPendingRestart",
+ "modelAsString": true
+ }
+ },
+ "isDynamicConfig": {
+ "type": "string",
+ "readOnly": true,
+ "description": "If is the configuration dynamic.",
+ "enum": [
+ "True",
+ "False"
+ ],
+ "x-ms-enum": {
+ "name": "IsDynamicConfig",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "The properties of a configuration."
+ },
+ "Configuration": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ConfigurationProperties",
+ "x-ms-client-flatten": true,
+ "description": "The properties of a configuration."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Represents a Configuration."
+ },
+ "ConfigurationListResult": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Configuration"
+ },
+ "description": "The list of server configurations."
+ },
+ "nextLink": {
+ "description": "The link used to get the next page of operations.",
+ "type": "string"
+ }
+ },
+ "description": "A list of server configurations."
+ },
+ "VirtualNetworkSubnetUsageParameter": {
+ "type": "object",
+ "properties": {
+ "virtualNetworkArmResourceId": {
+ "type": "string",
+ "description": "Virtual network resource id."
+ }
+ },
+ "description": "Virtual network subnet usage parameter"
+ },
+ "DelegatedSubnetUsage": {
+ "type": "object",
+ "properties": {
+ "subnetName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "name of the subnet"
+ },
+ "usage": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "Number of used delegated subnets"
+ }
+ },
+ "description": "Delegated subnet usage data."
+ },
+ "VirtualNetworkSubnetUsageResult": {
+ "type": "object",
+ "properties": {
+ "delegatedSubnetsUsage": {
+ "description": "A list of delegated subnet usage",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DelegatedSubnetUsage"
+ },
+ "readOnly": true
+ }
+ },
+ "description": "Virtual network subnet usage data."
+ },
+ "StorageMBCapability": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "storage MB name",
+ "readOnly": true
+ },
+ "storageSizeMB": {
+ "type": "integer",
+ "format": "int64",
+ "description": "storage size in MB",
+ "readOnly": true
+ }
+ },
+ "description": "storage size in MB capability"
+ },
+ "VcoreCapability": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "vCore name",
+ "readOnly": true
+ },
+ "vCores": {
+ "type": "integer",
+ "format": "int64",
+ "description": "supported vCores",
+ "readOnly": true
+ },
+ "supportedIops": {
+ "type": "integer",
+ "format": "int64",
+ "description": "supported IOPS",
+ "readOnly": true
+ },
+ "supportedMemoryPerVcoreMB": {
+ "type": "integer",
+ "format": "int64",
+ "description": "supported memory per vCore in MB",
+ "readOnly": true
+ }
+ },
+ "description": "Vcores capability"
+ },
+ "ServerVersionCapability": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "server version",
+ "readOnly": true
+ },
+ "supportedVcores": {
+ "description": "A list of supported Vcores",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VcoreCapability"
+ },
+ "readOnly": true
+ }
+ },
+ "description": "Server version capabilities."
+ },
+ "StorageEditionCapability": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "storage edition name",
+ "readOnly": true
+ },
+ "minStorageSize": {
+ "description": "The minimal supported storage size in MB",
+ "$ref": "#/definitions/StorageMBCapability",
+ "readOnly": true
+ },
+ "maxStorageSize": {
+ "description": "The maximum supported storage size in MB",
+ "$ref": "#/definitions/StorageMBCapability",
+ "readOnly": true
+ },
+ "minBackupRetentionDays": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Minimal backup retention days",
+ "readOnly": true
+ },
+ "maxBackupRetentionDays": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Maximum backup retention days",
+ "readOnly": true
+ }
+ },
+ "description": "storage edition capability"
+ },
+ "ServerEditionCapability": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Server edition name",
+ "readOnly": true
+ },
+ "supportedStorageEditions": {
+ "description": "A list of supported storage editions",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StorageEditionCapability"
+ },
+ "readOnly": true
+ },
+ "supportedServerVersions": {
+ "description": "A list of supported server versions.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServerVersionCapability"
+ },
+ "readOnly": true
+ }
+ },
+ "description": "Server edition capabilities."
+ },
+ "CapabilityProperties": {
+ "properties": {
+ "zone": {
+ "type": "string",
+ "description": "zone name",
+ "readOnly": true
+ },
+ "supportedFlexibleServerEditions": {
+ "description": "A list of supported flexible server editions.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServerEditionCapability"
+ },
+ "readOnly": true
+ }
+ },
+ "description": "Location capabilities."
+ },
+ "CapabilitiesListResult": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of supported capabilities.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CapabilityProperties"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "description": "location capability"
+ },
+ "OperationDisplay": {
+ "properties": {
+ "provider": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Operation resource provider name."
+ },
+ "resource": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource on which the operation is performed."
+ },
+ "operation": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Localized friendly name for the operation."
+ },
+ "description": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Operation description."
+ }
+ },
+ "description": "Display metadata associated with the operation."
+ },
+ "Operation": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the operation being performed on this particular object."
+ },
+ "display": {
+ "$ref": "#/definitions/OperationDisplay",
+ "readOnly": true,
+ "description": "The localized display information for this particular operation or action."
+ },
+ "isDataAction": {
+ "description": "Indicates whether the operation is a data action",
+ "type": "boolean"
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The intended executor of the operation.",
+ "enum": [
+ "NotSpecified",
+ "user",
+ "system"
+ ],
+ "x-ms-enum": {
+ "name": "OperationOrigin",
+ "modelAsString": true
+ }
+ },
+ "properties": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "readOnly": true,
+ "x-ms-client-flatten": false,
+ "description": "Additional descriptions for the operation."
+ }
+ },
+ "description": "REST API operation definition."
+ },
+ "OperationListResult": {
+ "description": "A list of resource provider operations.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of available operation details",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ }
+ },
+ "nextLink": {
+ "description": "URL client should use to fetch the next page (per server side paging).\r\nIt's null for now, added for future use.",
+ "type": "string"
+ }
+ }
+ },
+ "NameAvailabilityRequest": {
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Resource name to verify."
+ },
+ "type": {
+ "type": "string",
+ "description": "Resource type used for verification."
+ }
+ },
+ "description": "Request from client to check resource name availability."
+ },
+ "NameAvailability": {
+ "properties": {
+ "message": {
+ "type": "string",
+ "description": "Error Message."
+ },
+ "nameAvailable": {
+ "type": "boolean",
+ "description": "Indicates whether the resource name is available."
+ },
+ "reason": {
+ "type": "string",
+ "description": "Reason for name being unavailable."
+ }
+ },
+ "description": "Represents a resource name availability."
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse",
+ "description": "The resource management error response."
+ }
+ },
+ "description": "An error response from the Batch service."
+ }
+ },
+ "parameters": {
+ "ServerNameParameter": {
+ "name": "serverName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the server.",
+ "x-ms-parameter-location": "method"
+ },
+ "FirewallRuleNameParameter": {
+ "name": "firewallRuleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the server firewall rule.",
+ "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"
+ },
+ "ConfigurationNameParameter": {
+ "name": "configurationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the server configuration.",
+ "x-ms-parameter-location": "method"
+ },
+ "LocationNameParameter": {
+ "name": "locationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the location.",
+ "x-ms-parameter-location": "method"
+ },
+ "KeyNameParameter": {
+ "name": "keyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the server key.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/mysql/resource-manager/readme.go.md b/specification/mysql/resource-manager/readme.go.md
index ceb49ca28d81..02c81a7eba72 100644
--- a/specification/mysql/resource-manager/readme.go.md
+++ b/specification/mysql/resource-manager/readme.go.md
@@ -12,18 +12,18 @@ go:
``` yaml $(go) && $(multiapi)
batch:
- - tag: package-2020-07-01-privatepreview
+ - tag: package-2020-07-01-preview
- tag: package-2020-01-01
- tag: package-2017-12-01-preview
- tag: package-2017-12-01
```
-### Tag: package-2020-07-01-privatepreview and go
+### Tag: package-2020-07-01-preview and go
-These settings apply only when `--tag=package-2020-07-01-privatepreview --go` is specified on the command line.
+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-privatepreview' && $(go)
+``` yaml $(tag) == 'package-2020-07-01-preview' && $(go)
rpname: mysql
namespace: mysqlflexibleservers
output-folder: $(go-sdk-folder)/services/preview/$(rpname)/mgmt/2020-07-01-preview/$(namespace)
diff --git a/specification/mysql/resource-manager/readme.md b/specification/mysql/resource-manager/readme.md
index db837a0271c1..1b824b2c8548 100644
--- a/specification/mysql/resource-manager/readme.md
+++ b/specification/mysql/resource-manager/readme.md
@@ -114,6 +114,15 @@ input-file:
- Microsoft.DBforMySQL/preview/2020-07-01-privatepreview/mysql.json
```
+### Tag: package-2020-07-01-preview
+
+These settings apply only when `--tag=package-2020-07-01-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-07-01-preview'
+input-file:
+- Microsoft.DBforMySQL/preview/2020-07-01-preview/mysql.json
+```
+
## Suppression
``` yaml
directive:
diff --git a/specification/mysql/resource-manager/readme.python.md b/specification/mysql/resource-manager/readme.python.md
index 77a340fa1fa1..9b7067fa7b86 100644
--- a/specification/mysql/resource-manager/readme.python.md
+++ b/specification/mysql/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-07-01-privatepreview
+ - tag: package-2020-07-01-preview
```
```yaml $(track2)
clear-output-folder: true
batch:
- tag: package-2020-01-01
- - tag: package-2020-07-01-privatepreview
+ - tag: package-2020-07-01-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/mysql
```
-### Tag: package-2020-07-01-privatepreview and python
+### Tag: package-2020-07-01-preview and python
-These settings apply only when `--tag=package-2020-07-01-privatepreview --python` is specified on the command line.
+These settings apply only when `--tag=package-2020-07-01-preview --python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
-``` yaml $(tag) == 'package-2020-07-01-privatepreview' && $(python)
+``` yaml $(tag) == 'package-2020-07-01-preview' && $(python)
namespace: azure.mgmt.rdbms.mysql_flexibleservers
output-folder: $(python-sdks-folder)/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql_flexibleservers
python:
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
new file mode 100644
index 000000000000..40f9a6db5350
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_CreateOrUpdate.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-05-01",
+ "body": {
+ "location": "eastus",
+ "properties": {
+ "activeDirectories": [
+ {
+ "site": "SiteName",
+ "username": "ad_user_name",
+ "password": "ad_password",
+ "domain": "10.10.10.3",
+ "dns": "10.10.10.3, 10.10.10.4",
+ "smbServerName": "SMBServer",
+ "organizationalUnit": "Engineering"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1",
+ "name": "account1",
+ "type": "Microsoft.NetApp/netAppAccounts",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1",
+ "name": "account1",
+ "type": "Microsoft.NetApp/netAppAccounts",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..54d78cbf2ff1
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Delete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
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
new file mode 100644
index 000000000000..867f6e3a805c
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Get.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1",
+ "name": "account1",
+ "type": "Microsoft.NetApp/netAppAccounts",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "activeDirectories": [
+ {
+ "site": "SiteName",
+ "activeDirectoryId": "02da3711-6c58-2d64-098a-e3af7afaf936",
+ "username": "ad_user_name",
+ "domain": "10.10.10.3",
+ "dns": "10.10.10.3, 10.10.10.4",
+ "status": "InUse",
+ "smbServerName": "SMBServer",
+ "organizationalUnit": "Engineering"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..76e9fc31d7d0
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_List.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1",
+ "name": "account1",
+ "type": "Microsoft.NetApp/netAppAccounts",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..8c705be0caa2
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Accounts_Update.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-05-01",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1",
+ "name": "account1",
+ "type": "Microsoft.NetApp/netAppAccounts",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1",
+ "name": "account1",
+ "type": "Microsoft.NetApp/netAppAccounts",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..02d157922cfa
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Create.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "backupPolicyName": "backupPolicyName",
+ "api-version": "2020-05-01",
+ "body": {
+ "location": "westus",
+ "properties": {
+ "dailyBackupsToKeep": 10,
+ "weeklyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "enabled": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/backupPolocies/backupPolicyName",
+ "name": "account1/backupPolicyName",
+ "type": "Microsoft.NetApp/netAppAccounts/backupPolicies",
+ "location": "westus",
+ "properties": {
+ "dailyBackupsToKeep": 10,
+ "weeklyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "enabled": true,
+ "provisioningState": "creating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/backupPolocies/backupPolicyName",
+ "name": "account1/backupPolicyName",
+ "type": "Microsoft.NetApp/netAppAccounts/backupPolicies",
+ "location": "westus",
+ "properties": {
+ "dailyBackupsToKeep": 10,
+ "weeklyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "enabled": true,
+ "provisioningState": "creating"
+ }
+ }
+ },
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..69699baacbd6
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "resourceGroup",
+ "accountName": "accountName",
+ "backupPolicyName": "backupPolicyName",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "204": {},
+ "202": {},
+ "200": {}
+ }
+}
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
new file mode 100644
index 000000000000..5e3b13ae6e54
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Get.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "backupPolicyName": "backupPolicyName",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/backupPolocies/backupPolicyName",
+ "name": "account1/backupPolicyName",
+ "type": "Microsoft.NetApp/netAppAccounts/backupPolicies",
+ "location": "eastus",
+ "properties": {
+ "name": "Policy 1",
+ "dailyBackupsToKeep": 10,
+ "weeklyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "yearlyBackupsToKeep": 10,
+ "volumesAssigned": 0,
+ "enabled": true,
+ "volumeBackups": [
+ {
+ "volumeName": "volume 1",
+ "backupsCount": 5,
+ "policyEnabled": true
+ }
+ ]
+ }
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..27335ab9fec9
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_List.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/backupPolocies/backupPolicy1",
+ "name": "account1/backupPolicy1",
+ "type": "Microsoft.NetApp/netAppAccounts/backupPolicies",
+ "location": "eastus",
+ "properties": {
+ "name": "Policy 1",
+ "dailyBackupsToKeep": 10,
+ "weeklyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "yearlyBackupsToKeep": 10,
+ "volumesAssigned": 0,
+ "enabled": true
+ }
+ }
+ ]
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..960a6b91f4fb
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/BackupPolicies_Update.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "backupPolicyName": "backupPolicyName",
+ "api-version": "2020-05-01",
+ "body": {
+ "location": "westus",
+ "properties": {
+ "dailyBackupsToKeep": 5,
+ "weeklyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "enabled": false
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/backupPolocies/backupPolicyName",
+ "name": "account1/backupPolicyName",
+ "type": "Microsoft.NetApp/netAppAccounts/backupPolicies",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "dailyBackupsToKeep": 5,
+ "weeklyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "yearlyBackupsToKeep": 0,
+ "volumesAssigned": 1,
+ "enabled": false,
+ "volumeBackups": [
+ {
+ "volumeName": "volume 1",
+ "backupsCount": 5,
+ "policyEnabled": true
+ }
+ ]
+ }
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..c7385d439834
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "resourceGroup",
+ "accountName": "accountName",
+ "backupName": "backupName",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "204": {},
+ "202": {},
+ "200": {}
+ }
+}
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
new file mode 100644
index 000000000000..4a0803cf8b04
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_Get.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "backupName": "backup1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/accountBackups/backup1",
+ "name": "account1/backup1",
+ "type": "Microsoft.NetApp/netAppAccounts/accountBackups",
+ "location": "eastus",
+ "properties": {
+ "creationDate": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded",
+ "size": 10011,
+ "label": "myLabel",
+ "backupType": "adhoc"
+ }
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..d883871687f9
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Account_List.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/accountBackups/backup1",
+ "name": "account1/backup1",
+ "type": "Microsoft.NetApp/netAppAccounts/accountBackups",
+ "location": "eastus",
+ "properties": {
+ "creationDate": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded",
+ "size": 10011,
+ "label": "myLabel",
+ "backupType": "adhoc"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..99f51a262361
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Create.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "backupName": "backup1",
+ "api-version": "2020-05-01",
+ "body": {
+ "location": "eastus",
+ "properties": {
+ "label": "myLabel"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/backups/backup1",
+ "name": "account1/pool1/volume1/backup1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/backups",
+ "location": "eastus",
+ "properties": {
+ "creationDate": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded",
+ "size": 10011,
+ "label": "myLabel",
+ "backupType": "adhoc"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/backups/backup1",
+ "name": "account1/pool1/volume1/backup1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/backups",
+ "location": "eastus",
+ "properties": {
+ "creationDate": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded",
+ "size": 10011,
+ "label": "myLabel",
+ "backupType": "adhoc"
+ }
+ }
+ },
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..cd83b5df5bc3
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Delete.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "resourceGroup",
+ "accountName": "accountName",
+ "poolName": "poolName",
+ "volumeName": "volumeName",
+ "backupName": "backupName",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "204": {},
+ "202": {},
+ "200": {}
+ }
+}
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
new file mode 100644
index 000000000000..f7c7c65ba47a
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Get.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "backupName": "backup1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/backups/backup1",
+ "name": "account1/pool1/volume1/backup1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/backups",
+ "location": "eastus",
+ "properties": {
+ "creationDate": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded",
+ "size": 10011,
+ "label": "myLabel",
+ "backupType": "adhoc"
+ }
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..4f58b64fdc03
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_List.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/backups/backup1",
+ "name": "account1/pool1/volume1/backup1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/backups",
+ "location": "eastus",
+ "properties": {
+ "creationDate": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded",
+ "size": 10011,
+ "label": "myLabel",
+ "backupType": "adhoc"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..f0a4f273d521
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Backups_Update.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "backupName": "backup1",
+ "api-version": "2020-05-01",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/backups/backup1",
+ "name": "account1/pool1/volume1/backup1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/backups",
+ "location": "eastus",
+ "properties": {
+ "creationDate": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded",
+ "size": 10011,
+ "label": "myLabel",
+ "backupType": "adhoc"
+ }
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..3e3c84891730
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckFilePathAvailability.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "location": "eastus",
+ "api-version": "2020-05-01",
+ "body": {
+ "name": "my-exact-filepth",
+ "type": "netAppAccount/capacityPools/volume",
+ "resourceGroup": "myRG"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "isAvailable": true
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..39bfc081320f
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckNameAvailability.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "location": "eastus",
+ "api-version": "2020-05-01",
+ "body": {
+ "name": "accName",
+ "type": "netAppAccount",
+ "resourceGroup": "myRG"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "isAvailable": true
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..72c9e084b04c
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/CheckQuotaAvailability.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "location": "eastus",
+ "api-version": "2020-05-01",
+ "body": {
+ "name": "resource1",
+ "type": "Microsoft.NetApp/netAppAccounts",
+ "resourceGroup": "myRG"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "isAvailable": true
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..8100c7cd822c
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_CreateOrUpdate.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "api-version": "2020-05-01",
+ "body": {
+ "location": "eastus",
+ "properties": {
+ "size": 4398046511104,
+ "serviceLevel": "Premium"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "name": "account1/pool1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "poolId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "serviceLevel": "Premium",
+ "size": 4398046511104
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "name": "account1/pool1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "poolId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "serviceLevel": "Premium",
+ "size": 4398046511104
+ }
+ }
+ },
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..fa22b8a2b2a5
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Delete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "204": {},
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..c1c97be6c818
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Get.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "name": "account1/pool1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "poolId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "serviceLevel": "Premium",
+ "size": 4398046511104
+ }
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..d4940f302c02
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_List.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "name": "account1/pool1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "poolId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "serviceLevel": "Premium",
+ "size": 4398046511104
+ }
+ }
+ ]
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..fbb86e94daed
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Pools_Update.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "api-version": "2020-05-01",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "name": "account1/pool1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "poolId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "serviceLevel": "Premium",
+ "size": 4398046511104
+ }
+ }
+ },
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..3dfd40316ba3
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Create.json
@@ -0,0 +1,105 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "snapshotPolicyName": "snapshotPolicyName",
+ "api-version": "2020-05-01",
+ "body": {
+ "location": "eastus",
+ "properties": {
+ "hourlySchedule": {
+ "snapshotsToKeep": 2,
+ "minute": 50
+ },
+ "dailySchedule": {
+ "snapshotsToKeep": 4,
+ "hour": 14,
+ "minute": 30
+ },
+ "weeklySchedule": {
+ "snapshotsToKeep": 3,
+ "day": "Wednesday",
+ "hour": 14,
+ "minute": 45
+ },
+ "monthlySchedule": {
+ "snapshotsToKeep": 5,
+ "daysOfMonth": "10,11,12",
+ "hour": 14,
+ "minute": 15
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "eastus",
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/snapshotPolicies/snapshotPolicy1",
+ "name": "account1/snapshotPolicy1",
+ "type": "Microsoft.NetApp/netAppAccounts/snapshotPolicies",
+ "properties": {
+ "name": "sdk-net-tests-snapshotPolicy-1",
+ "enabled": true,
+ "hourlySchedule": {
+ "snapshotsToKeep": 2,
+ "minute": 50
+ },
+ "dailySchedule": {
+ "snapshotsToKeep": 4,
+ "hour": 14,
+ "minute": 30
+ },
+ "weeklySchedule": {
+ "snapshotsToKeep": 3,
+ "day": "Wednesday",
+ "hour": 14,
+ "minute": 45
+ },
+ "monthlySchedule": {
+ "snapshotsToKeep": 5,
+ "daysOfMonth": "10,11,12",
+ "hour": 14,
+ "minute": 15
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "eastus",
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/snapshotPolicies/snapshotPolicy1",
+ "name": "account1/snapshotPolicy1",
+ "type": "Microsoft.NetApp/netAppAccounts/snapshotPolicies",
+ "properties": {
+ "name": "sdk-net-tests-snapshotPolicy-1",
+ "enabled": true,
+ "hourlySchedule": {
+ "snapshotsToKeep": 2,
+ "minute": 50
+ },
+ "dailySchedule": {
+ "snapshotsToKeep": 4,
+ "hour": 14,
+ "minute": 30
+ },
+ "weeklySchedule": {
+ "snapshotsToKeep": 3,
+ "day": "Wednesday",
+ "hour": 14,
+ "minute": 45
+ },
+ "monthlySchedule": {
+ "snapshotsToKeep": 5,
+ "daysOfMonth": "10,11,12",
+ "hour": 14,
+ "minute": 15
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..40bcf59bf0bd
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "resourceGroup",
+ "accountName": "accountName",
+ "snapshotPolicyName": "snapshotPolicyName",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "204": {},
+ "202": {},
+ "200": {}
+ }
+}
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
new file mode 100644
index 000000000000..8b5625388208
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Get.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "snapshotPolicyName": "snapshotPolicyName",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/snapshotPolicies/snapshotPolicy1",
+ "name": "account1/snapshotPolicy1",
+ "type": "Microsoft.NetApp/netAppAccounts/snapshotPolicies",
+ "location": "eastus",
+ "properties": {
+ "name": "sdk-net-tests-snapshotPolicy-1",
+ "enabled": true,
+ "hourlySchedule": {
+ "snapshotsToKeep": 2,
+ "minute": 50
+ },
+ "dailySchedule": {
+ "snapshotsToKeep": 4,
+ "hour": 14,
+ "minute": 30
+ },
+ "weeklySchedule": {
+ "snapshotsToKeep": 3,
+ "day": "Wednesday",
+ "hour": 14,
+ "minute": 45
+ },
+ "monthlySchedule": {
+ "snapshotsToKeep": 5,
+ "daysOfMonth": "10,11,12",
+ "hour": 14,
+ "minute": 15
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..43d5124fa1ba
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_List.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/snapshotPolicies/snapshotPolicy1",
+ "name": "account1/snapshotPolicy1",
+ "location": "eastus",
+ "type": "Microsoft.NetApp/netAppAccounts/snapshotPolicies",
+ "properties": {
+ "name": "sdk-net-tests-snapshotPolicy-1",
+ "enabled": true,
+ "hourlySchedule": {
+ "snapshotsToKeep": 2,
+ "minute": 50
+ },
+ "dailySchedule": {
+ "snapshotsToKeep": 4,
+ "hour": 14,
+ "minute": 30
+ },
+ "weeklySchedule": {
+ "snapshotsToKeep": 3,
+ "day": "Wednesday",
+ "hour": 14,
+ "minute": 45
+ },
+ "monthlySchedule": {
+ "snapshotsToKeep": 5,
+ "daysOfMonth": "10,11,12",
+ "hour": 14,
+ "minute": 15
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..e62c3e3e1cd6
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_ListVolumes.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "snapshotPolicyName": "snapshotPolicyName",
+ "api-version": "2020-05-01",
+ "body": {
+ "location": "eastus",
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1"
+ }
+ ]
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..2978f6065280
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/SnapshotPolicies_Update.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "snapshotPolicyName": "snapshotPolicyName",
+ "api-version": "2020-05-01",
+ "body": {
+ "location": "eastus",
+ "properties": {
+ "enabled": true,
+ "hourlySchedule": {
+ "snapshotsToKeep": 2,
+ "minute": 50
+ },
+ "dailySchedule": {
+ "snapshotsToKeep": 4,
+ "hour": 14,
+ "minute": 30
+ },
+ "weeklySchedule": {
+ "snapshotsToKeep": 3,
+ "day": "Wednesday",
+ "hour": 14,
+ "minute": 45
+ },
+ "monthlySchedule": {
+ "snapshotsToKeep": 5,
+ "daysOfMonth": "10,11,12",
+ "hour": 14,
+ "minute": 15
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/snapshotPolicies/snapshotPolicy1",
+ "name": "account1/snapshotPolicy1",
+ "type": "Microsoft.NetApp/netAppAccounts/snapshotPolicies",
+ "location": "eastus",
+ "properties": {
+ "name": "sdk-net-tests-snapshotPolicy-1",
+ "enabled": true,
+ "hourlySchedule": {
+ "snapshotsToKeep": 2,
+ "minute": 50
+ },
+ "dailySchedule": {
+ "snapshotsToKeep": 4,
+ "hour": 14,
+ "minute": 30
+ },
+ "weeklySchedule": {
+ "snapshotsToKeep": 3,
+ "day": "Wednesday",
+ "hour": 14,
+ "minute": 45
+ },
+ "monthlySchedule": {
+ "snapshotsToKeep": 5,
+ "daysOfMonth": "10,11,12",
+ "hour": 14,
+ "minute": 15
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..74f30a6a0ccc
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Create.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "snapshotName": "snapshot1",
+ "api-version": "2020-05-01",
+ "body": {
+ "location": "eastus"
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1",
+ "name": "account1/pool1/volume1/snapshot1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots",
+ "location": "eastus",
+ "properties": {
+ "snapshotId": "9760acf5-4638-11e7-9bdb-020073ca3333",
+ "created": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..530f0c335c27
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Delete.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "snapshotName": "snapshot1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "204": {},
+ "202": {},
+ "200": {}
+ }
+}
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
new file mode 100644
index 000000000000..8ff0e80d73b5
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Get.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "snapshotName": "snapshot1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1",
+ "name": "account1/pool1/volume1/snapshot1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots",
+ "location": "eastus",
+ "properties": {
+ "snapshotId": "9760acf5-4638-11e7-9bdb-020073ca3333",
+ "created": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..46f4bbbe5d66
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_List.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1",
+ "name": "account1/pool1/volume1/snapshot1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots",
+ "location": "eastus",
+ "properties": {
+ "snapshotId": "9760acf5-4638-11e7-9bdb-020073ca3333",
+ "created": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..830ac8027dc8
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Snapshots_Update.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "snapshotName": "snapshot1",
+ "api-version": "2020-05-01",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1",
+ "name": "account1/pool1/volume1/snapshot1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots",
+ "location": "eastus",
+ "properties": {
+ "snapshotId": "9760acf5-4638-11e7-9bdb-020073ca3333",
+ "created": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..a3c64473ac94
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Vaults_List.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/vaults/vault1",
+ "name": "account1/vault1",
+ "type": "Microsoft.NetApp/netAppAccounts/vaults",
+ "location": "eastus",
+ "properties": {
+ "vaultName": "east US"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..de8a31cc92b0
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_AuthorizeReplication.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-05-01",
+ "body": {
+ "remoteVolumeResourceId": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRemoteRG/providers/Microsoft.NetApp/netAppAccounts/remoteAccount1/capacityPools/remotePool1/volumes/remoteVolume1"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..524a3e32aea1
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_BreakReplication.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-05-01",
+ "body": {
+ "forceBreakReplication": false
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..49f16c462fa1
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_CreateOrUpdate.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-05-01",
+ "body": {
+ "location": "eastus",
+ "properties": {
+ "creationToken": "my-unique-file-path",
+ "serviceLevel": "Premium",
+ "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "usageThreshold": 107374182400
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1",
+ "location": "eastus",
+ "name": "account1/pool1/volume1",
+ "properties": {
+ "fileSystemId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "creationToken": "some-amazing-filepath",
+ "usageThreshold": 107374182400,
+ "serviceLevel": "Premium",
+ "provisioningState": "Succeeded",
+ "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3"
+ },
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1",
+ "location": "eastus",
+ "name": "account1/pool1/volume1",
+ "properties": {
+ "fileSystemId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "creationToken": "some-amazing-filepath",
+ "usageThreshold": 107374182400,
+ "serviceLevel": "Premium",
+ "provisioningState": "Succeeded",
+ "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3"
+ },
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes"
+ }
+ },
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..277dcff6eb08
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "204": {},
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..7c1a1bcbade4
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_DeleteReplication.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-05-01",
+ "body": {
+ "location": "eastus",
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..e2475a81bed6
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Get.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1",
+ "name": "account1/pool1/volume1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes",
+ "location": "eastus",
+ "properties": {
+ "fileSystemId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "creationToken": "some-amazing-filepath",
+ "usageThreshold": 107374182400,
+ "serviceLevel": "Premium",
+ "provisioningState": "Succeeded",
+ "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3"
+ }
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..07308570717f
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_List.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "api-version": "2020-05-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1",
+ "name": "account1/pool1/volume1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes",
+ "location": "eastus",
+ "properties": {
+ "fileSystemId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "creationToken": "some-amazing-filepath",
+ "usageThreshold": 107374182400,
+ "serviceLevel": "Premium",
+ "provisioningState": "Succeeded",
+ "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..699ce2ba1022
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_PoolChange.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-05-01",
+ "body": {
+ "newPoolResourceId": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..7c1a1bcbade4
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ReInitializeReplication.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-05-01",
+ "body": {
+ "location": "eastus",
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..b4682f8a17e4
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ReplicationStatus.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-05-01",
+ "body": {
+ "location": "eastus",
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "healthy": true,
+ "relationshipStatus": "Idle",
+ "mirrorState": "Mirrored",
+ "totalProgress": "1048576",
+ "errorMessage": ""
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..7c1a1bcbade4
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_ResyncReplication.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-05-01",
+ "body": {
+ "location": "eastus",
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..288dee104ebd
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Revert.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "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"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
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
new file mode 100644
index 000000000000..178d9b0da858
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/examples/Volumes_Update.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-05-01",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subscriptionId/resourceGroups/resourceGroup/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1",
+ "name": "account1/pool1/volume1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes",
+ "location": "eastus",
+ "properties": {
+ "fileSystemId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "creationToken": "some-amazing-filepath",
+ "usageThreshold": 107374182400,
+ "serviceLevel": "Premium",
+ "provisioningState": "Succeeded",
+ "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/netapp.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/netapp.json
new file mode 100644
index 000000000000..85f72bb38178
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-05-01/netapp.json
@@ -0,0 +1,4656 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Microsoft NetApp",
+ "description": "Microsoft NetApp Azure Resource Provider specification",
+ "version": "2020-05-01",
+ "x-ms-code-generation-settings": {
+ "name": "AzureNetAppFilesManagementClient"
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "schemes": [
+ "https"
+ ],
+ "host": "management.azure.com",
+ "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.NetApp/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "summary": "Describes the Resource Provider",
+ "description": "Lists all of the available Microsoft.NetApp Rest API operations",
+ "operationId": "Operations_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "NetApp Resource"
+ ],
+ "summary": "Check resource name availability",
+ "description": "Check if a resource name is available.",
+ "operationId": "NetAppResource_CheckNameAvailability",
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "description": "Name availability request.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ResourceNameAvailabilityRequest"
+ },
+ "x-ms-client-flatten": true
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/location"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CheckAvailabilityResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "CheckNameAvailability": {
+ "$ref": "examples/CheckNameAvailability.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkFilePathAvailability": {
+ "post": {
+ "tags": [
+ "NetApp Resource"
+ ],
+ "summary": "Check file path availability",
+ "description": "Check if a file path is available.",
+ "operationId": "NetAppResource_CheckFilePathAvailability",
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "description": "File path availability request.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ResourceNameAvailabilityRequest"
+ },
+ "x-ms-client-flatten": true
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/location"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CheckAvailabilityResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "CheckFilePathAvailability": {
+ "$ref": "examples/CheckFilePathAvailability.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkQuotaAvailability": {
+ "post": {
+ "tags": [
+ "NetApp Resource"
+ ],
+ "summary": "Check quota availability",
+ "description": "Check if a quota is available.",
+ "operationId": "NetAppResource_CheckQuotaAvailability",
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "description": "Quota availability request.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/QuotaAvailabilityRequest"
+ },
+ "x-ms-client-flatten": true
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/location"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CheckAvailabilityResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "CheckQuotaAvailability": {
+ "$ref": "examples/CheckQuotaAvailability.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts": {
+ "get": {
+ "summary": "Describe all NetApp Accounts in a resource group",
+ "description": "List and describe all NetApp accounts in the resource group.",
+ "tags": [
+ "NetApp Accounts"
+ ],
+ "operationId": "Accounts_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/netAppAccountList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Accounts_List": {
+ "$ref": "examples/Accounts_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}": {
+ "get": {
+ "summary": "Describe a NetApp Account",
+ "description": "Get the NetApp account",
+ "tags": [
+ "NetApp Accounts"
+ ],
+ "operationId": "Accounts_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/netAppAccount"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Accounts_Get": {
+ "$ref": "examples/Accounts_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "NetApp Accounts"
+ ],
+ "operationId": "Accounts_CreateOrUpdate",
+ "summary": "Create or update a NetApp account",
+ "description": "Create or update the specified NetApp account within the resource group",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "NetApp Account object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/netAppAccount"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - account updated",
+ "schema": {
+ "$ref": "#/definitions/netAppAccount"
+ }
+ },
+ "201": {
+ "description": "Account created",
+ "schema": {
+ "$ref": "#/definitions/netAppAccount"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Accounts_CreateOrUpdate": {
+ "$ref": "examples/Accounts_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "NetApp Accounts"
+ ],
+ "operationId": "Accounts_Delete",
+ "summary": "Delete a NetApp account",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "description": "Delete the specified NetApp account",
+ "responses": {
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Accounts_Delete": {
+ "$ref": "examples/Accounts_Delete.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "NetApp Accounts"
+ ],
+ "operationId": "Accounts_Update",
+ "summary": "Update a NetApp account",
+ "description": "Patch the specified NetApp account",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "NetApp Account object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/netAppAccountPatch"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - account updated",
+ "schema": {
+ "$ref": "#/definitions/netAppAccount"
+ }
+ },
+ "201": {
+ "description": "OK - account created",
+ "schema": {
+ "$ref": "#/definitions/netAppAccount"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Accounts_Update": {
+ "$ref": "examples/Accounts_Update.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools": {
+ "get": {
+ "summary": "Describe all Capacity Pools",
+ "description": "List all capacity pools in the NetApp Account",
+ "tags": [
+ "Capacity Pools"
+ ],
+ "operationId": "Pools_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/capacityPoolList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Pools_List": {
+ "$ref": "examples/Pools_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}": {
+ "get": {
+ "summary": "Describe a Capacity Pool",
+ "description": "Get details of the specified capacity pool",
+ "tags": [
+ "Capacity Pools"
+ ],
+ "operationId": "Pools_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/capacityPool"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Pools_Get": {
+ "$ref": "examples/Pools_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Capacity Pools"
+ ],
+ "operationId": "Pools_CreateOrUpdate",
+ "summary": "Create or Update the specified capacity pool within the resource group",
+ "description": "Create or Update a capacity pool",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Capacity pool object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/capacityPool"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - pool updated",
+ "schema": {
+ "$ref": "#/definitions/capacityPool"
+ }
+ },
+ "201": {
+ "description": "Pool created",
+ "schema": {
+ "$ref": "#/definitions/capacityPool"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Pools_CreateOrUpdate": {
+ "$ref": "examples/Pools_CreateOrUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Capacity Pools"
+ ],
+ "operationId": "Pools_Update",
+ "summary": "Update a capacity pool",
+ "description": "Patch the specified capacity pool",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Capacity pool object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/capacityPoolPatch"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/capacityPool"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Pools_Update": {
+ "$ref": "examples/Pools_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Capacity Pools"
+ ],
+ "operationId": "Pools_Delete",
+ "summary": "Delete a capacity pool",
+ "description": "Delete the specified capacity pool",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Pools_Delete": {
+ "$ref": "examples/Pools_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes": {
+ "get": {
+ "summary": "Describe all volumes",
+ "description": "List all volumes within the capacity pool",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "tags": [
+ "Volumes"
+ ],
+ "operationId": "Volumes_List",
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/volumeList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Volumes_List": {
+ "$ref": "examples/Volumes_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}": {
+ "get": {
+ "tags": [
+ "Volumes"
+ ],
+ "operationId": "Volumes_Get",
+ "summary": "Describe a volume",
+ "description": "Get the details of the specified volume",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/volume"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Volumes_Get": {
+ "$ref": "examples/Volumes_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Volumes"
+ ],
+ "operationId": "Volumes_CreateOrUpdate",
+ "summary": "Create or Update a volume",
+ "description": "Create or update the specified volume within the capacity pool",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Volume object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/volume"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Ok - volume updated",
+ "schema": {
+ "$ref": "#/definitions/volume"
+ }
+ },
+ "201": {
+ "description": "Volume created",
+ "schema": {
+ "$ref": "#/definitions/volume"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_CreateOrUpdate": {
+ "$ref": "examples/Volumes_CreateOrUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Volumes"
+ ],
+ "operationId": "Volumes_Update",
+ "summary": "Update a volume",
+ "description": "Patch the specified volume",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Volume object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/volumePatch"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/volume"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_Update": {
+ "$ref": "examples/Volumes_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Volumes"
+ ],
+ "operationId": "Volumes_Delete",
+ "summary": "Delete a volume",
+ "description": "Delete the specified volume",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_Delete": {
+ "$ref": "examples/Volumes_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/revert": {
+ "post": {
+ "tags": [
+ "Volumes Revert"
+ ],
+ "summary": "Revert a volume to one of its snapshots",
+ "description": "Revert a volume to the snapshot specified in the body",
+ "operationId": "Volumes_Revert",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Object for snapshot to revert supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/volumeRevert"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - terminal state"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_Revert": {
+ "$ref": "examples/Volumes_Revert.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/breakReplication": {
+ "post": {
+ "tags": [
+ "Volumes Replication"
+ ],
+ "summary": "Break volume replication",
+ "description": "Break the replication connection on the destination volume",
+ "operationId": "Volumes_BreakReplication",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Optional body to force break the replication.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/breakReplicationRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - terminal state"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_BreakReplication": {
+ "$ref": "examples/Volumes_BreakReplication.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/replicationStatus": {
+ "get": {
+ "tags": [
+ "Volumes Replication"
+ ],
+ "summary": "Get volume replication status",
+ "description": "Get the status of the replication",
+ "operationId": "Volumes_ReplicationStatus",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/replicationStatus"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Volumes_ReplicationStatus": {
+ "$ref": "examples/Volumes_ReplicationStatus.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/resyncReplication": {
+ "post": {
+ "tags": [
+ "Volumes Replication"
+ ],
+ "summary": "Resync volume replication",
+ "description": "Resync the connection on the destination volume. If the operation is ran on the source volume it will reverse-resync the connection and sync from source to destination.",
+ "operationId": "Volumes_ResyncReplication",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - terminal state"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_ResyncReplication": {
+ "$ref": "examples/Volumes_ResyncReplication.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/deleteReplication": {
+ "post": {
+ "tags": [
+ "Volumes Replication"
+ ],
+ "summary": "Delete volume replication",
+ "description": "Delete the replication connection on the destination volume, and send release to the source replication",
+ "operationId": "Volumes_DeleteReplication",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - terminal state"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_DeleteReplication": {
+ "$ref": "examples/Volumes_DeleteReplication.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/authorizeReplication": {
+ "post": {
+ "tags": [
+ "Volumes Replication"
+ ],
+ "summary": "Authorize source volume replication",
+ "description": "Authorize the replication connection on the source volume",
+ "operationId": "Volumes_AuthorizeReplication",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Authorize request object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/authorizeRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - terminal state"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_AuthorizeReplication": {
+ "$ref": "examples/Volumes_AuthorizeReplication.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/reinitializeReplication": {
+ "post": {
+ "tags": [
+ "Volumes Replication"
+ ],
+ "summary": "ReInitialize volume replication",
+ "description": "Re-Initializes the replication connection on the destination volume",
+ "operationId": "Volumes_ReInitializeReplication",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - terminal state"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_ReInitializeReplication": {
+ "$ref": "examples/Volumes_ReInitializeReplication.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/poolChange": {
+ "post": {
+ "tags": [
+ "Pool Change"
+ ],
+ "summary": "Change pool for volume",
+ "description": "Moves volume to another pool",
+ "operationId": "Volumes_PoolChange",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Move volume to the pool supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/poolChangeRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - terminal state"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_AuthorizeReplication": {
+ "$ref": "examples/Volumes_PoolChange.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/snapshots": {
+ "get": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_List",
+ "summary": "Describe all snapshots",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "description": "List all snapshots associated with the volume",
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/snapshotsList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Snapshots_List": {
+ "$ref": "examples/Snapshots_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/snapshots/{snapshotName}": {
+ "get": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_Get",
+ "summary": "Describe a snapshot",
+ "description": "Get details of the specified snapshot",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/SnapshotName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/snapshot"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Snapshots_Get": {
+ "$ref": "examples/Snapshots_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_Create",
+ "summary": "Create a snapshot",
+ "description": "Create the specified snapshot within the given volume",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Snapshot object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/snapshot"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/SnapshotName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Snapshot created",
+ "schema": {
+ "$ref": "#/definitions/snapshot"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Snapshots_Create": {
+ "$ref": "examples/Snapshots_Create.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_Update",
+ "summary": "Update a snapshot",
+ "description": "Patch a snapshot",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Snapshot object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/snapshotPatch"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/SnapshotName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/snapshot"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Update request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Snapshots_Update": {
+ "$ref": "examples/Snapshots_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_Delete",
+ "summary": "Delete a snapshot",
+ "description": "Delete snapshot",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/SnapshotName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Snapshots_Delete": {
+ "$ref": "examples/Snapshots_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/snapshotPolicies": {
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "get": {
+ "tags": [
+ "Snapshot Policy"
+ ],
+ "operationId": "SnapshotPolicies_List",
+ "description": "List snapshot policy",
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/snapshotPoliciesList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "SnapshotPolicies_List": {
+ "$ref": "examples/SnapshotPolicies_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/snapshotPolicies/{snapshotPolicyName}": {
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/SnapshotPolicyName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "get": {
+ "tags": [
+ "Snapshot Policy"
+ ],
+ "operationId": "SnapshotPolicies_Get",
+ "description": "Get a snapshot Policy",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/snapshotPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "SnapshotPolicies_Get": {
+ "$ref": "examples/SnapshotPolicies_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Snapshot Policy"
+ ],
+ "operationId": "SnapshotPolicies_Create",
+ "description": "Create a snapshot policy",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Snapshot policy object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/snapshotPolicy"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - snapshot Policy updated",
+ "schema": {
+ "$ref": "#/definitions/snapshotPolicy"
+ }
+ },
+ "201": {
+ "description": "Snapshot Policy created",
+ "schema": {
+ "$ref": "#/definitions/snapshotPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": false,
+ "x-ms-examples": {
+ "SnapshotPolicies_Create": {
+ "$ref": "examples/SnapshotPolicies_Create.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Snapshot Policy"
+ ],
+ "operationId": "SnapshotPolicies_Update",
+ "description": "Patch a snapshot policy",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Snapshot policy object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/snapshotPolicyPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/snapshotPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "SnapshotPolicies_Update": {
+ "$ref": "examples/SnapshotPolicies_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Snapshot Policy"
+ ],
+ "operationId": "SnapshotPolicies_Delete",
+ "description": "Delete snapshot policy",
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted -- Create or update request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "SnapshotPolicies_Delete": {
+ "$ref": "examples/SnapshotPolicies_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/snapshotPolicies/{snapshotPolicyName}/listVolumes": {
+ "get": {
+ "tags": [
+ "Snapshot Policy List Volumes"
+ ],
+ "summary": "Get volumes associated with snapshot policy",
+ "description": "Get volumes associated with snapshot policy",
+ "operationId": "SnapshotPolicies_ListVolumes",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/SnapshotPolicyName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/snapshotPolicyVolumeList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "SnapshotPolicies_ListVolumes": {
+ "$ref": "examples/SnapshotPolicies_ListVolumes.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/accountBackups": {
+ "get": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "List Backups for a Netapp Account",
+ "description": "List all Backups for a Netapp Account",
+ "operationId": "AccountBackups_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backupsList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "AccountBackups_List": {
+ "$ref": "examples/Backups_Account_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/accountBackups/{backupName}": {
+ "get": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "Get Backup for a Netapp Account",
+ "description": "Get Backup for a Netapp Account",
+ "operationId": "AccountBackups_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/BackupName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "AccountBackups_Get": {
+ "$ref": "examples/Backups_Account_Get.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "Delete Backup for a Netapp Account",
+ "description": "Delete Backup for a Netapp Account",
+ "operationId": "AccountBackups_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/BackupName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted -- Create or update request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "AccountBackups_Delete": {
+ "$ref": "examples/Backups_Account_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/backups": {
+ "get": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "List Backups",
+ "description": "List all backups for a volume",
+ "operationId": "Backups_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backupsList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Backups_List": {
+ "$ref": "examples/Backups_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/backups/{backupName}": {
+ "get": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "Get a backup",
+ "description": "Get a particular backup of the volume",
+ "operationId": "Backups_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/BackupName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Backups_Get": {
+ "$ref": "examples/Backups_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "Create a backup",
+ "description": "Create a backup for the volume",
+ "operationId": "Backups_Create",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/BackupName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Backup object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/backup"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK created",
+ "schema": {
+ "$ref": "#/definitions/backup"
+ }
+ },
+ "201": {
+ "description": "Backup created",
+ "schema": {
+ "$ref": "#/definitions/backup"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Backups_Create": {
+ "$ref": "examples/Backups_Create.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "Patch a backup",
+ "description": "Patch a backup for the volume",
+ "operationId": "Backups_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/BackupName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Backup object supplied in the body of the operation.",
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/backupPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Backups_Update": {
+ "$ref": "examples/Backups_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "Delete backup",
+ "description": "Delete a backup of the volume",
+ "operationId": "Backups_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/BackupName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted -- Create or update request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Backups_Delete": {
+ "$ref": "examples/Backups_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/backupPolicies": {
+ "get": {
+ "tags": [
+ "Backup Policy"
+ ],
+ "summary": "List backup policies",
+ "description": "List backup policies for Netapp Account",
+ "operationId": "BackupPolicies_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backupPoliciesList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Backups_List": {
+ "$ref": "examples/BackupPolicies_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/backupPolicies/{backupPolicyName}": {
+ "get": {
+ "tags": [
+ "Backup Policy"
+ ],
+ "summary": "Get a backup Policy",
+ "description": "Get a particular backup Policy",
+ "operationId": "BackupPolicies_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/BackupPolicyName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backupPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Backups_Get": {
+ "$ref": "examples/BackupPolicies_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Backup Policy"
+ ],
+ "summary": "Create a backup policy",
+ "description": "Create a backup policy for Netapp Account",
+ "operationId": "BackupPolicies_Create",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/BackupPolicyName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Backup policy object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/backupPolicy"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Backup Policy created",
+ "schema": {
+ "$ref": "#/definitions/backupPolicy"
+ }
+ },
+ "201": {
+ "description": "Backup created",
+ "schema": {
+ "$ref": "#/definitions/backupPolicy"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "BackupPolicies_Create": {
+ "$ref": "examples/BackupPolicies_Create.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Backup Policy"
+ ],
+ "summary": "Patch a backup policy",
+ "description": "Patch a backup policy for Netapp Account",
+ "operationId": "BackupPolicies_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/BackupPolicyName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Backup policy object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/backupPolicyPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backupPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "BackupPolicies_Update": {
+ "$ref": "examples/BackupPolicies_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Backup Policy"
+ ],
+ "summary": "Delete a backup policy",
+ "description": "Delete backup policy",
+ "operationId": "BackupPolicies_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/BackupPolicyName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted -- Create or update request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Backups_Delete": {
+ "$ref": "examples/BackupPolicies_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/vaults": {
+ "get": {
+ "tags": [
+ "Vaults"
+ ],
+ "summary": "List vaults",
+ "description": "List vaults for a Netapp Account",
+ "operationId": "Vaults_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/vaultList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Vaults_List": {
+ "$ref": "examples/Vaults_List.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "OperationListResult": {
+ "description": "Result of the request to list Cloud Volume 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 Storage operations supported by the Storage resource provider."
+ }
+ }
+ },
+ "Operation": {
+ "description": "Microsoft.NetApp 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 NetApp.",
+ "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": "Operation description.",
+ "type": "string"
+ }
+ }
+ },
+ "origin": {
+ "type": "string",
+ "description": "The origin of operations."
+ },
+ "properties": {
+ "$ref": "#/definitions/OperationProperties",
+ "description": "Properties of operation, include metric specifications.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "OperationProperties": {
+ "description": "Properties of operation, include metric specifications.",
+ "properties": {
+ "serviceSpecification": {
+ "$ref": "#/definitions/ServiceSpecification",
+ "description": "One property of operation, include metric specifications."
+ }
+ }
+ },
+ "ServiceSpecification": {
+ "description": "One property of operation, include metric specifications.",
+ "properties": {
+ "metricSpecifications": {
+ "description": "Metric specifications of operation.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricSpecification"
+ }
+ }
+ }
+ },
+ "MetricSpecification": {
+ "description": "Metric specification of operation.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of metric specification."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Display name of metric specification."
+ },
+ "displayDescription": {
+ "type": "string",
+ "description": "Display description of metric specification."
+ },
+ "unit": {
+ "type": "string",
+ "description": "Unit could be Bytes or Count."
+ },
+ "dimensions": {
+ "description": "Dimensions of blobs, including blob type and access tier.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Dimension"
+ }
+ },
+ "aggregationType": {
+ "type": "string",
+ "description": "Aggregation type could be Average."
+ },
+ "fillGapWithZero": {
+ "type": "boolean",
+ "description": "The property to decide fill gap with zero or not."
+ },
+ "category": {
+ "type": "string",
+ "description": "The category this metric specification belong to, could be Capacity."
+ },
+ "resourceIdDimensionNameOverride": {
+ "type": "string",
+ "description": "Account Resource Id."
+ }
+ }
+ },
+ "Dimension": {
+ "description": "Dimension of blobs, possibly be blob type or access tier.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Display name of dimension."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Display name of dimension."
+ }
+ }
+ },
+ "CheckAvailabilityResponse": {
+ "description": "Information regarding availability of a resource.",
+ "type": "object",
+ "properties": {
+ "isAvailable": {
+ "description": "true indicates name is valid and available. false indicates the name is invalid, unavailable, or both.",
+ "type": "boolean"
+ },
+ "reason": {
+ "description": "Invalid indicates the name provided does not match Azure App Service naming requirements. AlreadyExists indicates that the name is already in use and is therefore unavailable.",
+ "enum": [
+ "Invalid",
+ "AlreadyExists"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "InAvailabilityReasonType",
+ "modelAsString": true
+ }
+ },
+ "message": {
+ "description": "If reason == invalid, provide the user with the reason why the given name is invalid, and provide the resource naming requirements so that the user can select a valid name. If reason == AlreadyExists, explain that resource name is already in use, and direct them to select a different name.",
+ "type": "string"
+ }
+ }
+ },
+ "ResourceNameAvailabilityRequest": {
+ "description": "Resource name availability request content.",
+ "required": [
+ "name",
+ "type",
+ "resourceGroup"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Resource name to verify.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Resource type used for verification.",
+ "enum": [
+ "Microsoft.NetApp/netAppAccounts",
+ "Microsoft.NetApp/netAppAccounts/capacityPools",
+ "Microsoft.NetApp/netAppAccounts/capacityPools/volumes",
+ "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "CheckNameResourceTypes",
+ "modelAsString": true
+ }
+ },
+ "resourceGroup": {
+ "description": "Resource group name.",
+ "type": "string"
+ }
+ }
+ },
+ "QuotaAvailabilityRequest": {
+ "description": "Quota availability request content.",
+ "required": [
+ "name",
+ "type",
+ "resourceGroup"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the resource to verify.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Resource type used for verification.",
+ "enum": [
+ "Microsoft.NetApp/netAppAccounts",
+ "Microsoft.NetApp/netAppAccounts/capacityPools",
+ "Microsoft.NetApp/netAppAccounts/capacityPools/volumes",
+ "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "CheckQuotaNameResourceTypes",
+ "modelAsString": true
+ }
+ },
+ "resourceGroup": {
+ "description": "Resource group name.",
+ "type": "string"
+ }
+ }
+ },
+ "netAppAccountList": {
+ "description": "List of NetApp account resources",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "Multiple NetApp accounts",
+ "items": {
+ "$ref": "#/definitions/netAppAccount"
+ }
+ }
+ }
+ },
+ "netAppAccount": {
+ "description": "NetApp account resource",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "NetApp Account properties",
+ "$ref": "#/definitions/accountProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "netAppAccountPatch": {
+ "description": "NetApp account patch resource",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location"
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "NetApp Account properties",
+ "$ref": "#/definitions/accountProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "accountProperties": {
+ "description": "NetApp account properties",
+ "type": "object",
+ "properties": {
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure lifecycle management"
+ },
+ "activeDirectories": {
+ "description": "Active Directories",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/activeDirectory"
+ }
+ }
+ }
+ },
+ "activeDirectory": {
+ "description": "Active Directory",
+ "type": "object",
+ "properties": {
+ "activeDirectoryId": {
+ "type": "string",
+ "description": "Id of the Active Directory"
+ },
+ "username": {
+ "type": "string",
+ "description": "Username of Active Directory domain administrator"
+ },
+ "password": {
+ "type": "string",
+ "x-ms-secret": true,
+ "description": "Plain text password of Active Directory domain administrator, value is masked in the response"
+ },
+ "domain": {
+ "type": "string",
+ "description": "Name of the Active Directory domain"
+ },
+ "dns": {
+ "type": "string",
+ "description": "Comma separated list of DNS server IP addresses (IPv4 only) for the Active Directory domain",
+ "pattern": "^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)((, ?)(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))*$",
+ "example": "101.102.103.104,101.102.103.105"
+ },
+ "status": {
+ "type": "string",
+ "description": "Status of the Active Directory"
+ },
+ "smbServerName": {
+ "type": "string",
+ "description": "NetBIOS name of the SMB server. This name will be registered as a computer account in the AD and used to mount volumes"
+ },
+ "organizationalUnit": {
+ "type": "string",
+ "description": "The Organizational Unit (OU) within the Windows Active Directory"
+ },
+ "site": {
+ "type": "string",
+ "description": "The Active Directory site the service will limit Domain Controller discovery to"
+ },
+ "backupOperators": {
+ "description": "Users to be added to the Built-in Backup Operator active directory group. A list of unique usernames without domain specifier",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "maxLength": 255,
+ "minLength": 1,
+ "example": [
+ "user1",
+ "user2"
+ ]
+ }
+ },
+ "kdcIP": {
+ "type": "string",
+ "pattern": "^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)((, ?)(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))*$",
+ "description": "kdc server IP addresses for the active directory machine. This optional parameter is used only while creating kerberos volume.",
+ "example": "101.102.103.104"
+ },
+ "adName": {
+ "type": "string",
+ "maxLength": 64,
+ "minLength": 1,
+ "description": "Name of the active directory machine. This optional parameter is used only while creating kerberos volume",
+ "example": "ADServerName"
+ }
+ }
+ },
+ "capacityPoolList": {
+ "description": "List of capacity pool resources",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of Capacity pools",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/capacityPool"
+ }
+ }
+ }
+ },
+ "capacityPool": {
+ "description": "Capacity pool resource",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location",
+ "properties"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Capacity pool properties",
+ "$ref": "#/definitions/poolProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "poolProperties": {
+ "description": "Pool properties",
+ "type": "object",
+ "required": [
+ "size",
+ "serviceLevel"
+ ],
+ "properties": {
+ "poolId": {
+ "title": "poolId",
+ "type": "string",
+ "readOnly": true,
+ "description": "UUID v4 used to identify the Pool",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca7778"
+ },
+ "size": {
+ "title": "size",
+ "type": "integer",
+ "format": "int64",
+ "description": "Provisioned size of the pool (in bytes). Allowed values are in 4TiB chunks (value must be multiply of 4398046511104).",
+ "minimum": 4398046511104,
+ "maximum": 549755813888000
+ },
+ "serviceLevel": {
+ "title": "serviceLevel",
+ "type": "string",
+ "description": "The service level of the file system",
+ "enum": [
+ "Standard",
+ "Premium",
+ "Ultra"
+ ],
+ "x-ms-enum": {
+ "name": "ServiceLevel",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Standard",
+ "description": "Standard service level"
+ },
+ {
+ "value": "Premium",
+ "description": "Premium service level"
+ },
+ {
+ "value": "Ultra",
+ "description": "Ultra service level"
+ }
+ ]
+ },
+ "example": "Ultra",
+ "default": "Premium"
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure lifecycle management"
+ }
+ }
+ },
+ "capacityPoolPatch": {
+ "description": "Capacity pool patch resource",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location"
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Capacity pool properties",
+ "$ref": "#/definitions/poolPatchProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "poolPatchProperties": {
+ "description": "Patchable pool properties",
+ "type": "object",
+ "properties": {
+ "size": {
+ "title": "size",
+ "type": "integer",
+ "format": "int64",
+ "description": "Provisioned size of the pool (in bytes). Allowed values are in 4TiB chunks (value must be multiply of 4398046511104).",
+ "minimum": 4398046511104,
+ "maximum": 549755813888000,
+ "default": 4398046511104
+ },
+ "serviceLevel": {
+ "title": "serviceLevel",
+ "type": "string",
+ "description": "The service level of the file system",
+ "enum": [
+ "Standard",
+ "Premium",
+ "Ultra"
+ ],
+ "x-ms-enum": {
+ "name": "PatchServiceLevel",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Standard",
+ "description": "Standard service level"
+ },
+ {
+ "value": "Premium",
+ "description": "Premium service level"
+ },
+ {
+ "value": "Ultra",
+ "description": "Ultra service level"
+ }
+ ]
+ },
+ "example": "Ultra",
+ "default": "Premium"
+ }
+ }
+ },
+ "volumeList": {
+ "description": "List of volume resources",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of volumes",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/volume"
+ }
+ }
+ }
+ },
+ "volume": {
+ "description": "Volume resource",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location",
+ "properties"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Volume properties",
+ "$ref": "#/definitions/volumeProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "resourceTags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Tags are a list of key-value pairs that describe the resource"
+ },
+ "volumeProperties": {
+ "description": "Volume properties",
+ "type": "object",
+ "required": [
+ "creationToken",
+ "usageThreshold",
+ "subnetId"
+ ],
+ "properties": {
+ "fileSystemId": {
+ "title": "FileSystem ID",
+ "type": "string",
+ "readOnly": true,
+ "description": "Unique FileSystem Identifier.",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca7778"
+ },
+ "creationToken": {
+ "title": "Creation Token or File Path",
+ "type": "string",
+ "description": "A unique file path for the volume. Used when creating mount targets",
+ "pattern": "^[a-zA-Z][a-zA-Z0-9\\-]{0,79}$",
+ "minLength": 1,
+ "maxLength": 80,
+ "example": "some-amazing-filepath"
+ },
+ "serviceLevel": {
+ "title": "serviceLevel",
+ "type": "string",
+ "description": "The service level of the file system",
+ "enum": [
+ "Standard",
+ "Premium",
+ "Ultra"
+ ],
+ "x-ms-enum": {
+ "name": "ServiceLevel",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Standard",
+ "description": "Standard service level"
+ },
+ {
+ "value": "Premium",
+ "description": "Premium service level"
+ },
+ {
+ "value": "Ultra",
+ "description": "Ultra service level"
+ }
+ ]
+ },
+ "example": "Ultra",
+ "default": "Premium"
+ },
+ "usageThreshold": {
+ "title": "usageThreshold",
+ "type": "integer",
+ "format": "int64",
+ "description": "Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes.",
+ "minimum": 107374182400,
+ "maximum": 109951162777600,
+ "default": 107374182400,
+ "example": 107374182400
+ },
+ "exportPolicy": {
+ "title": "exportPolicy",
+ "description": "Set of export policy rules",
+ "properties": {
+ "rules": {
+ "title": "Export policy rule",
+ "description": "Export policy rule",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/exportPolicyRule"
+ }
+ }
+ }
+ },
+ "protocolTypes": {
+ "title": "protocolTypes",
+ "description": "Set of protocol types",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "example": [
+ "NFSv4.1"
+ ]
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure lifecycle management"
+ },
+ "snapshotId": {
+ "title": "Snapshot ID",
+ "type": "string",
+ "description": "UUID v4 or resource identifier used to identify the Snapshot.",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}|(\\\\?([^\\/]*[\\/])*)([^\\/]+)$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca3333"
+ },
+ "backupId": {
+ "title": "Backup ID",
+ "type": "string",
+ "description": "UUID v4 or resource identifier used to identify the Backup.",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}|(\\\\?([^\\/]*[\\/])*)([^\\/]+)$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca3333"
+ },
+ "baremetalTenantId": {
+ "title": "Baremetal Tenant ID",
+ "type": "string",
+ "readOnly": true,
+ "description": "Unique Baremetal Tenant Identifier.",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9560acf5-4e3a-12e7-9bdb-02007cca7779"
+ },
+ "subnetId": {
+ "type": "string",
+ "description": "The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes"
+ },
+ "mountTargets": {
+ "title": "mountTargets",
+ "type": "array",
+ "description": "List of mount targets",
+ "items": {
+ "$ref": "#/definitions/mountTargetProperties"
+ }
+ },
+ "volumeType": {
+ "type": "string",
+ "description": "What type of volume is this",
+ "example": "DataProtection"
+ },
+ "dataProtection": {
+ "title": "DataProtection",
+ "description": "DataProtection type volumes include an object containing details of the replication",
+ "properties": {
+ "backup": {
+ "title": "Backup",
+ "description": "Backup Properties",
+ "type": "object",
+ "$ref": "#/definitions/volumeBackupProperties"
+ },
+ "replication": {
+ "title": "Replication",
+ "description": "Replication properties",
+ "type": "object",
+ "$ref": "#/definitions/replicationObject"
+ },
+ "snapshot": {
+ "title": "Snapshot",
+ "description": "Snapshot properties.",
+ "$ref": "#/definitions/volumeSnapshotProperties"
+ }
+ }
+ },
+ "isRestoring": {
+ "type": "boolean",
+ "description": "Restoring"
+ },
+ "snapshotDirectoryVisible": {
+ "type": "boolean",
+ "description": "If enabled (true) the volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots (default to true)."
+ },
+ "kerberosEnabled": {
+ "type": "boolean",
+ "description": "Describe if a volume is KerberosEnabled. To be use with swagger version 2020-05-01 or later",
+ "example": false,
+ "default": false
+ }
+ }
+ },
+ "exportPolicyRule": {
+ "description": "Volume Export Policy Rule",
+ "type": "object",
+ "properties": {
+ "ruleIndex": {
+ "type": "integer",
+ "description": "Order index",
+ "format": "int32"
+ },
+ "unixReadOnly": {
+ "type": "boolean",
+ "description": "Read only access"
+ },
+ "unixReadWrite": {
+ "type": "boolean",
+ "description": "Read and write access"
+ },
+ "kerberos5ReadOnly": {
+ "type": "boolean",
+ "description": "Kerberos5 Read only access. To be use with swagger version 2020-05-01 or later",
+ "example": false,
+ "default": false
+ },
+ "kerberos5ReadWrite": {
+ "type": "boolean",
+ "description": "Kerberos5 Read and write access. To be use with swagger version 2020-05-01 or later",
+ "example": true,
+ "default": false
+ },
+ "kerberos5iReadOnly": {
+ "type": "boolean",
+ "description": "Kerberos5i Read only access. To be use with swagger version 2020-05-01 or later",
+ "example": false,
+ "default": false
+ },
+ "kerberos5iReadWrite": {
+ "type": "boolean",
+ "description": "Kerberos5i Read and write access. To be use with swagger version 2020-05-01 or later",
+ "example": true,
+ "default": false
+ },
+ "kerberos5pReadOnly": {
+ "type": "boolean",
+ "description": "Kerberos5p Read only access. To be use with swagger version 2020-05-01 or later",
+ "example": false,
+ "default": false
+ },
+ "kerberos5pReadWrite": {
+ "type": "boolean",
+ "description": "Kerberos5p Read and write access. To be use with swagger version 2020-05-01 or later",
+ "example": true,
+ "default": false
+ },
+ "cifs": {
+ "type": "boolean",
+ "description": "Allows CIFS protocol"
+ },
+ "nfsv3": {
+ "type": "boolean",
+ "description": "Allows NFSv3 protocol. Enable only for NFSv3 type volumes"
+ },
+ "nfsv41": {
+ "type": "boolean",
+ "description": "Allows NFSv4.1 protocol. Enable only for NFSv4.1 type volumes"
+ },
+ "allowedClients": {
+ "type": "string",
+ "description": "Client ingress specification as comma separated string with IPv4 CIDRs, IPv4 host addresses and host names"
+ },
+ "hasRootAccess": {
+ "type": "boolean",
+ "description": "Has root access to volume",
+ "example": true,
+ "default": true
+ }
+ }
+ },
+ "volumeBackupProperties": {
+ "description": "Volume Backup Properties",
+ "type": "object",
+ "properties": {
+ "backupPolicyId": {
+ "type": "string",
+ "description": "Backup Policy Resource ID"
+ },
+ "policyEnforced": {
+ "type": "boolean",
+ "description": "Policy Enforced"
+ },
+ "vaultId": {
+ "type": "string",
+ "description": "Vault Resource ID"
+ },
+ "backupEnabled": {
+ "type": "boolean",
+ "description": "Backup Enabled"
+ }
+ }
+ },
+ "replicationObject": {
+ "description": "Replication properties",
+ "type": "object",
+ "required": [
+ "replicationSchedule",
+ "remoteVolumeResourceId"
+ ],
+ "properties": {
+ "replicationId": {
+ "type": "string",
+ "description": "Id"
+ },
+ "endpointType": {
+ "type": "string",
+ "description": "Indicates whether the local volume is the source or destination for the Volume Replication",
+ "enum": [
+ "src",
+ "dst"
+ ],
+ "x-ms-enum": {
+ "name": "EndpointType",
+ "modelAsString": true
+ }
+ },
+ "replicationSchedule": {
+ "type": "string",
+ "description": "Schedule",
+ "enum": [
+ "_10minutely",
+ "hourly",
+ "daily"
+ ],
+ "x-ms-enum": {
+ "name": "ReplicationSchedule",
+ "modelAsString": true
+ }
+ },
+ "remoteVolumeResourceId": {
+ "type": "string",
+ "description": "The resource ID of the remote volume."
+ },
+ "remoteVolumeRegion": {
+ "type": "string",
+ "description": "The remote region for the other end of the Volume Replication."
+ }
+ }
+ },
+ "volumeSnapshotProperties": {
+ "description": "Volume Snapshot Properties",
+ "type": "object",
+ "properties": {
+ "snapshotPolicyId": {
+ "type": "string",
+ "description": "Snapshot Policy ResourceId"
+ }
+ }
+ },
+ "replicationStatus": {
+ "description": "Replication status",
+ "type": "object",
+ "properties": {
+ "healthy": {
+ "type": "boolean",
+ "description": "Replication health check"
+ },
+ "relationshipStatus": {
+ "type": "string",
+ "description": "Status of the mirror relationship",
+ "enum": [
+ "Idle",
+ "Transferring"
+ ],
+ "x-ms-enum": {
+ "name": "RelationshipStatus",
+ "modelAsString": true
+ }
+ },
+ "mirrorState": {
+ "type": "string",
+ "description": "The status of the replication",
+ "enum": [
+ "Uninitialized",
+ "Mirrored",
+ "Broken"
+ ],
+ "x-ms-enum": {
+ "name": "MirrorState",
+ "modelAsString": true
+ }
+ },
+ "totalProgress": {
+ "type": "string",
+ "description": "The progress of the replication"
+ },
+ "errorMessage": {
+ "type": "string",
+ "description": "Displays error message if the replication is in an error state"
+ }
+ }
+ },
+ "volumePatch": {
+ "description": "Volume patch resource",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location"
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Patchable volume properties",
+ "$ref": "#/definitions/volumePatchProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "volumePatchProperties": {
+ "description": "Patchable volume properties",
+ "type": "object",
+ "properties": {
+ "serviceLevel": {
+ "title": "serviceLevel",
+ "type": "string",
+ "description": "The service level of the file system",
+ "enum": [
+ "Standard",
+ "Premium",
+ "Ultra"
+ ],
+ "x-ms-enum": {
+ "name": "ServiceLevel",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Standard",
+ "description": "Standard service level"
+ },
+ {
+ "value": "Premium",
+ "description": "Premium service level"
+ },
+ {
+ "value": "Ultra",
+ "description": "Ultra service level"
+ }
+ ]
+ },
+ "example": "Ultra",
+ "default": "Premium"
+ },
+ "usageThreshold": {
+ "title": "usageThreshold",
+ "type": "integer",
+ "format": "int64",
+ "description": "Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes.",
+ "minimum": 107374182400,
+ "maximum": 109951162777600,
+ "default": 107374182400,
+ "example": 107374182400
+ },
+ "exportPolicy": {
+ "title": "exportPolicy",
+ "description": "Set of export policy rules",
+ "properties": {
+ "rules": {
+ "title": "Export policy rule",
+ "description": "Export policy rule",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/exportPolicyRule"
+ }
+ }
+ }
+ },
+ "dataProtection": {
+ "title": "DataProtection",
+ "description": "DataProtection type volumes include an object containing details of the replication",
+ "properties": {
+ "backup": {
+ "title": "Backup",
+ "description": "Backup Properties",
+ "type": "object",
+ "$ref": "#/definitions/volumeBackupProperties"
+ }
+ }
+ }
+ }
+ },
+ "mountTarget": {
+ "description": "Mount Target",
+ "type": "object",
+ "required": [
+ "location",
+ "properties"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location"
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags",
+ "x-ms-client-flatten": true
+ },
+ "properties": {
+ "description": "Mount Target Properties",
+ "$ref": "#/definitions/mountTargetProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "mountTargetProperties": {
+ "description": "Mount target properties",
+ "type": "object",
+ "required": [
+ "fileSystemId"
+ ],
+ "properties": {
+ "mountTargetId": {
+ "title": "mountTargetId",
+ "type": "string",
+ "readOnly": true,
+ "description": "UUID v4 used to identify the MountTarget",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca3333"
+ },
+ "fileSystemId": {
+ "title": "fileSystemId",
+ "type": "string",
+ "description": "UUID v4 used to identify the MountTarget",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca3333"
+ },
+ "ipAddress": {
+ "title": "ipAddress",
+ "description": "The mount target's IPv4 address",
+ "type": "string",
+ "readOnly": true,
+ "example": "1.2.3.4"
+ },
+ "smbServerFqdn": {
+ "title": "smbServerFQDN",
+ "description": "The SMB server's Fully Qualified Domain Name, FQDN",
+ "type": "string",
+ "example": "fullyqualified.domainname.com"
+ }
+ }
+ },
+ "snapshotsList": {
+ "description": "List of Snapshots",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of Snapshots",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/snapshot"
+ }
+ }
+ }
+ },
+ "snapshot": {
+ "description": "Snapshot of a Volume",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "properties": {
+ "description": "Snapshot Properties",
+ "$ref": "#/definitions/snapshotProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "snapshotPatch": {
+ "description": "Snapshot patch",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {}
+ },
+ "snapshotProperties": {
+ "description": "Snapshot properties",
+ "type": "object",
+ "properties": {
+ "snapshotId": {
+ "title": "snapshotId",
+ "type": "string",
+ "readOnly": true,
+ "description": "UUID v4 used to identify the Snapshot",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca3333"
+ },
+ "created": {
+ "title": "name",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "The creation date of the snapshot",
+ "example": "2017-08-15 13:23:33"
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure lifecycle management"
+ }
+ }
+ },
+ "snapshotPolicyProperties": {
+ "description": "Snapshot policy properties",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Snapshot policy name"
+ },
+ "hourlySchedule": {
+ "title": "hourlySchedule",
+ "description": "Schedule for hourly snapshots",
+ "type": "object",
+ "$ref": "#/definitions/hourlySchedule"
+ },
+ "dailySchedule": {
+ "title": "dailySchedule",
+ "description": "Schedule for daily snapshots",
+ "type": "object",
+ "$ref": "#/definitions/dailySchedule"
+ },
+ "weeklySchedule": {
+ "title": "weeklySchedule",
+ "description": "Schedule for weekly snapshots",
+ "type": "object",
+ "$ref": "#/definitions/weeklySchedule"
+ },
+ "monthlySchedule": {
+ "title": "monthlySchedule",
+ "description": "Schedule for monthly snapshots",
+ "type": "object",
+ "$ref": "#/definitions/monthlySchedule"
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "The property to decide policy is enabled or not"
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure lifecycle management"
+ }
+ }
+ },
+ "snapshotPolicy": {
+ "description": "Snapshot policy information",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location",
+ "properties"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Snapshot policy Properties",
+ "$ref": "#/definitions/snapshotPolicyProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "snapshotPoliciesList": {
+ "description": "List of Snapshot Policies",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of snapshot policies",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/snapshotPolicy"
+ }
+ }
+ }
+ },
+ "snapshotPolicyDetails": {
+ "description": "Snapshot policy properties",
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Snapshot policy Properties",
+ "$ref": "#/definitions/snapshotPolicyProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "snapshotPolicyPatch": {
+ "description": "Snapshot policy Details for create and update",
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location"
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Snapshot Policy properties",
+ "$ref": "#/definitions/snapshotPolicyProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "snapshotPolicyVolumeList": {
+ "description": "Volumes associated with snapshot policy",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of volumes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "readOnly": true,
+ "description": "Associated volume resource Id"
+ }
+ }
+ }
+ },
+ "hourlySchedule": {
+ "description": "Hourly Schedule properties",
+ "type": "object",
+ "properties": {
+ "snapshotsToKeep": {
+ "type": "integer",
+ "description": "Hourly snapshot count to keep",
+ "format": "int32"
+ },
+ "minute": {
+ "type": "integer",
+ "description": "Indicates which minute snapshot should be taken",
+ "example": "30",
+ "format": "int32"
+ },
+ "usedBytes": {
+ "type": "integer",
+ "description": "Resource size in bytes, current storage usage for the volume in bytes",
+ "format": "int64"
+ }
+ }
+ },
+ "dailySchedule": {
+ "description": "Daily Schedule properties",
+ "type": "object",
+ "properties": {
+ "snapshotsToKeep": {
+ "type": "integer",
+ "description": "Daily snapshot count to keep",
+ "format": "int32"
+ },
+ "hour": {
+ "type": "integer",
+ "description": "Indicates which hour in UTC timezone a snapshot should be taken",
+ "example": "11",
+ "format": "int32"
+ },
+ "minute": {
+ "type": "integer",
+ "description": "Indicates which minute snapshot should be taken",
+ "example": "30",
+ "format": "int32"
+ },
+ "usedBytes": {
+ "type": "integer",
+ "description": "Resource size in bytes, current storage usage for the volume in bytes",
+ "format": "int64"
+ }
+ }
+ },
+ "weeklySchedule": {
+ "description": "Weekly Schedule properties, make a snapshot every week at a specific day or days",
+ "type": "object",
+ "properties": {
+ "snapshotsToKeep": {
+ "type": "integer",
+ "description": "Weekly snapshot count to keep",
+ "format": "int32"
+ },
+ "day": {
+ "type": "string",
+ "description": "Indicates which weekdays snapshot should be taken, accepts a comma separated list of week day names in english",
+ "example": "Sunday,Monday"
+ },
+ "hour": {
+ "type": "integer",
+ "description": "Indicates which hour in UTC timezone a snapshot should be taken",
+ "example": "11",
+ "format": "int32"
+ },
+ "minute": {
+ "type": "integer",
+ "description": "Indicates which minute snapshot should be taken",
+ "example": "30",
+ "format": "int32"
+ },
+ "usedBytes": {
+ "type": "integer",
+ "description": "Resource size in bytes, current storage usage for the volume in bytes",
+ "format": "int64"
+ }
+ }
+ },
+ "monthlySchedule": {
+ "description": "Monthly Schedule properties",
+ "type": "object",
+ "properties": {
+ "snapshotsToKeep": {
+ "type": "integer",
+ "description": "Monthly snapshot count to keep",
+ "format": "int32"
+ },
+ "daysOfMonth": {
+ "type": "string",
+ "description": "Indicates which days of the month snapshot should be taken. A comma delimited string.",
+ "example": "1,11,21"
+ },
+ "hour": {
+ "type": "integer",
+ "description": "Indicates which hour in UTC timezone a snapshot should be taken",
+ "example": "11",
+ "format": "int32"
+ },
+ "minute": {
+ "type": "integer",
+ "description": "Indicates which minute snapshot should be taken",
+ "example": "30",
+ "format": "int32"
+ },
+ "usedBytes": {
+ "type": "integer",
+ "description": "Resource size in bytes, current storage usage for the volume in bytes",
+ "format": "int64"
+ }
+ }
+ },
+ "volumeRevert": {
+ "description": "revert a volume to the snapshot",
+ "type": "object",
+ "properties": {
+ "snapshotId": {
+ "type": "string",
+ "description": "Resource id of the snapshot"
+ }
+ }
+ },
+ "authorizeRequest": {
+ "description": "Authorize request",
+ "type": "object",
+ "properties": {
+ "remoteVolumeResourceId": {
+ "type": "string",
+ "description": "Resource id of the remote volume"
+ }
+ }
+ },
+ "breakReplicationRequest": {
+ "description": "Break replication request",
+ "type": "object",
+ "properties": {
+ "forceBreakReplication": {
+ "type": "boolean",
+ "description": "If replication is in status transferring and you want to force break the replication, set to true"
+ }
+ }
+ },
+ "poolChangeRequest": {
+ "description": "Pool change request",
+ "type": "object",
+ "required": [
+ "newPoolResourceId"
+ ],
+ "properties": {
+ "newPoolResourceId": {
+ "type": "string",
+ "description": "Resource id of the pool to move volume to"
+ }
+ }
+ },
+ "backupsList": {
+ "description": "List of Backups",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of Backups",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/backup"
+ }
+ }
+ }
+ },
+ "backup": {
+ "description": "Backup of a Volume",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location",
+ "properties"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "properties": {
+ "description": "Backup Properties",
+ "$ref": "#/definitions/backupProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "backupPatch": {
+ "description": "Backup patch",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Backup Properties",
+ "$ref": "#/definitions/backupProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "backupProperties": {
+ "description": "Backup properties",
+ "type": "object",
+ "properties": {
+ "creationDate": {
+ "title": "name",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "The creation date of the backup",
+ "example": "2017-08-15 13:23:33"
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure lifecycle management"
+ },
+ "size": {
+ "type": "integer",
+ "readOnly": true,
+ "description": "Size of backup",
+ "format": "int64"
+ },
+ "label": {
+ "type": "string",
+ "description": "Label for backup"
+ },
+ "backupType": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Type of backup adhoc or scheduled"
+ }
+ }
+ },
+ "backupPolicyProperties": {
+ "description": "Backup policy properties",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Name of backup policy"
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure lifecycle management"
+ },
+ "dailyBackupsToKeep": {
+ "type": "integer",
+ "description": "Daily backups count to keep",
+ "format": "int32"
+ },
+ "weeklyBackupsToKeep": {
+ "type": "integer",
+ "description": "Weekly backups count to keep",
+ "format": "int32"
+ },
+ "monthlyBackupsToKeep": {
+ "type": "integer",
+ "description": "Monthly backups count to keep",
+ "format": "int32"
+ },
+ "yearlyBackupsToKeep": {
+ "type": "integer",
+ "description": "Yearly backups count to keep",
+ "format": "int32"
+ },
+ "volumesAssigned": {
+ "type": "integer",
+ "description": "Volumes using current backup policy",
+ "format": "int32"
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "The property to decide policy is enabled or not"
+ },
+ "volumeBackups": {
+ "description": "A list of volumes assigned to this policy",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/volumeBackups"
+ }
+ }
+ }
+ },
+ "backupPolicy": {
+ "description": "Backup policy information",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location",
+ "properties"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Backup policy Properties",
+ "$ref": "#/definitions/backupPolicyProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "backupPoliciesList": {
+ "description": "List of Backup Policies",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of backup policies",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/backupPolicy"
+ }
+ }
+ }
+ },
+ "backupPolicyDetails": {
+ "description": "Backup policy properties",
+ "x-ms-azure-resource": true,
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Backup policy Properties",
+ "$ref": "#/definitions/backupPolicyProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "backupPolicyPatch": {
+ "description": "Backup policy Details for create and update",
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "properties": {
+ "description": "Backup policy Properties",
+ "$ref": "#/definitions/backupPolicyProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "volumeBackups": {
+ "description": "Volume details using the backup policy",
+ "type": "object",
+ "readOnly": true,
+ "properties": {
+ "volumeName": {
+ "type": "string",
+ "description": "Volume name"
+ },
+ "backupsCount": {
+ "type": "integer",
+ "description": "Total count of backups for volume",
+ "format": "int32"
+ },
+ "policyEnabled": {
+ "type": "boolean",
+ "description": "Policy enabled"
+ }
+ }
+ },
+ "vaultList": {
+ "description": "List of Vaults",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of vaults",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/vault"
+ }
+ }
+ }
+ },
+ "vault": {
+ "description": "Vault information",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location",
+ "properties"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "properties": {
+ "description": "Vault Properties",
+ "$ref": "#/definitions/vaultProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "vaultProperties": {
+ "description": "Vault properties",
+ "type": "object",
+ "properties": {
+ "vaultName": {
+ "type": "string",
+ "readOnly": false,
+ "description": "Vault Name"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "SubscriptionId": {
+ "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."
+ },
+ "location": {
+ "name": "location",
+ "description": "The location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "ResourceGroup": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group.",
+ "pattern": "^[-\\w\\._\\(\\)]+$",
+ "minLength": 1,
+ "maxLength": 90,
+ "x-ms-parameter-location": "method"
+ },
+ "AccountName": {
+ "name": "accountName",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "description": "The name of the NetApp account",
+ "x-ms-parameter-location": "method"
+ },
+ "PoolName": {
+ "name": "poolName",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,63}$",
+ "minLength": 1,
+ "maxLength": 64,
+ "description": "The name of the capacity pool",
+ "x-ms-parameter-location": "method"
+ },
+ "VolumeName": {
+ "name": "volumeName",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "pattern": "^[a-zA-Z][a-zA-Z0-9\\-_]{0,63}$",
+ "minLength": 1,
+ "maxLength": 64,
+ "description": "The name of the volume",
+ "x-ms-parameter-location": "method"
+ },
+ "MountTargetName": {
+ "name": "mountTargetName",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "description": "The name of the mount target",
+ "x-ms-parameter-location": "method"
+ },
+ "SnapshotName": {
+ "name": "snapshotName",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "description": "The name of the mount target",
+ "x-ms-parameter-location": "method"
+ },
+ "SnapshotPolicyName": {
+ "name": "snapshotPolicyName",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "description": "The name of the snapshot policy target",
+ "x-ms-parameter-location": "method"
+ },
+ "BackupName": {
+ "name": "backupName",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "description": "The name of the backup",
+ "x-ms-parameter-location": "method"
+ },
+ "BackupPolicyName": {
+ "name": "backupPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Backup policy Name which uniquely identify backup policy.",
+ "x-ms-parameter-location": "method"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "description": "Version of the API to be used with the client request.",
+ "in": "query",
+ "type": "string",
+ "required": true,
+ "default": "2020-05-01"
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-06-01/netapp.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-06-01/netapp.json
index f177ba0e6d73..ba1124809de5 100644
--- a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-06-01/netapp.json
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-06-01/netapp.json
@@ -4373,6 +4373,16 @@
"description": "Backup properties",
"type": "object",
"properties": {
+ "backupId": {
+ "title": "backupId",
+ "type": "string",
+ "readOnly": true,
+ "description": "UUID v4 used to identify the Backup",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca3333"
+ },
"creationDate": {
"title": "name",
"type": "string",
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_CreateOrUpdate.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_CreateOrUpdate.json
new file mode 100644
index 000000000000..8ab6f15abfd8
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_CreateOrUpdate.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-07-01",
+ "body": {
+ "location": "eastus",
+ "properties": {
+ "activeDirectories": [
+ {
+ "site": "SiteName",
+ "username": "ad_user_name",
+ "password": "ad_password",
+ "domain": "10.10.10.3",
+ "dns": "10.10.10.3, 10.10.10.4",
+ "smbServerName": "SMBServer",
+ "organizationalUnit": "Engineering",
+ "aesEncryption": true,
+ "ldapSigning": false
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1",
+ "name": "account1",
+ "type": "Microsoft.NetApp/netAppAccounts",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1",
+ "name": "account1",
+ "type": "Microsoft.NetApp/netAppAccounts",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_Delete.json
new file mode 100644
index 000000000000..46ebb2a9fa02
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_Delete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_Get.json
new file mode 100644
index 000000000000..9dd366d4f0db
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_Get.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1",
+ "name": "account1",
+ "type": "Microsoft.NetApp/netAppAccounts",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "activeDirectories": [
+ {
+ "site": "SiteName",
+ "activeDirectoryId": "02da3711-6c58-2d64-098a-e3af7afaf936",
+ "username": "ad_user_name",
+ "password": "****************",
+ "domain": "10.10.10.3",
+ "dns": "10.10.10.3, 10.10.10.4",
+ "status": "InUse",
+ "smbServerName": "SMBServer",
+ "organizationalUnit": "Engineering",
+ "statusDetails": "Status Details",
+ "aesEncryption": true,
+ "ldapSigning": true
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_List.json
new file mode 100644
index 000000000000..65d3123cde84
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_List.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1",
+ "name": "account1",
+ "type": "Microsoft.NetApp/netAppAccounts",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_Update.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_Update.json
new file mode 100644
index 000000000000..dab4940dc786
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Accounts_Update.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-07-01",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1",
+ "name": "account1",
+ "type": "Microsoft.NetApp/netAppAccounts",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1",
+ "name": "account1",
+ "type": "Microsoft.NetApp/netAppAccounts",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_Create.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_Create.json
new file mode 100644
index 000000000000..26494faa0055
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_Create.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "backupPolicyName": "backupPolicyName",
+ "api-version": "2020-07-01",
+ "body": {
+ "location": "westus",
+ "properties": {
+ "dailyBackupsToKeep": 10,
+ "weeklyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "enabled": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/backupPolocies/backupPolicyName",
+ "name": "account1/backupPolicyName",
+ "type": "Microsoft.NetApp/netAppAccounts/backupPolicies",
+ "location": "westus",
+ "properties": {
+ "dailyBackupsToKeep": 10,
+ "weeklyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "enabled": true,
+ "provisioningState": "creating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/backupPolocies/backupPolicyName",
+ "name": "account1/backupPolicyName",
+ "type": "Microsoft.NetApp/netAppAccounts/backupPolicies",
+ "location": "westus",
+ "properties": {
+ "dailyBackupsToKeep": 10,
+ "weeklyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "enabled": true,
+ "provisioningState": "creating"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_Delete.json
new file mode 100644
index 000000000000..30f7901d9a6f
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "resourceGroup",
+ "accountName": "accountName",
+ "backupPolicyName": "backupPolicyName",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "204": {},
+ "202": {},
+ "200": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_Get.json
new file mode 100644
index 000000000000..37d9ed7be02e
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_Get.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "backupPolicyName": "backupPolicyName",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/backupPolocies/backupPolicyName",
+ "name": "account1/backupPolicyName",
+ "type": "Microsoft.NetApp/netAppAccounts/backupPolicies",
+ "location": "eastus",
+ "properties": {
+ "name": "Policy 1",
+ "dailyBackupsToKeep": 10,
+ "weeklyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "yearlyBackupsToKeep": 10,
+ "volumesAssigned": 0,
+ "enabled": true,
+ "volumeBackups": [
+ {
+ "volumeName": "volume 1",
+ "backupsCount": 5,
+ "policyEnabled": true
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_List.json
new file mode 100644
index 000000000000..580a578f324b
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_List.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/backupPolocies/backupPolicy1",
+ "name": "account1/backupPolicy1",
+ "type": "Microsoft.NetApp/netAppAccounts/backupPolicies",
+ "location": "eastus",
+ "properties": {
+ "name": "Policy 1",
+ "dailyBackupsToKeep": 10,
+ "weeklyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "yearlyBackupsToKeep": 10,
+ "volumesAssigned": 0,
+ "enabled": true
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_Update.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_Update.json
new file mode 100644
index 000000000000..1aa5aa449955
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/BackupPolicies_Update.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "backupPolicyName": "backupPolicyName",
+ "api-version": "2020-07-01",
+ "body": {
+ "location": "westus",
+ "properties": {
+ "dailyBackupsToKeep": 5,
+ "weeklyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "enabled": false
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/backupPolocies/backupPolicyName",
+ "name": "account1/backupPolicyName",
+ "type": "Microsoft.NetApp/netAppAccounts/backupPolicies",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "dailyBackupsToKeep": 5,
+ "weeklyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "yearlyBackupsToKeep": 0,
+ "volumesAssigned": 1,
+ "enabled": false,
+ "volumeBackups": [
+ {
+ "volumeName": "volume 1",
+ "backupsCount": 5,
+ "policyEnabled": true
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Account_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Account_Delete.json
new file mode 100644
index 000000000000..e0db24d96c3c
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Account_Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "resourceGroup",
+ "accountName": "accountName",
+ "backupName": "backupName",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "204": {},
+ "202": {},
+ "200": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Account_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Account_Get.json
new file mode 100644
index 000000000000..bd4a0ae81d1a
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Account_Get.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "backupName": "backup1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/accountBackups/backup1",
+ "name": "account1/backup1",
+ "type": "Microsoft.NetApp/netAppAccounts/accountBackups",
+ "location": "eastus",
+ "properties": {
+ "creationDate": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded",
+ "size": 10011,
+ "label": "myLabel",
+ "backupType": "adhoc"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Account_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Account_List.json
new file mode 100644
index 000000000000..350fdb5cbe21
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Account_List.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/accountBackups/backup1",
+ "name": "account1/backup1",
+ "type": "Microsoft.NetApp/netAppAccounts/accountBackups",
+ "location": "eastus",
+ "properties": {
+ "creationDate": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded",
+ "size": 10011,
+ "label": "myLabel",
+ "backupType": "adhoc"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Create.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Create.json
new file mode 100644
index 000000000000..79ebda912e3d
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Create.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "backupName": "backup1",
+ "api-version": "2020-07-01",
+ "body": {
+ "location": "eastus",
+ "properties": {
+ "label": "myLabel"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/backups/backup1",
+ "name": "account1/pool1/volume1/backup1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/backups",
+ "location": "eastus",
+ "properties": {
+ "creationDate": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded",
+ "size": 10011,
+ "label": "myLabel",
+ "backupType": "adhoc"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/backups/backup1",
+ "name": "account1/pool1/volume1/backup1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/backups",
+ "location": "eastus",
+ "properties": {
+ "creationDate": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded",
+ "size": 10011,
+ "label": "myLabel",
+ "backupType": "adhoc"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Delete.json
new file mode 100644
index 000000000000..7c72de17fb06
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Delete.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "resourceGroup",
+ "accountName": "accountName",
+ "poolName": "poolName",
+ "volumeName": "volumeName",
+ "backupName": "backupName",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "204": {},
+ "202": {},
+ "200": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Get.json
new file mode 100644
index 000000000000..73d6e3b5793c
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Get.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "backupName": "backup1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/backups/backup1",
+ "name": "account1/pool1/volume1/backup1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/backups",
+ "location": "eastus",
+ "properties": {
+ "creationDate": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded",
+ "size": 10011,
+ "label": "myLabel",
+ "backupType": "adhoc"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_List.json
new file mode 100644
index 000000000000..715084e053f5
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_List.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/backups/backup1",
+ "name": "account1/pool1/volume1/backup1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/backups",
+ "location": "eastus",
+ "properties": {
+ "creationDate": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded",
+ "size": 10011,
+ "label": "myLabel",
+ "backupType": "adhoc"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Update.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Update.json
new file mode 100644
index 000000000000..d8eb8c1701a3
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Backups_Update.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "backupName": "backup1",
+ "api-version": "2020-07-01",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/backups/backup1",
+ "name": "account1/pool1/volume1/backup1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/backups",
+ "location": "eastus",
+ "properties": {
+ "creationDate": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded",
+ "size": 10011,
+ "label": "myLabel",
+ "backupType": "adhoc"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/CheckFilePathAvailability.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/CheckFilePathAvailability.json
new file mode 100644
index 000000000000..a64beb2fb14e
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/CheckFilePathAvailability.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "location": "eastus",
+ "api-version": "2020-07-01",
+ "body": {
+ "name": "my-exact-filepth",
+ "type": "netAppAccount/capacityPools/volume",
+ "resourceGroup": "myRG"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "isAvailable": true
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/CheckNameAvailability.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/CheckNameAvailability.json
new file mode 100644
index 000000000000..ada44af04be2
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/CheckNameAvailability.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "location": "eastus",
+ "api-version": "2020-07-01",
+ "body": {
+ "name": "accName",
+ "type": "netAppAccount",
+ "resourceGroup": "myRG"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "isAvailable": true
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/CheckQuotaAvailability.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/CheckQuotaAvailability.json
new file mode 100644
index 000000000000..18bb30338cc5
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/CheckQuotaAvailability.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "location": "eastus",
+ "api-version": "2020-07-01",
+ "body": {
+ "name": "resource1",
+ "type": "Microsoft.NetApp/netAppAccounts",
+ "resourceGroup": "myRG"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "isAvailable": true
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_CreateOrUpdate.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_CreateOrUpdate.json
new file mode 100644
index 000000000000..df4f0db01352
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_CreateOrUpdate.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "api-version": "2020-07-01",
+ "body": {
+ "location": "eastus",
+ "properties": {
+ "size": 4398046511104,
+ "serviceLevel": "Premium",
+ "qosType": "Auto"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "name": "account1/pool1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "poolId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "serviceLevel": "Premium",
+ "size": 4398046511104,
+ "qosType": "Auto",
+ "totalThroughputMibps": 281.474
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "name": "account1/pool1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "poolId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "serviceLevel": "Premium",
+ "size": 4398046511104,
+ "qosType": "Auto",
+ "totalThroughputMibps": 281.474
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_Delete.json
new file mode 100644
index 000000000000..6f5570783402
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_Delete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "204": {},
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_Get.json
new file mode 100644
index 000000000000..ce0bf1b111ab
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_Get.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "name": "account1/pool1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "poolId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "serviceLevel": "Premium",
+ "size": 4398046511104,
+ "qosType": "Manual",
+ "totalThroughputMibps": 281.474,
+ "utilizedThroughputMibps": 100.47
+ }
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_List.json
new file mode 100644
index 000000000000..ef6111ad37ed
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_List.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "name": "account1/pool1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "poolId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "serviceLevel": "Premium",
+ "size": 4398046511104,
+ "qosType": "Auto",
+ "totalThroughputMibps": 281.474
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_Update.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_Update.json
new file mode 100644
index 000000000000..a830254d3831
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Pools_Update.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "api-version": "2020-07-01",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "name": "account1/pool1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools",
+ "location": "eastus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "poolId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "serviceLevel": "Premium",
+ "size": 4398046511104,
+ "qosType": "Manual",
+ "totalThroughputMibps": 281.474,
+ "utilizedThroughputMibps": 100.47
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_Create.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_Create.json
new file mode 100644
index 000000000000..2deb179e6823
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_Create.json
@@ -0,0 +1,105 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "snapshotPolicyName": "snapshotPolicyName",
+ "api-version": "2020-07-01",
+ "body": {
+ "location": "eastus",
+ "properties": {
+ "hourlySchedule": {
+ "snapshotsToKeep": 2,
+ "minute": 50
+ },
+ "dailySchedule": {
+ "snapshotsToKeep": 4,
+ "hour": 14,
+ "minute": 30
+ },
+ "weeklySchedule": {
+ "snapshotsToKeep": 3,
+ "day": "Wednesday",
+ "hour": 14,
+ "minute": 45
+ },
+ "monthlySchedule": {
+ "snapshotsToKeep": 5,
+ "daysOfMonth": "10,11,12",
+ "hour": 14,
+ "minute": 15
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "eastus",
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/snapshotPolicies/snapshotPolicy1",
+ "name": "account1/snapshotPolicy1",
+ "type": "Microsoft.NetApp/netAppAccounts/snapshotPolicies",
+ "properties": {
+ "name": "sdk-net-tests-snapshotPolicy-1",
+ "enabled": true,
+ "hourlySchedule": {
+ "snapshotsToKeep": 2,
+ "minute": 50
+ },
+ "dailySchedule": {
+ "snapshotsToKeep": 4,
+ "hour": 14,
+ "minute": 30
+ },
+ "weeklySchedule": {
+ "snapshotsToKeep": 3,
+ "day": "Wednesday",
+ "hour": 14,
+ "minute": 45
+ },
+ "monthlySchedule": {
+ "snapshotsToKeep": 5,
+ "daysOfMonth": "10,11,12",
+ "hour": 14,
+ "minute": 15
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "eastus",
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/snapshotPolicies/snapshotPolicy1",
+ "name": "account1/snapshotPolicy1",
+ "type": "Microsoft.NetApp/netAppAccounts/snapshotPolicies",
+ "properties": {
+ "name": "sdk-net-tests-snapshotPolicy-1",
+ "enabled": true,
+ "hourlySchedule": {
+ "snapshotsToKeep": 2,
+ "minute": 50
+ },
+ "dailySchedule": {
+ "snapshotsToKeep": 4,
+ "hour": 14,
+ "minute": 30
+ },
+ "weeklySchedule": {
+ "snapshotsToKeep": 3,
+ "day": "Wednesday",
+ "hour": 14,
+ "minute": 45
+ },
+ "monthlySchedule": {
+ "snapshotsToKeep": 5,
+ "daysOfMonth": "10,11,12",
+ "hour": 14,
+ "minute": 15
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_Delete.json
new file mode 100644
index 000000000000..129587be3f2f
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "resourceGroup",
+ "accountName": "accountName",
+ "snapshotPolicyName": "snapshotPolicyName",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "204": {},
+ "202": {},
+ "200": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_Get.json
new file mode 100644
index 000000000000..b3b124f91a1c
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_Get.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "snapshotPolicyName": "snapshotPolicyName",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/snapshotPolicies/snapshotPolicy1",
+ "name": "account1/snapshotPolicy1",
+ "type": "Microsoft.NetApp/netAppAccounts/snapshotPolicies",
+ "location": "eastus",
+ "properties": {
+ "name": "sdk-net-tests-snapshotPolicy-1",
+ "enabled": true,
+ "hourlySchedule": {
+ "snapshotsToKeep": 2,
+ "minute": 50
+ },
+ "dailySchedule": {
+ "snapshotsToKeep": 4,
+ "hour": 14,
+ "minute": 30
+ },
+ "weeklySchedule": {
+ "snapshotsToKeep": 3,
+ "day": "Wednesday",
+ "hour": 14,
+ "minute": 45
+ },
+ "monthlySchedule": {
+ "snapshotsToKeep": 5,
+ "daysOfMonth": "10,11,12",
+ "hour": 14,
+ "minute": 15
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_List.json
new file mode 100644
index 000000000000..b72951f45bb3
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_List.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/snapshotPolicies/snapshotPolicy1",
+ "name": "account1/snapshotPolicy1",
+ "location": "eastus",
+ "type": "Microsoft.NetApp/netAppAccounts/snapshotPolicies",
+ "properties": {
+ "name": "sdk-net-tests-snapshotPolicy-1",
+ "enabled": true,
+ "hourlySchedule": {
+ "snapshotsToKeep": 2,
+ "minute": 50
+ },
+ "dailySchedule": {
+ "snapshotsToKeep": 4,
+ "hour": 14,
+ "minute": 30
+ },
+ "weeklySchedule": {
+ "snapshotsToKeep": 3,
+ "day": "Wednesday",
+ "hour": 14,
+ "minute": 45
+ },
+ "monthlySchedule": {
+ "snapshotsToKeep": 5,
+ "daysOfMonth": "10,11,12",
+ "hour": 14,
+ "minute": 15
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_ListVolumes.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_ListVolumes.json
new file mode 100644
index 000000000000..554ff92c4a4c
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_ListVolumes.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "snapshotPolicyName": "snapshotPolicyName",
+ "api-version": "2020-07-01",
+ "body": {
+ "location": "eastus",
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_Update.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_Update.json
new file mode 100644
index 000000000000..960d2e0c8fb3
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/SnapshotPolicies_Update.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "snapshotPolicyName": "snapshotPolicyName",
+ "api-version": "2020-07-01",
+ "body": {
+ "location": "eastus",
+ "properties": {
+ "enabled": true,
+ "hourlySchedule": {
+ "snapshotsToKeep": 2,
+ "minute": 50
+ },
+ "dailySchedule": {
+ "snapshotsToKeep": 4,
+ "hour": 14,
+ "minute": 30
+ },
+ "weeklySchedule": {
+ "snapshotsToKeep": 3,
+ "day": "Wednesday",
+ "hour": 14,
+ "minute": 45
+ },
+ "monthlySchedule": {
+ "snapshotsToKeep": 5,
+ "daysOfMonth": "10,11,12",
+ "hour": 14,
+ "minute": 15
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/snapshotPolicies/snapshotPolicy1",
+ "name": "account1/snapshotPolicy1",
+ "type": "Microsoft.NetApp/netAppAccounts/snapshotPolicies",
+ "location": "eastus",
+ "properties": {
+ "name": "sdk-net-tests-snapshotPolicy-1",
+ "enabled": true,
+ "hourlySchedule": {
+ "snapshotsToKeep": 2,
+ "minute": 50
+ },
+ "dailySchedule": {
+ "snapshotsToKeep": 4,
+ "hour": 14,
+ "minute": 30
+ },
+ "weeklySchedule": {
+ "snapshotsToKeep": 3,
+ "day": "Wednesday",
+ "hour": 14,
+ "minute": 45
+ },
+ "monthlySchedule": {
+ "snapshotsToKeep": 5,
+ "daysOfMonth": "10,11,12",
+ "hour": 14,
+ "minute": 15
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_Create.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_Create.json
new file mode 100644
index 000000000000..61dce860e7dc
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_Create.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "snapshotName": "snapshot1",
+ "api-version": "2020-07-01",
+ "body": {
+ "location": "eastus"
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1",
+ "name": "account1/pool1/volume1/snapshot1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots",
+ "location": "eastus",
+ "properties": {
+ "snapshotId": "9760acf5-4638-11e7-9bdb-020073ca3333",
+ "created": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_Delete.json
new file mode 100644
index 000000000000..25ef8abc8a81
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_Delete.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "snapshotName": "snapshot1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "204": {},
+ "202": {},
+ "200": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_Get.json
new file mode 100644
index 000000000000..3e2d9a4a613e
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_Get.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "snapshotName": "snapshot1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1",
+ "name": "account1/pool1/volume1/snapshot1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots",
+ "location": "eastus",
+ "properties": {
+ "snapshotId": "9760acf5-4638-11e7-9bdb-020073ca3333",
+ "created": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_List.json
new file mode 100644
index 000000000000..15c333a1e07a
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_List.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1",
+ "name": "account1/pool1/volume1/snapshot1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots",
+ "location": "eastus",
+ "properties": {
+ "snapshotId": "9760acf5-4638-11e7-9bdb-020073ca3333",
+ "created": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_Update.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_Update.json
new file mode 100644
index 000000000000..9f6e9b52fc6b
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Snapshots_Update.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "snapshotName": "snapshot1",
+ "api-version": "2020-07-01",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1",
+ "name": "account1/pool1/volume1/snapshot1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots",
+ "location": "eastus",
+ "properties": {
+ "snapshotId": "9760acf5-4638-11e7-9bdb-020073ca3333",
+ "created": "2017-08-15T13:23:33Z",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Vaults_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Vaults_List.json
new file mode 100644
index 000000000000..626baa820efe
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Vaults_List.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/vaults/vault1",
+ "name": "account1/vault1",
+ "type": "Microsoft.NetApp/netAppAccounts/vaults",
+ "location": "eastus",
+ "properties": {
+ "vaultName": "east US"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_AuthorizeReplication.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_AuthorizeReplication.json
new file mode 100644
index 000000000000..7ab437c49d4f
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_AuthorizeReplication.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-07-01",
+ "body": {
+ "remoteVolumeResourceId": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRemoteRG/providers/Microsoft.NetApp/netAppAccounts/remoteAccount1/capacityPools/remotePool1/volumes/remoteVolume1"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_BreakReplication.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_BreakReplication.json
new file mode 100644
index 000000000000..41063e18e1b4
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_BreakReplication.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-07-01",
+ "body": {
+ "forceBreakReplication": false
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_CreateOrUpdate.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_CreateOrUpdate.json
new file mode 100644
index 000000000000..6d9a5fb096d7
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_CreateOrUpdate.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-07-01",
+ "body": {
+ "location": "eastus",
+ "properties": {
+ "creationToken": "my-unique-file-path",
+ "serviceLevel": "Premium",
+ "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "usageThreshold": 107374182400,
+ "throughputMibps": 128.0
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1",
+ "location": "eastus",
+ "name": "account1/pool1/volume1",
+ "properties": {
+ "fileSystemId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "creationToken": "some-amazing-filepath",
+ "usageThreshold": 107374182400,
+ "serviceLevel": "Premium",
+ "provisioningState": "Succeeded",
+ "throughputMibps": 128.0,
+ "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3"
+ },
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1",
+ "location": "eastus",
+ "name": "account1/pool1/volume1",
+ "properties": {
+ "fileSystemId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "creationToken": "some-amazing-filepath",
+ "usageThreshold": 107374182400,
+ "serviceLevel": "Premium",
+ "provisioningState": "Succeeded",
+ "throughputMibps": 128.0,
+ "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3"
+ },
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_Delete.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_Delete.json
new file mode 100644
index 000000000000..7bfa9748ebf4
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "204": {},
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_DeleteReplication.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_DeleteReplication.json
new file mode 100644
index 000000000000..0f375e24142b
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_DeleteReplication.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-07-01",
+ "body": {
+ "location": "eastus",
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_Get.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_Get.json
new file mode 100644
index 000000000000..97524115fbd8
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_Get.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1",
+ "name": "account1/pool1/volume1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes",
+ "location": "eastus",
+ "properties": {
+ "fileSystemId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "creationToken": "some-amazing-filepath",
+ "usageThreshold": 107374182400,
+ "serviceLevel": "Premium",
+ "provisioningState": "Succeeded",
+ "throughputMibps": 128.0,
+ "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_List.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_List.json
new file mode 100644
index 000000000000..307f96de4634
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_List.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1",
+ "name": "account1/pool1/volume1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes",
+ "location": "eastus",
+ "properties": {
+ "fileSystemId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "creationToken": "some-amazing-filepath",
+ "usageThreshold": 107374182400,
+ "serviceLevel": "Premium",
+ "provisioningState": "Succeeded",
+ "throughputMibps": 128.0,
+ "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_PoolChange.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_PoolChange.json
new file mode 100644
index 000000000000..3cde97294056
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_PoolChange.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-07-01",
+ "body": {
+ "newPoolResourceId": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_ReInitializeReplication.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_ReInitializeReplication.json
new file mode 100644
index 000000000000..0f375e24142b
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_ReInitializeReplication.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-07-01",
+ "body": {
+ "location": "eastus",
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_ReplicationStatus.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_ReplicationStatus.json
new file mode 100644
index 000000000000..9f4d8f6b3d9a
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_ReplicationStatus.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-07-01",
+ "body": {
+ "location": "eastus",
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "healthy": true,
+ "relationshipStatus": "Idle",
+ "mirrorState": "Mirrored",
+ "totalProgress": "1048576",
+ "errorMessage": ""
+ }
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_ResyncReplication.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_ResyncReplication.json
new file mode 100644
index 000000000000..0f375e24142b
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_ResyncReplication.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-07-01",
+ "body": {
+ "location": "eastus",
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_Revert.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_Revert.json
new file mode 100644
index 000000000000..70bdff55b81f
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_Revert.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-07-01",
+ "body": {
+ "snapshotId": "/subscriptions/D633CC2E-722B-4AE1-B636-BBD9E4C60ED9/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_Update.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_Update.json
new file mode 100644
index 000000000000..b48d51ea2cb6
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/examples/Volumes_Update.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "D633CC2E-722B-4AE1-B636-BBD9E4C60ED9",
+ "resourceGroupName": "myRG",
+ "accountName": "account1",
+ "poolName": "pool1",
+ "volumeName": "volume1",
+ "api-version": "2020-07-01",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subscriptionId/resourceGroups/resourceGroup/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1",
+ "name": "account1/pool1/volume1",
+ "type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes",
+ "location": "eastus",
+ "properties": {
+ "fileSystemId": "9760acf5-4638-11e7-9bdb-020073ca7778",
+ "creationToken": "some-amazing-filepath",
+ "usageThreshold": 107374182400,
+ "serviceLevel": "Premium",
+ "provisioningState": "Succeeded",
+ "throughputMibps": 128.0,
+ "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/netapp.json b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/netapp.json
new file mode 100644
index 000000000000..8db29d7474b3
--- /dev/null
+++ b/specification/netapp/resource-manager/Microsoft.NetApp/stable/2020-07-01/netapp.json
@@ -0,0 +1,4796 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Microsoft NetApp",
+ "description": "Microsoft NetApp Azure Resource Provider specification",
+ "version": "2020-07-01",
+ "x-ms-code-generation-settings": {
+ "name": "AzureNetAppFilesManagementClient"
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "schemes": [
+ "https"
+ ],
+ "host": "management.azure.com",
+ "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.NetApp/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "summary": "Describes the Resource Provider",
+ "description": "Lists all of the available Microsoft.NetApp Rest API operations",
+ "operationId": "Operations_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "NetApp Resource"
+ ],
+ "summary": "Check resource name availability",
+ "description": "Check if a resource name is available.",
+ "operationId": "NetAppResource_CheckNameAvailability",
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "description": "Name availability request.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ResourceNameAvailabilityRequest"
+ },
+ "x-ms-client-flatten": true
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/location"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CheckAvailabilityResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "CheckNameAvailability": {
+ "$ref": "examples/CheckNameAvailability.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkFilePathAvailability": {
+ "post": {
+ "tags": [
+ "NetApp Resource"
+ ],
+ "summary": "Check file path availability",
+ "description": "Check if a file path is available.",
+ "operationId": "NetAppResource_CheckFilePathAvailability",
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "description": "File path availability request.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ResourceNameAvailabilityRequest"
+ },
+ "x-ms-client-flatten": true
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/location"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CheckAvailabilityResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "CheckFilePathAvailability": {
+ "$ref": "examples/CheckFilePathAvailability.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkQuotaAvailability": {
+ "post": {
+ "tags": [
+ "NetApp Resource"
+ ],
+ "summary": "Check quota availability",
+ "description": "Check if a quota is available.",
+ "operationId": "NetAppResource_CheckQuotaAvailability",
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "description": "Quota availability request.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/QuotaAvailabilityRequest"
+ },
+ "x-ms-client-flatten": true
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/location"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CheckAvailabilityResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "CheckQuotaAvailability": {
+ "$ref": "examples/CheckQuotaAvailability.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts": {
+ "get": {
+ "summary": "Describe all NetApp Accounts in a resource group",
+ "description": "List and describe all NetApp accounts in the resource group.",
+ "tags": [
+ "NetApp Accounts"
+ ],
+ "operationId": "Accounts_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/netAppAccountList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Accounts_List": {
+ "$ref": "examples/Accounts_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}": {
+ "get": {
+ "summary": "Describe a NetApp Account",
+ "description": "Get the NetApp account",
+ "tags": [
+ "NetApp Accounts"
+ ],
+ "operationId": "Accounts_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/netAppAccount"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Accounts_Get": {
+ "$ref": "examples/Accounts_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "NetApp Accounts"
+ ],
+ "operationId": "Accounts_CreateOrUpdate",
+ "summary": "Create or update a NetApp account",
+ "description": "Create or update the specified NetApp account within the resource group",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "NetApp Account object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/netAppAccount"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - account updated",
+ "schema": {
+ "$ref": "#/definitions/netAppAccount"
+ }
+ },
+ "201": {
+ "description": "Account created",
+ "schema": {
+ "$ref": "#/definitions/netAppAccount"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Accounts_CreateOrUpdate": {
+ "$ref": "examples/Accounts_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "NetApp Accounts"
+ ],
+ "operationId": "Accounts_Delete",
+ "summary": "Delete a NetApp account",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "description": "Delete the specified NetApp account",
+ "responses": {
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Accounts_Delete": {
+ "$ref": "examples/Accounts_Delete.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "NetApp Accounts"
+ ],
+ "operationId": "Accounts_Update",
+ "summary": "Update a NetApp account",
+ "description": "Patch the specified NetApp account",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "NetApp Account object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/netAppAccountPatch"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - account updated",
+ "schema": {
+ "$ref": "#/definitions/netAppAccount"
+ }
+ },
+ "201": {
+ "description": "OK - account created",
+ "schema": {
+ "$ref": "#/definitions/netAppAccount"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Accounts_Update": {
+ "$ref": "examples/Accounts_Update.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools": {
+ "get": {
+ "summary": "Describe all Capacity Pools",
+ "description": "List all capacity pools in the NetApp Account",
+ "tags": [
+ "Capacity Pools"
+ ],
+ "operationId": "Pools_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/capacityPoolList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Pools_List": {
+ "$ref": "examples/Pools_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}": {
+ "get": {
+ "summary": "Describe a Capacity Pool",
+ "description": "Get details of the specified capacity pool",
+ "tags": [
+ "Capacity Pools"
+ ],
+ "operationId": "Pools_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/capacityPool"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Pools_Get": {
+ "$ref": "examples/Pools_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Capacity Pools"
+ ],
+ "operationId": "Pools_CreateOrUpdate",
+ "summary": "Create or Update the specified capacity pool within the resource group",
+ "description": "Create or Update a capacity pool",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Capacity pool object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/capacityPool"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - pool updated",
+ "schema": {
+ "$ref": "#/definitions/capacityPool"
+ }
+ },
+ "201": {
+ "description": "Pool created",
+ "schema": {
+ "$ref": "#/definitions/capacityPool"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Pools_CreateOrUpdate": {
+ "$ref": "examples/Pools_CreateOrUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Capacity Pools"
+ ],
+ "operationId": "Pools_Update",
+ "summary": "Update a capacity pool",
+ "description": "Patch the specified capacity pool",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Capacity pool object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/capacityPoolPatch"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/capacityPool"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Pools_Update": {
+ "$ref": "examples/Pools_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Capacity Pools"
+ ],
+ "operationId": "Pools_Delete",
+ "summary": "Delete a capacity pool",
+ "description": "Delete the specified capacity pool",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Pools_Delete": {
+ "$ref": "examples/Pools_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes": {
+ "get": {
+ "summary": "Describe all volumes",
+ "description": "List all volumes within the capacity pool",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "tags": [
+ "Volumes"
+ ],
+ "operationId": "Volumes_List",
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/volumeList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Volumes_List": {
+ "$ref": "examples/Volumes_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}": {
+ "get": {
+ "tags": [
+ "Volumes"
+ ],
+ "operationId": "Volumes_Get",
+ "summary": "Describe a volume",
+ "description": "Get the details of the specified volume",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/volume"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Volumes_Get": {
+ "$ref": "examples/Volumes_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Volumes"
+ ],
+ "operationId": "Volumes_CreateOrUpdate",
+ "summary": "Create or Update a volume",
+ "description": "Create or update the specified volume within the capacity pool",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Volume object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/volume"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Ok - volume updated",
+ "schema": {
+ "$ref": "#/definitions/volume"
+ }
+ },
+ "201": {
+ "description": "Volume created",
+ "schema": {
+ "$ref": "#/definitions/volume"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_CreateOrUpdate": {
+ "$ref": "examples/Volumes_CreateOrUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Volumes"
+ ],
+ "operationId": "Volumes_Update",
+ "summary": "Update a volume",
+ "description": "Patch the specified volume",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Volume object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/volumePatch"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/volume"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_Update": {
+ "$ref": "examples/Volumes_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Volumes"
+ ],
+ "operationId": "Volumes_Delete",
+ "summary": "Delete a volume",
+ "description": "Delete the specified volume",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_Delete": {
+ "$ref": "examples/Volumes_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/revert": {
+ "post": {
+ "tags": [
+ "Volumes Revert"
+ ],
+ "summary": "Revert a volume to one of its snapshots",
+ "description": "Revert a volume to the snapshot specified in the body",
+ "operationId": "Volumes_Revert",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Object for snapshot to revert supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/volumeRevert"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - terminal state"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_Revert": {
+ "$ref": "examples/Volumes_Revert.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/breakReplication": {
+ "post": {
+ "tags": [
+ "Volumes Replication"
+ ],
+ "summary": "Break volume replication",
+ "description": "Break the replication connection on the destination volume",
+ "operationId": "Volumes_BreakReplication",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Optional body to force break the replication.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/breakReplicationRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - terminal state"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_BreakReplication": {
+ "$ref": "examples/Volumes_BreakReplication.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/replicationStatus": {
+ "get": {
+ "tags": [
+ "Volumes Replication"
+ ],
+ "summary": "Get volume replication status",
+ "description": "Get the status of the replication",
+ "operationId": "Volumes_ReplicationStatus",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/replicationStatus"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Volumes_ReplicationStatus": {
+ "$ref": "examples/Volumes_ReplicationStatus.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/resyncReplication": {
+ "post": {
+ "tags": [
+ "Volumes Replication"
+ ],
+ "summary": "Resync volume replication",
+ "description": "Resync the connection on the destination volume. If the operation is ran on the source volume it will reverse-resync the connection and sync from source to destination.",
+ "operationId": "Volumes_ResyncReplication",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - terminal state"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_ResyncReplication": {
+ "$ref": "examples/Volumes_ResyncReplication.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/deleteReplication": {
+ "post": {
+ "tags": [
+ "Volumes Replication"
+ ],
+ "summary": "Delete volume replication",
+ "description": "Delete the replication connection on the destination volume, and send release to the source replication",
+ "operationId": "Volumes_DeleteReplication",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - terminal state"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_DeleteReplication": {
+ "$ref": "examples/Volumes_DeleteReplication.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/authorizeReplication": {
+ "post": {
+ "tags": [
+ "Volumes Replication"
+ ],
+ "summary": "Authorize source volume replication",
+ "description": "Authorize the replication connection on the source volume",
+ "operationId": "Volumes_AuthorizeReplication",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Authorize request object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/authorizeRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - terminal state"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_AuthorizeReplication": {
+ "$ref": "examples/Volumes_AuthorizeReplication.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/reinitializeReplication": {
+ "post": {
+ "tags": [
+ "Volumes Replication"
+ ],
+ "summary": "ReInitialize volume replication",
+ "description": "Re-Initializes the replication connection on the destination volume",
+ "operationId": "Volumes_ReInitializeReplication",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - terminal state"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_ReInitializeReplication": {
+ "$ref": "examples/Volumes_ReInitializeReplication.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/poolChange": {
+ "post": {
+ "tags": [
+ "Pool Change"
+ ],
+ "summary": "Change pool for volume",
+ "description": "Moves volume to another pool",
+ "operationId": "Volumes_PoolChange",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Move volume to the pool supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/poolChangeRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - terminal state"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Volumes_AuthorizeReplication": {
+ "$ref": "examples/Volumes_PoolChange.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/snapshots": {
+ "get": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_List",
+ "summary": "Describe all snapshots",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "description": "List all snapshots associated with the volume",
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/snapshotsList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Snapshots_List": {
+ "$ref": "examples/Snapshots_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/snapshots/{snapshotName}": {
+ "get": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_Get",
+ "summary": "Describe a snapshot",
+ "description": "Get details of the specified snapshot",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/SnapshotName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/snapshot"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Snapshots_Get": {
+ "$ref": "examples/Snapshots_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_Create",
+ "summary": "Create a snapshot",
+ "description": "Create the specified snapshot within the given volume",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Snapshot object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/snapshot"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/SnapshotName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Snapshot created",
+ "schema": {
+ "$ref": "#/definitions/snapshot"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Snapshots_Create": {
+ "$ref": "examples/Snapshots_Create.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_Update",
+ "summary": "Update a snapshot",
+ "description": "Patch a snapshot",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Snapshot object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/snapshotPatch"
+ }
+ },
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/SnapshotName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/snapshot"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Update request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Snapshots_Update": {
+ "$ref": "examples/Snapshots_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_Delete",
+ "summary": "Delete a snapshot",
+ "description": "Delete snapshot",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/SnapshotName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted -- Create, update or delete request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Snapshots_Delete": {
+ "$ref": "examples/Snapshots_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/snapshotPolicies": {
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "get": {
+ "tags": [
+ "Snapshot Policy"
+ ],
+ "operationId": "SnapshotPolicies_List",
+ "description": "List snapshot policy",
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/snapshotPoliciesList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "SnapshotPolicies_List": {
+ "$ref": "examples/SnapshotPolicies_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/snapshotPolicies/{snapshotPolicyName}": {
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/SnapshotPolicyName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "get": {
+ "tags": [
+ "Snapshot Policy"
+ ],
+ "operationId": "SnapshotPolicies_Get",
+ "description": "Get a snapshot Policy",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/snapshotPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "SnapshotPolicies_Get": {
+ "$ref": "examples/SnapshotPolicies_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Snapshot Policy"
+ ],
+ "operationId": "SnapshotPolicies_Create",
+ "description": "Create a snapshot policy",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Snapshot policy object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/snapshotPolicy"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - snapshot Policy updated",
+ "schema": {
+ "$ref": "#/definitions/snapshotPolicy"
+ }
+ },
+ "201": {
+ "description": "Snapshot Policy created",
+ "schema": {
+ "$ref": "#/definitions/snapshotPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": false,
+ "x-ms-examples": {
+ "SnapshotPolicies_Create": {
+ "$ref": "examples/SnapshotPolicies_Create.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Snapshot Policy"
+ ],
+ "operationId": "SnapshotPolicies_Update",
+ "description": "Patch a snapshot policy",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Snapshot policy object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/snapshotPolicyPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/snapshotPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "SnapshotPolicies_Update": {
+ "$ref": "examples/SnapshotPolicies_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Snapshot Policy"
+ ],
+ "operationId": "SnapshotPolicies_Delete",
+ "description": "Delete snapshot policy",
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted -- Create or update request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "SnapshotPolicies_Delete": {
+ "$ref": "examples/SnapshotPolicies_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/snapshotPolicies/{snapshotPolicyName}/listVolumes": {
+ "get": {
+ "tags": [
+ "Snapshot Policy List Volumes"
+ ],
+ "summary": "Get volumes associated with snapshot policy",
+ "description": "Get volumes associated with snapshot policy",
+ "operationId": "SnapshotPolicies_ListVolumes",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/SnapshotPolicyName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/snapshotPolicyVolumeList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "SnapshotPolicies_ListVolumes": {
+ "$ref": "examples/SnapshotPolicies_ListVolumes.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/accountBackups": {
+ "get": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "List Backups for a Netapp Account",
+ "description": "List all Backups for a Netapp Account",
+ "operationId": "AccountBackups_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backupsList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "AccountBackups_List": {
+ "$ref": "examples/Backups_Account_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/accountBackups/{backupName}": {
+ "get": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "Get Backup for a Netapp Account",
+ "description": "Get Backup for a Netapp Account",
+ "operationId": "AccountBackups_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/BackupName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "AccountBackups_Get": {
+ "$ref": "examples/Backups_Account_Get.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "Delete Backup for a Netapp Account",
+ "description": "Delete Backup for a Netapp Account",
+ "operationId": "AccountBackups_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/BackupName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted -- Create or update request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "AccountBackups_Delete": {
+ "$ref": "examples/Backups_Account_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/backups": {
+ "get": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "List Backups",
+ "description": "List all backups for a volume",
+ "operationId": "Backups_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backupsList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Backups_List": {
+ "$ref": "examples/Backups_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/backups/{backupName}": {
+ "get": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "Get a backup",
+ "description": "Get a particular backup of the volume",
+ "operationId": "Backups_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/BackupName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Backups_Get": {
+ "$ref": "examples/Backups_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "Create a backup",
+ "description": "Create a backup for the volume",
+ "operationId": "Backups_Create",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/BackupName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Backup object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/backup"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK created",
+ "schema": {
+ "$ref": "#/definitions/backup"
+ }
+ },
+ "201": {
+ "description": "Backup created",
+ "schema": {
+ "$ref": "#/definitions/backup"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Backups_Create": {
+ "$ref": "examples/Backups_Create.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "Patch a backup",
+ "description": "Patch a backup for the volume",
+ "operationId": "Backups_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/BackupName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Backup object supplied in the body of the operation.",
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/backupPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Backups_Update": {
+ "$ref": "examples/Backups_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Backups"
+ ],
+ "summary": "Delete backup",
+ "description": "Delete a backup of the volume",
+ "operationId": "Backups_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/PoolName"
+ },
+ {
+ "$ref": "#/parameters/VolumeName"
+ },
+ {
+ "$ref": "#/parameters/BackupName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted -- Create or update request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Backups_Delete": {
+ "$ref": "examples/Backups_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/backupPolicies": {
+ "get": {
+ "tags": [
+ "Backup Policy"
+ ],
+ "summary": "List backup policies",
+ "description": "List backup policies for Netapp Account",
+ "operationId": "BackupPolicies_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backupPoliciesList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Backups_List": {
+ "$ref": "examples/BackupPolicies_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/backupPolicies/{backupPolicyName}": {
+ "get": {
+ "tags": [
+ "Backup Policy"
+ ],
+ "summary": "Get a backup Policy",
+ "description": "Get a particular backup Policy",
+ "operationId": "BackupPolicies_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/BackupPolicyName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backupPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Backups_Get": {
+ "$ref": "examples/BackupPolicies_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Backup Policy"
+ ],
+ "summary": "Create a backup policy",
+ "description": "Create a backup policy for Netapp Account",
+ "operationId": "BackupPolicies_Create",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/BackupPolicyName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Backup policy object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/backupPolicy"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Backup Policy created",
+ "schema": {
+ "$ref": "#/definitions/backupPolicy"
+ }
+ },
+ "201": {
+ "description": "Backup created",
+ "schema": {
+ "$ref": "#/definitions/backupPolicy"
+ }
+ },
+ "202": {
+ "description": "Accepted -- Create request accepted; operation will complete asynchronously"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "BackupPolicies_Create": {
+ "$ref": "examples/BackupPolicies_Create.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Backup Policy"
+ ],
+ "summary": "Patch a backup policy",
+ "description": "Patch a backup policy for Netapp Account",
+ "operationId": "BackupPolicies_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/BackupPolicyName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "body",
+ "description": "Backup policy object supplied in the body of the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/backupPolicyPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/backupPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "BackupPolicies_Update": {
+ "$ref": "examples/BackupPolicies_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Backup Policy"
+ ],
+ "summary": "Delete a backup policy",
+ "description": "Delete backup policy",
+ "operationId": "BackupPolicies_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/BackupPolicyName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted -- Create or update request accepted; operation will complete asynchronously"
+ },
+ "204": {
+ "description": "NoContent -- Resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Backups_Delete": {
+ "$ref": "examples/BackupPolicies_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/vaults": {
+ "get": {
+ "tags": [
+ "Vaults"
+ ],
+ "summary": "List vaults",
+ "description": "List vaults for a Netapp Account",
+ "operationId": "Vaults_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/AccountName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/vaultList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed."
+ }
+ },
+ "x-ms-examples": {
+ "Vaults_List": {
+ "$ref": "examples/Vaults_List.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "OperationListResult": {
+ "description": "Result of the request to list Cloud Volume 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 Storage operations supported by the Storage resource provider."
+ }
+ }
+ },
+ "Operation": {
+ "description": "Microsoft.NetApp 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 NetApp.",
+ "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": "Operation description.",
+ "type": "string"
+ }
+ }
+ },
+ "origin": {
+ "type": "string",
+ "description": "The origin of operations."
+ },
+ "properties": {
+ "$ref": "#/definitions/OperationProperties",
+ "description": "Properties of operation, include metric specifications.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "OperationProperties": {
+ "description": "Properties of operation, include metric specifications.",
+ "properties": {
+ "serviceSpecification": {
+ "$ref": "#/definitions/ServiceSpecification",
+ "description": "One property of operation, include metric specifications."
+ }
+ }
+ },
+ "ServiceSpecification": {
+ "description": "One property of operation, include metric specifications.",
+ "properties": {
+ "metricSpecifications": {
+ "description": "Metric specifications of operation.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricSpecification"
+ }
+ }
+ }
+ },
+ "MetricSpecification": {
+ "description": "Metric specification of operation.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of metric specification."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Display name of metric specification."
+ },
+ "displayDescription": {
+ "type": "string",
+ "description": "Display description of metric specification."
+ },
+ "unit": {
+ "type": "string",
+ "description": "Unit could be Bytes or Count."
+ },
+ "dimensions": {
+ "description": "Dimensions of blobs, including blob type and access tier.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Dimension"
+ }
+ },
+ "aggregationType": {
+ "type": "string",
+ "description": "Aggregation type could be Average."
+ },
+ "fillGapWithZero": {
+ "type": "boolean",
+ "description": "The property to decide fill gap with zero or not."
+ },
+ "category": {
+ "type": "string",
+ "description": "The category this metric specification belong to, could be Capacity."
+ },
+ "resourceIdDimensionNameOverride": {
+ "type": "string",
+ "description": "Account Resource Id."
+ }
+ }
+ },
+ "Dimension": {
+ "description": "Dimension of blobs, possibly be blob type or access tier.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Display name of dimension."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Display name of dimension."
+ }
+ }
+ },
+ "CheckAvailabilityResponse": {
+ "description": "Information regarding availability of a resource.",
+ "type": "object",
+ "properties": {
+ "isAvailable": {
+ "description": "true indicates name is valid and available. false indicates the name is invalid, unavailable, or both.",
+ "type": "boolean"
+ },
+ "reason": {
+ "description": "Invalid indicates the name provided does not match Azure App Service naming requirements. AlreadyExists indicates that the name is already in use and is therefore unavailable.",
+ "enum": [
+ "Invalid",
+ "AlreadyExists"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "InAvailabilityReasonType",
+ "modelAsString": true
+ }
+ },
+ "message": {
+ "description": "If reason == invalid, provide the user with the reason why the given name is invalid, and provide the resource naming requirements so that the user can select a valid name. If reason == AlreadyExists, explain that resource name is already in use, and direct them to select a different name.",
+ "type": "string"
+ }
+ }
+ },
+ "ResourceNameAvailabilityRequest": {
+ "description": "Resource name availability request content.",
+ "required": [
+ "name",
+ "type",
+ "resourceGroup"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Resource name to verify.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Resource type used for verification.",
+ "enum": [
+ "Microsoft.NetApp/netAppAccounts",
+ "Microsoft.NetApp/netAppAccounts/capacityPools",
+ "Microsoft.NetApp/netAppAccounts/capacityPools/volumes",
+ "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "CheckNameResourceTypes",
+ "modelAsString": true
+ }
+ },
+ "resourceGroup": {
+ "description": "Resource group name.",
+ "type": "string"
+ }
+ }
+ },
+ "QuotaAvailabilityRequest": {
+ "description": "Quota availability request content.",
+ "required": [
+ "name",
+ "type",
+ "resourceGroup"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the resource to verify.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Resource type used for verification.",
+ "enum": [
+ "Microsoft.NetApp/netAppAccounts",
+ "Microsoft.NetApp/netAppAccounts/capacityPools",
+ "Microsoft.NetApp/netAppAccounts/capacityPools/volumes",
+ "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "CheckQuotaNameResourceTypes",
+ "modelAsString": true
+ }
+ },
+ "resourceGroup": {
+ "description": "Resource group name.",
+ "type": "string"
+ }
+ }
+ },
+ "netAppAccountList": {
+ "description": "List of NetApp account resources",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "Multiple NetApp accounts",
+ "items": {
+ "$ref": "#/definitions/netAppAccount"
+ }
+ }
+ }
+ },
+ "netAppAccount": {
+ "description": "NetApp account resource",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "NetApp Account properties",
+ "$ref": "#/definitions/accountProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "netAppAccountPatch": {
+ "description": "NetApp account patch resource",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location"
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "NetApp Account properties",
+ "$ref": "#/definitions/accountProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "accountProperties": {
+ "description": "NetApp account properties",
+ "type": "object",
+ "properties": {
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure lifecycle management"
+ },
+ "activeDirectories": {
+ "description": "Active Directories",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/activeDirectory"
+ }
+ }
+ }
+ },
+ "activeDirectory": {
+ "description": "Active Directory",
+ "type": "object",
+ "properties": {
+ "activeDirectoryId": {
+ "type": "string",
+ "description": "Id of the Active Directory"
+ },
+ "username": {
+ "type": "string",
+ "description": "Username of Active Directory domain administrator"
+ },
+ "password": {
+ "type": "string",
+ "description": "Plain text password of Active Directory domain administrator, value is masked in the response"
+ },
+ "domain": {
+ "type": "string",
+ "description": "Name of the Active Directory domain"
+ },
+ "dns": {
+ "type": "string",
+ "description": "Comma separated list of DNS server IP addresses (IPv4 only) for the Active Directory domain",
+ "pattern": "^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)((, ?)(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))*$",
+ "example": "101.102.103.104,101.102.103.105"
+ },
+ "status": {
+ "type": "string",
+ "description": "Status of the Active Directory",
+ "readOnly": true,
+ "enum": [
+ "Created",
+ "Updating",
+ "InUse",
+ "Deleted",
+ "Error"
+ ],
+ "x-ms-enum": {
+ "name": "ActiveDirectoryStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Created",
+ "description": "Active Directory created but not in use"
+ },
+ {
+ "value": "InUse",
+ "description": "Active Directory in use by SMB Volume"
+ },
+ {
+ "value": "Deleted",
+ "description": "Active Directory Deleted"
+ },
+ {
+ "value": "Error",
+ "description": "Error with the Active Directory"
+ },
+ {
+ "value": "Updating",
+ "description": "Active Directory Updating"
+ }
+ ]
+ }
+ },
+ "statusDetails": {
+ "type": "string",
+ "description": "Any details in regards to the Status of the Active Directory",
+ "readOnly": true
+ },
+ "smbServerName": {
+ "type": "string",
+ "description": "NetBIOS name of the SMB server. This name will be registered as a computer account in the AD and used to mount volumes"
+ },
+ "organizationalUnit": {
+ "type": "string",
+ "description": "The Organizational Unit (OU) within the Windows Active Directory"
+ },
+ "site": {
+ "type": "string",
+ "description": "The Active Directory site the service will limit Domain Controller discovery to"
+ },
+ "backupOperators": {
+ "description": "Users to be added to the Built-in Backup Operator active directory group. A list of unique usernames without domain specifier",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "maxLength": 255,
+ "minLength": 1,
+ "example": [
+ "user1",
+ "user2"
+ ]
+ }
+ },
+ "kdcIP": {
+ "type": "string",
+ "pattern": "^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)((, ?)(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))*$",
+ "description": "kdc server IP addresses for the active directory machine. This optional parameter is used only while creating kerberos volume.",
+ "example": "101.102.103.104"
+ },
+ "adName": {
+ "type": "string",
+ "maxLength": 64,
+ "minLength": 1,
+ "description": "Name of the active directory machine. This optional parameter is used only while creating kerberos volume",
+ "example": "ADServerName"
+ },
+ "serverRootCACertificate": {
+ "type": "string",
+ "maxLength": 10240,
+ "minLength": 1,
+ "description": "When LDAP over SSL/TLS is enabled, the LDAP client is required to have base64 encoded Active Directory Certificate Service's self-signed root CA certificate, this optional parameter is used only for dual protocol with LDAP user-mapping volumes.",
+ "example": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURuVENDQW9XZ0F3SUJBZ0lRR3FXdnRxeHBvSTFJV3Z4VGdJbElWREFOQmdrcWhraUc5dzBCQVFzRkFEQlYKTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEWTI5dE1SY3dGUVlLQ1pJbWlaUHlMR1FCR1JZSGFHRnlhV3R5WWpFbApNQ01HQTFVRUF4TWNhR0Z5YVd0eVlpMVhTVTR0TWtKUFZrRkZTMEkwTkVJdFEwRXRNakFlRncweU1EQTFNRFV3Ck56TTVORGxhRncweU1EQTFNRFl3TnpRNU5EaGFNRlV4RXpBUkJnb0praWFKay9Jc1pBRVpGZ05qYjIweEZ6QVYKQmdvSmtpYUprL0lzWkFFWkZnZG9ZWEpwYTNKaU1TVXdJd1lEVlFRREV4eG9ZWEpwYTNKaUxWZEpUaTB5UWs5VwpRVVZMUWpRMFFpMURRUzB5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFqMHByCnhaaXpNaDBqYnRwN1ZOc0JrRVJ2MVpZT0MzMEtqaGRWdEExRm1MeFM2cXlycmpMZUdXOXRSd2ZnUkR0eVBodTIKZVJTcVpTUjF6Z1hZR0s0Nys3Y3F0YnB2UElOektCb0dOWERIVTNxVWlleXJWSjFDVzRKNjJodUdrbUV1VVVkMApKMXBxNTVxbjk1SmRUbWh1dmZlTUxxeHB5c01nbGVnY281ZFhoN0hsQkhwaTNKMFN4ZnhVWmxKMVZiOFJZVEZhCkJiMGFlTVZaRzRKeVREaktiMlR1TmFXOG1aUE5vOFBMRDRocjdndFNZUEQvQ1dVVGV5QlpoZC9LTzNPczlWVEIKYmpLUGtWd0J2WEs2SlFMSGprNFBHS3VYZDhaWVFyajBtOWNIZDNmcWNYTXlQUnQ2TlJ4ak0yMTUxckFzSkVhNgpWZC9ta056akpXalBrT2VZUVFJREFRQUJvMmt3WnpBVEJna3JCZ0VFQVlJM0ZBSUVCaDRFQUVNQVFUQU9CZ05WCkhROEJBZjhFQkFNQ0FZWXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QWRCZ05WSFE0RUZnUVVDVEc2ODJSay9kMysKWGtHa0VMakRFMjI4ZjNnd0VBWUpLd1lCQkFHQ054VUJCQU1DQVFBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQgpBR1RjTTNnWExIU05wS014RHEvUFpZbWZCMmNlN3VhMmxxbXpzZSt4QmthSTE0WXdzZE5ZQjZBVTNFWDM3QWpZCjd3bm9xQzY1N0U2RVhTODVDckoyNXJNTHo4OEtONGI3cUg5RUowSS9XVHg5YTdUT0ZENENWQThuL0xwNGh1Ym4KNlBFalY5NFlZWXBXTG1hTkkvbGFReWsxSHVJbDFSTCttVDFnSWQ4ZWZXZ1UvNmlVVEw3eGMrdjkyNHBuTHhISwpOSnNTV3c0NFk5a0R5SU9KOXFjWUlBN1lhTkxPZTRjSysvQlRvdDh0dVVKT1hHLzdBRmtxR2EyQVA4MmFZOStKCnkwSmU2OG5nTHJ1dVU4VHpneVpqdkFHcTRrVEVOdWFoaFdHVC9KWkEzOXhSNUV4MmNMUUplcE5NdnlZbUZ3Z1UKME8zYlA0OWNBVFVCMXoyQ3Y5aTRQbVk9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
+ },
+ "aesEncryption": {
+ "type": "boolean",
+ "description": "If enabled, AES encryption will be enabled for SMB communication."
+ },
+ "ldapSigning": {
+ "type": "boolean",
+ "description": "Specifies whether or not the LDAP traffic needs to be signed."
+ }
+ }
+ },
+ "capacityPoolList": {
+ "description": "List of capacity pool resources",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of Capacity pools",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/capacityPool"
+ }
+ }
+ }
+ },
+ "capacityPool": {
+ "description": "Capacity pool resource",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location",
+ "properties"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Capacity pool properties",
+ "$ref": "#/definitions/poolProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "poolProperties": {
+ "description": "Pool properties",
+ "type": "object",
+ "required": [
+ "size",
+ "serviceLevel"
+ ],
+ "properties": {
+ "poolId": {
+ "title": "poolId",
+ "type": "string",
+ "readOnly": true,
+ "description": "UUID v4 used to identify the Pool",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca7778"
+ },
+ "size": {
+ "title": "size",
+ "type": "integer",
+ "format": "int64",
+ "description": "Provisioned size of the pool (in bytes). Allowed values are in 4TiB chunks (value must be multiply of 4398046511104).",
+ "minimum": 4398046511104,
+ "maximum": 549755813888000
+ },
+ "serviceLevel": {
+ "title": "serviceLevel",
+ "type": "string",
+ "description": "The service level of the file system",
+ "enum": [
+ "Standard",
+ "Premium",
+ "Ultra"
+ ],
+ "x-ms-enum": {
+ "name": "ServiceLevel",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Standard",
+ "description": "Standard service level"
+ },
+ {
+ "value": "Premium",
+ "description": "Premium service level"
+ },
+ {
+ "value": "Ultra",
+ "description": "Ultra service level"
+ }
+ ]
+ },
+ "example": "Ultra",
+ "default": "Premium"
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure lifecycle management"
+ },
+ "totalThroughputMibps": {
+ "type": "number",
+ "description": "Total throughput of pool in Mibps",
+ "example": 164.221,
+ "readOnly": true
+ },
+ "utilizedThroughputMibps": {
+ "type": "number",
+ "description": "Utilized throughput of pool in Mibps",
+ "example": 164.221,
+ "readOnly": true
+ },
+ "qosType": {
+ "title": "qosType",
+ "type": "string",
+ "description": "The qos type of the pool",
+ "enum": [
+ "Auto",
+ "Manual"
+ ],
+ "x-ms-enum": {
+ "name": "qosType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Auto",
+ "description": "qos type Auto"
+ },
+ {
+ "value": "Manual",
+ "description": "qos type Manual"
+ }
+ ]
+ },
+ "example": "Manual",
+ "default": "Auto"
+ }
+ }
+ },
+ "capacityPoolPatch": {
+ "description": "Capacity pool patch resource",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location"
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Capacity pool properties",
+ "$ref": "#/definitions/poolPatchProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "poolPatchProperties": {
+ "description": "Patchable pool properties",
+ "type": "object",
+ "properties": {
+ "size": {
+ "title": "size",
+ "type": "integer",
+ "format": "int64",
+ "description": "Provisioned size of the pool (in bytes). Allowed values are in 4TiB chunks (value must be multiply of 4398046511104).",
+ "minimum": 4398046511104,
+ "maximum": 549755813888000,
+ "default": 4398046511104
+ },
+ "qosType": {
+ "title": "qosType",
+ "type": "string",
+ "description": "The qos type of the pool",
+ "enum": [
+ "Auto",
+ "Manual"
+ ],
+ "x-ms-enum": {
+ "name": "qosType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Auto",
+ "description": "qos type Auto"
+ },
+ {
+ "value": "Manual",
+ "description": "qos type Manual"
+ }
+ ]
+ },
+ "example": "Manual",
+ "default": "Auto"
+ }
+ }
+ },
+ "volumeList": {
+ "description": "List of volume resources",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of volumes",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/volume"
+ }
+ }
+ }
+ },
+ "volume": {
+ "description": "Volume resource",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location",
+ "properties"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Volume properties",
+ "$ref": "#/definitions/volumeProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "resourceTags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Tags are a list of key-value pairs that describe the resource"
+ },
+ "volumeProperties": {
+ "description": "Volume properties",
+ "type": "object",
+ "required": [
+ "creationToken",
+ "usageThreshold",
+ "subnetId"
+ ],
+ "properties": {
+ "fileSystemId": {
+ "title": "FileSystem ID",
+ "type": "string",
+ "readOnly": true,
+ "description": "Unique FileSystem Identifier.",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca7778"
+ },
+ "creationToken": {
+ "title": "Creation Token or File Path",
+ "type": "string",
+ "description": "A unique file path for the volume. Used when creating mount targets",
+ "pattern": "^[a-zA-Z][a-zA-Z0-9\\-]{0,79}$",
+ "minLength": 1,
+ "maxLength": 80,
+ "example": "some-amazing-filepath"
+ },
+ "serviceLevel": {
+ "title": "serviceLevel",
+ "type": "string",
+ "description": "The service level of the file system",
+ "enum": [
+ "Standard",
+ "Premium",
+ "Ultra"
+ ],
+ "x-ms-enum": {
+ "name": "ServiceLevel",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Standard",
+ "description": "Standard service level"
+ },
+ {
+ "value": "Premium",
+ "description": "Premium service level"
+ },
+ {
+ "value": "Ultra",
+ "description": "Ultra service level"
+ }
+ ]
+ },
+ "example": "Ultra",
+ "default": "Premium"
+ },
+ "usageThreshold": {
+ "title": "usageThreshold",
+ "type": "integer",
+ "format": "int64",
+ "description": "Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes.",
+ "minimum": 107374182400,
+ "maximum": 109951162777600,
+ "default": 107374182400,
+ "example": 107374182400
+ },
+ "exportPolicy": {
+ "title": "exportPolicy",
+ "description": "Set of export policy rules",
+ "properties": {
+ "rules": {
+ "title": "Export policy rule",
+ "description": "Export policy rule",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/exportPolicyRule"
+ }
+ }
+ }
+ },
+ "protocolTypes": {
+ "title": "protocolTypes",
+ "description": "Set of protocol types",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "example": [
+ "NFSv4.1"
+ ]
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure lifecycle management"
+ },
+ "snapshotId": {
+ "title": "Snapshot ID",
+ "type": "string",
+ "description": "UUID v4 or resource identifier used to identify the Snapshot.",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}|(\\\\?([^\\/]*[\\/])*)([^\\/]+)$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca3333"
+ },
+ "backupId": {
+ "title": "Backup ID",
+ "type": "string",
+ "description": "UUID v4 or resource identifier used to identify the Backup.",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}|(\\\\?([^\\/]*[\\/])*)([^\\/]+)$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca3333"
+ },
+ "baremetalTenantId": {
+ "title": "Baremetal Tenant ID",
+ "type": "string",
+ "readOnly": true,
+ "description": "Unique Baremetal Tenant Identifier.",
+ "example": "9560acf5-4e3a-12e7-9bdb-02007cca7779"
+ },
+ "subnetId": {
+ "type": "string",
+ "description": "The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes"
+ },
+ "mountTargets": {
+ "title": "mountTargets",
+ "type": "array",
+ "description": "List of mount targets",
+ "items": {
+ "$ref": "#/definitions/mountTargetProperties"
+ }
+ },
+ "volumeType": {
+ "type": "string",
+ "description": "What type of volume is this",
+ "example": "DataProtection"
+ },
+ "dataProtection": {
+ "title": "DataProtection",
+ "description": "DataProtection type volumes include an object containing details of the replication",
+ "properties": {
+ "backup": {
+ "title": "Backup",
+ "description": "Backup Properties",
+ "type": "object",
+ "$ref": "#/definitions/volumeBackupProperties"
+ },
+ "replication": {
+ "title": "Replication",
+ "description": "Replication properties",
+ "type": "object",
+ "$ref": "#/definitions/replicationObject"
+ },
+ "snapshot": {
+ "title": "Snapshot",
+ "description": "Snapshot properties.",
+ "$ref": "#/definitions/volumeSnapshotProperties"
+ }
+ }
+ },
+ "isRestoring": {
+ "type": "boolean",
+ "description": "Restoring"
+ },
+ "snapshotDirectoryVisible": {
+ "type": "boolean",
+ "description": "If enabled (true) the volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots (default to true)."
+ },
+ "kerberosEnabled": {
+ "type": "boolean",
+ "description": "Describe if a volume is KerberosEnabled. To be use with swagger version 2020-05-01 or later",
+ "example": false,
+ "default": false
+ },
+ "securityStyle": {
+ "type": "string",
+ "description": "The security style of volume",
+ "enum": [
+ "ntfs",
+ "unix"
+ ],
+ "x-ms-enum": {
+ "name": "SecurityStyle",
+ "modelAsString": true
+ }
+ },
+ "throughputMibps": {
+ "title": "Maximum throughput in Mibps that can be achieved by this volume",
+ "type": "number",
+ "example": "128.22",
+ "maximum": 4500,
+ "minimum": 1,
+ "multipleOf": 0.001
+ }
+ }
+ },
+ "exportPolicyRule": {
+ "description": "Volume Export Policy Rule",
+ "type": "object",
+ "properties": {
+ "ruleIndex": {
+ "type": "integer",
+ "description": "Order index",
+ "format": "int32"
+ },
+ "unixReadOnly": {
+ "type": "boolean",
+ "description": "Read only access"
+ },
+ "unixReadWrite": {
+ "type": "boolean",
+ "description": "Read and write access"
+ },
+ "kerberos5ReadOnly": {
+ "type": "boolean",
+ "description": "Kerberos5 Read only access. To be use with swagger version 2020-05-01 or later",
+ "example": false,
+ "default": false
+ },
+ "kerberos5ReadWrite": {
+ "type": "boolean",
+ "description": "Kerberos5 Read and write access. To be use with swagger version 2020-05-01 or later",
+ "example": true,
+ "default": false
+ },
+ "kerberos5iReadOnly": {
+ "type": "boolean",
+ "description": "Kerberos5i Read only access. To be use with swagger version 2020-05-01 or later",
+ "example": false,
+ "default": false
+ },
+ "kerberos5iReadWrite": {
+ "type": "boolean",
+ "description": "Kerberos5i Read and write access. To be use with swagger version 2020-05-01 or later",
+ "example": true,
+ "default": false
+ },
+ "kerberos5pReadOnly": {
+ "type": "boolean",
+ "description": "Kerberos5p Read only access. To be use with swagger version 2020-05-01 or later",
+ "example": false,
+ "default": false
+ },
+ "kerberos5pReadWrite": {
+ "type": "boolean",
+ "description": "Kerberos5p Read and write access. To be use with swagger version 2020-05-01 or later",
+ "example": true,
+ "default": false
+ },
+ "cifs": {
+ "type": "boolean",
+ "description": "Allows CIFS protocol"
+ },
+ "nfsv3": {
+ "type": "boolean",
+ "description": "Allows NFSv3 protocol. Enable only for NFSv3 type volumes"
+ },
+ "nfsv41": {
+ "type": "boolean",
+ "description": "Allows NFSv4.1 protocol. Enable only for NFSv4.1 type volumes"
+ },
+ "allowedClients": {
+ "type": "string",
+ "description": "Client ingress specification as comma separated string with IPv4 CIDRs, IPv4 host addresses and host names"
+ },
+ "hasRootAccess": {
+ "type": "boolean",
+ "description": "Has root access to volume",
+ "example": true,
+ "default": true
+ }
+ }
+ },
+ "volumeBackupProperties": {
+ "description": "Volume Backup Properties",
+ "type": "object",
+ "properties": {
+ "backupPolicyId": {
+ "type": "string",
+ "description": "Backup Policy Resource ID"
+ },
+ "policyEnforced": {
+ "type": "boolean",
+ "description": "Policy Enforced"
+ },
+ "vaultId": {
+ "type": "string",
+ "description": "Vault Resource ID"
+ },
+ "backupEnabled": {
+ "type": "boolean",
+ "description": "Backup Enabled"
+ }
+ }
+ },
+ "replicationObject": {
+ "description": "Replication properties",
+ "type": "object",
+ "required": [
+ "replicationSchedule",
+ "remoteVolumeResourceId"
+ ],
+ "properties": {
+ "replicationId": {
+ "type": "string",
+ "description": "Id"
+ },
+ "endpointType": {
+ "type": "string",
+ "description": "Indicates whether the local volume is the source or destination for the Volume Replication",
+ "enum": [
+ "src",
+ "dst"
+ ],
+ "x-ms-enum": {
+ "name": "EndpointType",
+ "modelAsString": true
+ }
+ },
+ "replicationSchedule": {
+ "type": "string",
+ "description": "Schedule",
+ "enum": [
+ "_10minutely",
+ "hourly",
+ "daily"
+ ],
+ "x-ms-enum": {
+ "name": "ReplicationSchedule",
+ "modelAsString": true
+ }
+ },
+ "remoteVolumeResourceId": {
+ "type": "string",
+ "description": "The resource ID of the remote volume."
+ },
+ "remoteVolumeRegion": {
+ "type": "string",
+ "description": "The remote region for the other end of the Volume Replication."
+ }
+ }
+ },
+ "volumeSnapshotProperties": {
+ "description": "Volume Snapshot Properties",
+ "type": "object",
+ "properties": {
+ "snapshotPolicyId": {
+ "type": "string",
+ "description": "Snapshot Policy ResourceId"
+ }
+ }
+ },
+ "replicationStatus": {
+ "description": "Replication status",
+ "type": "object",
+ "properties": {
+ "healthy": {
+ "type": "boolean",
+ "description": "Replication health check"
+ },
+ "relationshipStatus": {
+ "type": "string",
+ "description": "Status of the mirror relationship",
+ "enum": [
+ "Idle",
+ "Transferring"
+ ],
+ "x-ms-enum": {
+ "name": "RelationshipStatus",
+ "modelAsString": true
+ }
+ },
+ "mirrorState": {
+ "type": "string",
+ "description": "The status of the replication",
+ "enum": [
+ "Uninitialized",
+ "Mirrored",
+ "Broken"
+ ],
+ "x-ms-enum": {
+ "name": "MirrorState",
+ "modelAsString": true
+ }
+ },
+ "totalProgress": {
+ "type": "string",
+ "description": "The progress of the replication"
+ },
+ "errorMessage": {
+ "type": "string",
+ "description": "Displays error message if the replication is in an error state"
+ }
+ }
+ },
+ "volumePatch": {
+ "description": "Volume patch resource",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location"
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Patchable volume properties",
+ "$ref": "#/definitions/volumePatchProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "volumePatchProperties": {
+ "description": "Patchable volume properties",
+ "type": "object",
+ "properties": {
+ "serviceLevel": {
+ "title": "serviceLevel",
+ "type": "string",
+ "description": "The service level of the file system",
+ "enum": [
+ "Standard",
+ "Premium",
+ "Ultra"
+ ],
+ "x-ms-enum": {
+ "name": "ServiceLevel",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Standard",
+ "description": "Standard service level"
+ },
+ {
+ "value": "Premium",
+ "description": "Premium service level"
+ },
+ {
+ "value": "Ultra",
+ "description": "Ultra service level"
+ }
+ ]
+ },
+ "example": "Ultra",
+ "default": "Premium"
+ },
+ "usageThreshold": {
+ "title": "usageThreshold",
+ "type": "integer",
+ "format": "int64",
+ "description": "Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes.",
+ "minimum": 107374182400,
+ "maximum": 109951162777600,
+ "default": 107374182400,
+ "example": 107374182400
+ },
+ "exportPolicy": {
+ "title": "exportPolicy",
+ "description": "Set of export policy rules",
+ "properties": {
+ "rules": {
+ "title": "Export policy rule",
+ "description": "Export policy rule",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/exportPolicyRule"
+ }
+ }
+ }
+ },
+ "throughputMibps": {
+ "title": "Maximum throughput in Mibps that can be achieved by this volume",
+ "type": "number",
+ "example": "128.22",
+ "maximum": 4500,
+ "minimum": 1,
+ "multipleOf": 0.001
+ },
+ "dataProtection": {
+ "title": "DataProtection",
+ "description": "DataProtection type volumes include an object containing details of the replication",
+ "properties": {
+ "backup": {
+ "title": "Backup",
+ "description": "Backup Properties",
+ "type": "object",
+ "$ref": "#/definitions/volumeBackupProperties"
+ }
+ }
+ }
+ }
+ },
+ "mountTarget": {
+ "description": "Mount Target",
+ "type": "object",
+ "required": [
+ "location",
+ "properties"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location"
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags",
+ "x-ms-client-flatten": true
+ },
+ "properties": {
+ "description": "Mount Target Properties",
+ "$ref": "#/definitions/mountTargetProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "mountTargetProperties": {
+ "description": "Mount target properties",
+ "type": "object",
+ "required": [
+ "fileSystemId"
+ ],
+ "properties": {
+ "mountTargetId": {
+ "title": "mountTargetId",
+ "type": "string",
+ "readOnly": true,
+ "description": "UUID v4 used to identify the MountTarget",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca3333"
+ },
+ "fileSystemId": {
+ "title": "fileSystemId",
+ "type": "string",
+ "description": "UUID v4 used to identify the MountTarget",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca3333"
+ },
+ "ipAddress": {
+ "title": "ipAddress",
+ "description": "The mount target's IPv4 address",
+ "type": "string",
+ "readOnly": true,
+ "example": "1.2.3.4"
+ },
+ "smbServerFqdn": {
+ "title": "smbServerFQDN",
+ "description": "The SMB server's Fully Qualified Domain Name, FQDN",
+ "type": "string",
+ "example": "fullyqualified.domainname.com"
+ }
+ }
+ },
+ "snapshotsList": {
+ "description": "List of Snapshots",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of Snapshots",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/snapshot"
+ }
+ }
+ }
+ },
+ "snapshot": {
+ "description": "Snapshot of a Volume",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "properties": {
+ "description": "Snapshot Properties",
+ "$ref": "#/definitions/snapshotProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "snapshotPatch": {
+ "description": "Snapshot patch",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {}
+ },
+ "snapshotProperties": {
+ "description": "Snapshot properties",
+ "type": "object",
+ "properties": {
+ "snapshotId": {
+ "title": "snapshotId",
+ "type": "string",
+ "readOnly": true,
+ "description": "UUID v4 used to identify the Snapshot",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca3333"
+ },
+ "created": {
+ "title": "name",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "The creation date of the snapshot",
+ "example": "2017-08-15 13:23:33"
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure lifecycle management"
+ }
+ }
+ },
+ "snapshotPolicyProperties": {
+ "description": "Snapshot policy properties",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Snapshot policy name"
+ },
+ "hourlySchedule": {
+ "title": "hourlySchedule",
+ "description": "Schedule for hourly snapshots",
+ "type": "object",
+ "$ref": "#/definitions/hourlySchedule"
+ },
+ "dailySchedule": {
+ "title": "dailySchedule",
+ "description": "Schedule for daily snapshots",
+ "type": "object",
+ "$ref": "#/definitions/dailySchedule"
+ },
+ "weeklySchedule": {
+ "title": "weeklySchedule",
+ "description": "Schedule for weekly snapshots",
+ "type": "object",
+ "$ref": "#/definitions/weeklySchedule"
+ },
+ "monthlySchedule": {
+ "title": "monthlySchedule",
+ "description": "Schedule for monthly snapshots",
+ "type": "object",
+ "$ref": "#/definitions/monthlySchedule"
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "The property to decide policy is enabled or not"
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure lifecycle management"
+ }
+ }
+ },
+ "snapshotPolicy": {
+ "description": "Snapshot policy information",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location",
+ "properties"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Snapshot policy Properties",
+ "$ref": "#/definitions/snapshotPolicyProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "snapshotPoliciesList": {
+ "description": "List of Snapshot Policies",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of snapshot policies",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/snapshotPolicy"
+ }
+ }
+ }
+ },
+ "snapshotPolicyDetails": {
+ "description": "Snapshot policy properties",
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Snapshot policy Properties",
+ "$ref": "#/definitions/snapshotPolicyProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "snapshotPolicyPatch": {
+ "description": "Snapshot policy Details for create and update",
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location"
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Snapshot Policy properties",
+ "$ref": "#/definitions/snapshotPolicyProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "snapshotPolicyVolumeList": {
+ "description": "Volumes associated with snapshot policy",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of volumes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "readOnly": true,
+ "description": "Associated volume resource Id"
+ }
+ }
+ }
+ },
+ "hourlySchedule": {
+ "description": "Hourly Schedule properties",
+ "type": "object",
+ "properties": {
+ "snapshotsToKeep": {
+ "type": "integer",
+ "description": "Hourly snapshot count to keep",
+ "format": "int32"
+ },
+ "minute": {
+ "type": "integer",
+ "description": "Indicates which minute snapshot should be taken",
+ "example": "30",
+ "format": "int32"
+ },
+ "usedBytes": {
+ "type": "integer",
+ "description": "Resource size in bytes, current storage usage for the volume in bytes",
+ "format": "int64"
+ }
+ }
+ },
+ "dailySchedule": {
+ "description": "Daily Schedule properties",
+ "type": "object",
+ "properties": {
+ "snapshotsToKeep": {
+ "type": "integer",
+ "description": "Daily snapshot count to keep",
+ "format": "int32"
+ },
+ "hour": {
+ "type": "integer",
+ "description": "Indicates which hour in UTC timezone a snapshot should be taken",
+ "example": "11",
+ "format": "int32"
+ },
+ "minute": {
+ "type": "integer",
+ "description": "Indicates which minute snapshot should be taken",
+ "example": "30",
+ "format": "int32"
+ },
+ "usedBytes": {
+ "type": "integer",
+ "description": "Resource size in bytes, current storage usage for the volume in bytes",
+ "format": "int64"
+ }
+ }
+ },
+ "weeklySchedule": {
+ "description": "Weekly Schedule properties, make a snapshot every week at a specific day or days",
+ "type": "object",
+ "properties": {
+ "snapshotsToKeep": {
+ "type": "integer",
+ "description": "Weekly snapshot count to keep",
+ "format": "int32"
+ },
+ "day": {
+ "type": "string",
+ "description": "Indicates which weekdays snapshot should be taken, accepts a comma separated list of week day names in english",
+ "example": "Sunday,Monday"
+ },
+ "hour": {
+ "type": "integer",
+ "description": "Indicates which hour in UTC timezone a snapshot should be taken",
+ "example": "11",
+ "format": "int32"
+ },
+ "minute": {
+ "type": "integer",
+ "description": "Indicates which minute snapshot should be taken",
+ "example": "30",
+ "format": "int32"
+ },
+ "usedBytes": {
+ "type": "integer",
+ "description": "Resource size in bytes, current storage usage for the volume in bytes",
+ "format": "int64"
+ }
+ }
+ },
+ "monthlySchedule": {
+ "description": "Monthly Schedule properties",
+ "type": "object",
+ "properties": {
+ "snapshotsToKeep": {
+ "type": "integer",
+ "description": "Monthly snapshot count to keep",
+ "format": "int32"
+ },
+ "daysOfMonth": {
+ "type": "string",
+ "description": "Indicates which days of the month snapshot should be taken. A comma delimited string.",
+ "example": "1,11,21"
+ },
+ "hour": {
+ "type": "integer",
+ "description": "Indicates which hour in UTC timezone a snapshot should be taken",
+ "example": "11",
+ "format": "int32"
+ },
+ "minute": {
+ "type": "integer",
+ "description": "Indicates which minute snapshot should be taken",
+ "example": "30",
+ "format": "int32"
+ },
+ "usedBytes": {
+ "type": "integer",
+ "description": "Resource size in bytes, current storage usage for the volume in bytes",
+ "format": "int64"
+ }
+ }
+ },
+ "volumeRevert": {
+ "description": "revert a volume to the snapshot",
+ "type": "object",
+ "properties": {
+ "snapshotId": {
+ "type": "string",
+ "description": "Resource id of the snapshot"
+ }
+ }
+ },
+ "authorizeRequest": {
+ "description": "Authorize request",
+ "type": "object",
+ "properties": {
+ "remoteVolumeResourceId": {
+ "type": "string",
+ "description": "Resource id of the remote volume"
+ }
+ }
+ },
+ "breakReplicationRequest": {
+ "description": "Break replication request",
+ "type": "object",
+ "properties": {
+ "forceBreakReplication": {
+ "type": "boolean",
+ "description": "If replication is in status transferring and you want to force break the replication, set to true"
+ }
+ }
+ },
+ "poolChangeRequest": {
+ "description": "Pool change request",
+ "type": "object",
+ "required": [
+ "newPoolResourceId"
+ ],
+ "properties": {
+ "newPoolResourceId": {
+ "type": "string",
+ "description": "Resource id of the pool to move volume to"
+ }
+ }
+ },
+ "backupsList": {
+ "description": "List of Backups",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of Backups",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/backup"
+ }
+ }
+ }
+ },
+ "backup": {
+ "description": "Backup of a Volume",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location",
+ "properties"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "properties": {
+ "description": "Backup Properties",
+ "$ref": "#/definitions/backupProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "backupPatch": {
+ "description": "Backup patch",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Backup Properties",
+ "$ref": "#/definitions/backupProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "backupProperties": {
+ "description": "Backup properties",
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "title": "backupId",
+ "type": "string",
+ "readOnly": true,
+ "description": "UUID v4 used to identify the Backup",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$",
+ "maxLength": 36,
+ "minLength": 36,
+ "example": "9760acf5-4638-11e7-9bdb-020073ca3333"
+ },
+ "creationDate": {
+ "title": "name",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "The creation date of the backup",
+ "example": "2017-08-15 13:23:33"
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure lifecycle management"
+ },
+ "size": {
+ "type": "integer",
+ "readOnly": true,
+ "description": "Size of backup",
+ "format": "int64"
+ },
+ "label": {
+ "type": "string",
+ "description": "Label for backup"
+ },
+ "backupType": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Type of backup adhoc or scheduled"
+ }
+ }
+ },
+ "backupPolicyProperties": {
+ "description": "Backup policy properties",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Name of backup policy"
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure lifecycle management"
+ },
+ "dailyBackupsToKeep": {
+ "type": "integer",
+ "description": "Daily backups count to keep",
+ "format": "int32"
+ },
+ "weeklyBackupsToKeep": {
+ "type": "integer",
+ "description": "Weekly backups count to keep",
+ "format": "int32"
+ },
+ "monthlyBackupsToKeep": {
+ "type": "integer",
+ "description": "Monthly backups count to keep",
+ "format": "int32"
+ },
+ "yearlyBackupsToKeep": {
+ "type": "integer",
+ "description": "Yearly backups count to keep",
+ "format": "int32"
+ },
+ "volumesAssigned": {
+ "type": "integer",
+ "description": "Volumes using current backup policy",
+ "format": "int32"
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "The property to decide policy is enabled or not"
+ },
+ "volumeBackups": {
+ "description": "A list of volumes assigned to this policy",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/volumeBackups"
+ }
+ }
+ }
+ },
+ "backupPolicy": {
+ "description": "Backup policy information",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location",
+ "properties"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Backup policy Properties",
+ "$ref": "#/definitions/backupPolicyProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "backupPoliciesList": {
+ "description": "List of Backup Policies",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of backup policies",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/backupPolicy"
+ }
+ }
+ }
+ },
+ "backupPolicyDetails": {
+ "description": "Backup policy properties",
+ "x-ms-azure-resource": true,
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Backup policy Properties",
+ "$ref": "#/definitions/backupPolicyProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "backupPolicyPatch": {
+ "description": "Backup policy Details for create and update",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "tags": {
+ "description": "Resource tags",
+ "$ref": "#/definitions/resourceTags"
+ },
+ "properties": {
+ "description": "Backup policy Properties",
+ "$ref": "#/definitions/backupPolicyProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "volumeBackups": {
+ "description": "Volume details using the backup policy",
+ "type": "object",
+ "readOnly": true,
+ "properties": {
+ "volumeName": {
+ "type": "string",
+ "description": "Volume name"
+ },
+ "backupsCount": {
+ "type": "integer",
+ "description": "Total count of backups for volume",
+ "format": "int32"
+ },
+ "policyEnabled": {
+ "type": "boolean",
+ "description": "Policy enabled"
+ }
+ }
+ },
+ "vaultList": {
+ "description": "List of Vaults",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of vaults",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/vault"
+ }
+ }
+ }
+ },
+ "vault": {
+ "description": "Vault information",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "required": [
+ "location",
+ "properties"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type"
+ },
+ "properties": {
+ "description": "Vault Properties",
+ "$ref": "#/definitions/vaultProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "vaultProperties": {
+ "description": "Vault properties",
+ "type": "object",
+ "properties": {
+ "vaultName": {
+ "type": "string",
+ "readOnly": false,
+ "description": "Vault Name"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "SubscriptionId": {
+ "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."
+ },
+ "location": {
+ "name": "location",
+ "description": "The location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "ResourceGroup": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group.",
+ "pattern": "^[-\\w\\._\\(\\)]+$",
+ "minLength": 1,
+ "maxLength": 90,
+ "x-ms-parameter-location": "method"
+ },
+ "AccountName": {
+ "name": "accountName",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "description": "The name of the NetApp account",
+ "x-ms-parameter-location": "method"
+ },
+ "PoolName": {
+ "name": "poolName",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,63}$",
+ "minLength": 1,
+ "maxLength": 64,
+ "description": "The name of the capacity pool",
+ "x-ms-parameter-location": "method"
+ },
+ "VolumeName": {
+ "name": "volumeName",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "pattern": "^[a-zA-Z][a-zA-Z0-9\\-_]{0,63}$",
+ "minLength": 1,
+ "maxLength": 64,
+ "description": "The name of the volume",
+ "x-ms-parameter-location": "method"
+ },
+ "MountTargetName": {
+ "name": "mountTargetName",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "description": "The name of the mount target",
+ "x-ms-parameter-location": "method"
+ },
+ "SnapshotName": {
+ "name": "snapshotName",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "description": "The name of the mount target",
+ "x-ms-parameter-location": "method"
+ },
+ "SnapshotPolicyName": {
+ "name": "snapshotPolicyName",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "description": "The name of the snapshot policy target",
+ "x-ms-parameter-location": "method"
+ },
+ "BackupName": {
+ "name": "backupName",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "description": "The name of the backup",
+ "x-ms-parameter-location": "method"
+ },
+ "BackupPolicyName": {
+ "name": "backupPolicyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Backup policy Name which uniquely identify backup policy.",
+ "x-ms-parameter-location": "method"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "description": "Version of the API to be used with the client request.",
+ "in": "query",
+ "type": "string",
+ "required": true,
+ "default": "2020-07-01"
+ }
+ }
+}
diff --git a/specification/netapp/resource-manager/readme.go.md b/specification/netapp/resource-manager/readme.go.md
index 0b17fe9cee98..06d8c8a097c7 100644
--- a/specification/netapp/resource-manager/readme.go.md
+++ b/specification/netapp/resource-manager/readme.go.md
@@ -13,7 +13,9 @@ go:
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-netapp-2020-07-01
- tag: package-netapp-2020-06-01
+ - tag: package-netapp-2020-05-01
- tag: package-netapp-2020-03-01
- tag: package-netapp-2020-02-01
- tag: package-netapp-2019-11-01
@@ -24,6 +26,14 @@ batch:
- tag: package-netapp-2019-05-01
- tag: package-2017-08-15
```
+### Tag: package-netapp-2020-07-01 and go
+
+These settings apply only when `--tag=package-netapp-2020-07-01 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-netapp-2020-07-01' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-07-01/$(namespace)
+```
### Tag: package-netapp-2020-06-01 and go
These settings apply only when `--tag=package-netapp-2020-06-01 --go` is specified on the command line.
@@ -32,6 +42,16 @@ Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-netapp-2020-05-01' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-05-01/$(namespace)
+```
+
### Tag: package-netapp-2020-03-01 and go
These settings apply only when `--tag=package-netapp-2020-03-01 --go` is specified on the command line.
diff --git a/specification/netapp/resource-manager/readme.java.md b/specification/netapp/resource-manager/readme.java.md
index e7a8a19f2bbc..683fbddf59eb 100644
--- a/specification/netapp/resource-manager/readme.java.md
+++ b/specification/netapp/resource-manager/readme.java.md
@@ -16,7 +16,9 @@ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-netapp
``` yaml $(java) && $(multiapi)
batch:
+ - tag: package-netapp-2020-07-01
- tag: package-netapp-2020-06-01
+ - tag: package-netapp-2020-05-01
- tag: package-netapp-2020-03-01
- tag: package-netapp-2020-02-01
- tag: package-netapp-2019-11-01
@@ -27,6 +29,19 @@ batch:
- tag: package-netapp-2019-05-01
- tag: package-2017-08-15
```
+### Tag: package-netapp-2020-07-01 and java
+
+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-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
+regenerate-manager: true
+generate-interface: true
+```
+
### Tag: package-netapp-2020-06-01 and java
These settings apply only when `--tag=package-netapp-2020-06-01 --java` is specified on the command line.
@@ -40,6 +55,19 @@ regenerate-manager: true
generate-interface: true
```
+### Tag: package-netapp-2020-05-01 and java
+
+These settings apply only when `--tag=package-netapp-2020-05-01 --java` is specified on the command line.
+Please also specify the `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-netapp-2020-05-01' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.netapp.v2020_05_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/netapp/mgmt-v2020_05_01
+regenerate-manager: true
+generate-interface: true
+```
+
### Tag: package-netapp-2020-03-01 and java
These settings apply only when `--tag=package-netapp-2020-03-01 --java` is specified on the command line.
diff --git a/specification/netapp/resource-manager/readme.md b/specification/netapp/resource-manager/readme.md
index 4de609e84dc8..d669c3b2597a 100644
--- a/specification/netapp/resource-manager/readme.md
+++ b/specification/netapp/resource-manager/readme.md
@@ -28,7 +28,16 @@ These are the global settings for the Azure NetApp Files API.
title: NetAppManagementClient
description: Microsoft NetApp Azure Resource Provider specification
openapi-type: arm
-tag: package-netapp-2020-06-01
+tag: package-netapp-2020-07-01
+```
+
+### Tag: package-netapp-2020-07-01
+
+These settings apply only when `--tag=package-netapp-2020-07-01` is specified on the command line.
+
+``` yaml $(tag) == 'package-netapp-2020-07-01'
+input-file:
+- Microsoft.NetApp/stable/2020-07-01/netapp.json
```
### Tag: package-netapp-2020-06-01
@@ -39,6 +48,16 @@ These settings apply only when `--tag=package-netapp-2020-06-01` is specified on
input-file:
- Microsoft.NetApp/stable/2020-06-01/netapp.json
```
+
+### Tag: package-netapp-2020-05-01
+
+These settings apply only when `--tag=package-netapp-2020-05-01` is specified on the command line.
+
+``` yaml $(tag) == 'package-netapp-2020-05-01'
+input-file:
+- Microsoft.NetApp/stable/2020-05-01/netapp.json
+```
+
### Tag: package-netapp-2020-03-01
These settings apply only when `--tag=package-netapp-2020-03-01` is specified on the command line.
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/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/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.java.md b/specification/network/resource-manager/readme.java.md
index 19eb6c7ecd1a..e05a5f82adf3 100644
--- a/specification/network/resource-manager/readme.java.md
+++ b/specification/network/resource-manager/readme.java.md
@@ -39,6 +39,7 @@ batch:
- tag: package-2019-06
- tag: package-2019-04
- tag: package-2019-02
+ - tag: package-2018-11
```
### Tag: package-2020-06 and java
@@ -184,6 +185,19 @@ java:
generate-interface: true
```
+### Tag: package-2018-11 and java
+
+These settings apply only when `--tag=package-2018-11 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2018-11' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.network.v2018_11_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/network/mgmt-v2018_11_01
+ regenerate-manager: true
+ generate-interface: true
+```
+
### Tag: package-2018-08 and java
These settings apply only when `--tag=package-2018-08 --java` is specified on the command line.
diff --git a/specification/network/resource-manager/readme.md b/specification/network/resource-manager/readme.md
index f0097e2c0d0e..9da6602627a6 100644
--- a/specification/network/resource-manager/readme.md
+++ b/specification/network/resource-manager/readme.md
@@ -28,15 +28,70 @@ 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
+```
### 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 +141,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 +1456,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/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/Clusters.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/Clusters.json
index 197cfe9edba2..d04ee8c192f6 100644
--- a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/Clusters.json
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/Clusters.json
@@ -581,7 +581,7 @@
"in": "query",
"required": true,
"type": "string",
- "description": "Client Api Version."
+ "description": "The client API version."
},
"ResourceGroupNameParameter": {
"name": "resourceGroupName",
diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/LinkedServices.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/LinkedServices.json
index 745bc549f03b..d34b30b8e4b5 100644
--- a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/LinkedServices.json
+++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/preview/2019-08-01-preview/LinkedServices.json
@@ -309,7 +309,7 @@
"in": "query",
"required": true,
"type": "string",
- "description": "Client Api Version."
+ "description": "The client API version."
},
"ResourceGroupNameParameter": {
"name": "resourceGroupName",
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 2a01a76827ae..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": {
@@ -637,7 +633,7 @@
"in": "path",
"required": true,
"type": "string",
- "description": "The workspace's resource subscription ID."
+ "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
},
"ApiVersionParameter": {
"name": "api-version",
@@ -652,7 +648,7 @@
"required": true,
"type": "string",
"x-ms-parameter-location": "method",
- "description": "The workspace's resource group name.",
+ "description": "The name of the resource group to get. The name is case insensitive.",
"pattern": "^[-\\w\\._\\(\\)]+$",
"minLength": 1,
"maxLength": 90
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 e1fe11bf0104..83b539dd6d70 100644
--- a/specification/operationalinsights/resource-manager/readme.go.md
+++ b/specification/operationalinsights/resource-manager/readme.go.md
@@ -15,7 +15,9 @@ go:
batch:
- tag: package-2015-03
- tag: package-2015-11-preview
+ - tag: package-2019-08-preview
- tag: package-2020-03-preview
+ - tag: package-2020-10
- tag: package-2020-08
```
@@ -28,6 +30,15 @@ Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2019-08-preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2019-08-01-preview/$(namespace)
+```
+
### Tag: package-2015-11-preview and go
These settings apply only when `--tag=package-2015-11-preview --go` is specified on the command line.
@@ -46,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/examples/RedisCacheCheckNameAvailability.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheCheckNameAvailability.json
new file mode 100644
index 000000000000..e6f25307359b
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheCheckNameAvailability.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "type": "Microsoft.Cache/Redis",
+ "name": "cacheName"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheCreate.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheCreate.json
new file mode 100644
index 000000000000..4cd765b2b990
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheCreate.json
@@ -0,0 +1,178 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "location": "West US",
+ "zones": [
+ "1"
+ ],
+ "properties": {
+ "sku": {
+ "name": "Premium",
+ "family": "P",
+ "capacity": 1
+ },
+ "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",
+ "minimumTlsVersion": "1.2"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1",
+ "location": "West US",
+ "zones": [
+ "1"
+ ],
+ "name": "cache1",
+ "type": "Microsoft.Cache/Redis",
+ "tags": {},
+ "properties": {
+ "accessKeys": {
+ "primaryKey": "secretkey1",
+ "secondaryKey": "secretKey2"
+ },
+ "provisioningState": "Succeeded",
+ "redisVersion": "3.0",
+ "sku": {
+ "name": "Premium",
+ "family": "P",
+ "capacity": 1
+ },
+ "enableNonSslPort": false,
+ "replicasPerMaster": 2,
+ "redisConfiguration": {
+ "maxmemory-policy": "allkeys-lru"
+ },
+ "hostName": "cache1.redis.cache.windows.net",
+ "port": 6379,
+ "sslPort": 6380,
+ "minimumTlsVersion": "1.2",
+ "instances": [
+ {
+ "sslPort": 15000,
+ "nonSslPort": 13000,
+ "zone": "1",
+ "shardId": 0
+ },
+ {
+ "sslPort": 15001,
+ "nonSslPort": 13001,
+ "zone": "1",
+ "shardId": 0
+ },
+ {
+ "sslPort": 15002,
+ "nonSslPort": 13002,
+ "zone": "1",
+ "shardId": 0
+ },
+ {
+ "sslPort": 15003,
+ "nonSslPort": 13003,
+ "zone": "1",
+ "shardId": 1
+ },
+ {
+ "sslPort": 15004,
+ "nonSslPort": 13004,
+ "zone": "1",
+ "shardId": 1
+ },
+ {
+ "sslPort": 15005,
+ "nonSslPort": 13005,
+ "zone": "1",
+ "shardId": 1
+ }
+ ]
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1",
+ "location": "West US",
+ "zones": [
+ "1"
+ ],
+ "name": "cache1",
+ "type": "Microsoft.Cache/Redis",
+ "tags": {},
+ "properties": {
+ "accessKeys": {
+ "primaryKey": "secretkey1",
+ "secondaryKey": "secretKey2"
+ },
+ "provisioningState": "Succeeded",
+ "redisVersion": "3.0",
+ "sku": {
+ "name": "Premium",
+ "family": "P",
+ "capacity": 1
+ },
+ "enableNonSslPort": false,
+ "replicasPerMaster": 2,
+ "redisConfiguration": {
+ "maxclients": "1000",
+ "maxmemory-reserved": "50",
+ "maxmemory-delta": "50"
+ },
+ "hostName": "cache1.redis.cache.windows.net",
+ "port": 6379,
+ "sslPort": 6380,
+ "minimumTlsVersion": "1.2",
+ "instances": [
+ {
+ "sslPort": 15000,
+ "nonSslPort": 13000,
+ "zone": "1",
+ "shardId": 0
+ },
+ {
+ "sslPort": 15001,
+ "nonSslPort": 13001,
+ "zone": "1",
+ "shardId": 0
+ },
+ {
+ "sslPort": 15002,
+ "nonSslPort": 13002,
+ "zone": "1",
+ "shardId": 0
+ },
+ {
+ "sslPort": 15003,
+ "nonSslPort": 13003,
+ "zone": "1",
+ "shardId": 1
+ },
+ {
+ "sslPort": 15004,
+ "nonSslPort": 13004,
+ "zone": "1",
+ "shardId": 1
+ },
+ {
+ "sslPort": 15005,
+ "nonSslPort": 13005,
+ "zone": "1",
+ "shardId": 1
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheDelete.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheDelete.json
new file mode 100644
index 000000000000..772e625cb7d8
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheDelete.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationResult..."
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheDeletePrivateEndpointConnection.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheDeletePrivateEndpointConnection.json
new file mode 100644
index 000000000000..8550a0e766a7
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheDeletePrivateEndpointConnection.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "rgtest01",
+ "cacheName": "cachetest01",
+ "privateEndpointConnectionName": "pectest01",
+ "api-version": "2020-06-01"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheExport.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheExport.json
new file mode 100644
index 000000000000..59f3ff4b6ba3
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheExport.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "format": "RDB",
+ "prefix": "datadump1",
+ "container": "https://contosostorage.blob.core.window.net/urltoBlobContainer?sasKeyParameters"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationResult..."
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheFirewallRuleCreate.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheFirewallRuleCreate.json
new file mode 100644
index 000000000000..fdc3193084ee
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheFirewallRuleCreate.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "ruleName": "rule1",
+ "cacheName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "startIP": "192.168.1.1",
+ "endIP": "192.168.1.4"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/firewallRules/rule1",
+ "name": "cache1/rule1",
+ "type": "Microsoft.Cache/Redis/firewallRules",
+ "properties": {
+ "startIP": "192.168.1.1",
+ "endIP": "192.168.1.4"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/firewallRules/rule1",
+ "name": "cache1/rule1",
+ "type": "Microsoft.Cache/Redis/firewallRules",
+ "properties": {
+ "startIP": "192.168.1.1",
+ "endIP": "192.168.1.4"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheFirewallRuleDelete.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheFirewallRuleDelete.json
new file mode 100644
index 000000000000..89a3ff527edb
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheFirewallRuleDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "ruleName": "rule1",
+ "cacheName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheFirewallRuleGet.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheFirewallRuleGet.json
new file mode 100644
index 000000000000..9f64e5eb3782
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheFirewallRuleGet.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "ruleName": "rule1",
+ "cacheName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/firewallRules/rule1",
+ "name": "cache1/rule1",
+ "type": "Microsoft.Cache/Redis/firewallRules",
+ "properties": {
+ "startIP": "192.168.1.1",
+ "endIP": "192.168.1.4"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheFirewallRulesList.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheFirewallRulesList.json
new file mode 100644
index 000000000000..630aea0c69eb
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheFirewallRulesList.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "cacheName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/firewallRules/rule1",
+ "name": "rule1",
+ "type": "Microsoft.Cache/Redis/firewallRules",
+ "properties": {
+ "startIP": "192.168.1.1",
+ "endIP": "192.168.1.4"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/firewallRules/rule2",
+ "name": "rule2",
+ "type": "Microsoft.Cache/Redis/firewallRules",
+ "properties": {
+ "startIP": "192.169.1.0",
+ "endIP": "192.169.1.255"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheForceReboot.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheForceReboot.json
new file mode 100644
index 000000000000..4b4bfbe9e185
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheForceReboot.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "shardId": 0,
+ "rebootType": "AllNodes",
+ "ports": [
+ 13000,
+ 15001
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "message": "reboot operation enqueued"
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheGet.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheGet.json
new file mode 100644
index 000000000000..906710ad24c9
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheGet.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1",
+ "location": "West US",
+ "name": "cache1",
+ "type": "Microsoft.Cache/Redis",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Creating",
+ "redisVersion": "3.2",
+ "sku": {
+ "name": "Premium",
+ "family": "P",
+ "capacity": 3
+ },
+ "enableNonSslPort": true,
+ "replicasPerMaster": 2,
+ "redisConfiguration": {},
+ "hostName": "cache1.redis.cache.windows.net",
+ "port": 6379,
+ "sslPort": 6380,
+ "linkedServers": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/linkedServers/cache2"
+ }
+ ],
+ "instances": [
+ {
+ "sslPort": 15000,
+ "nonSslPort": 13000,
+ "isMaster": true
+ },
+ {
+ "sslPort": 15001,
+ "nonSslPort": 13001,
+ "isMaster": false
+ },
+ {
+ "sslPort": 15002,
+ "nonSslPort": 13002,
+ "isMaster": false
+ }
+ ],
+ "publicNetworkAccess": "Enabled",
+ "privateEndpointConnections": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/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/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheGetPrivateEndpointConnection.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheGetPrivateEndpointConnection.json
new file mode 100644
index 000000000000..d97ba6f5960b
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheGetPrivateEndpointConnection.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "rgtest01",
+ "cacheName": "cachetest01",
+ "privateEndpointConnectionName": "pectest01",
+ "api-version": "2020-06-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/rgtest01/providers/Microsoft.Cache/Redis/cachetest01/privateEndpointConnections/pectest01",
+ "name": "pectest01",
+ "type": "Microsoft.Cache/Redis/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/rgtest01/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheImport.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheImport.json
new file mode 100644
index 000000000000..964daacb5ea2
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheImport.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "format": "RDB",
+ "files": [
+ "http://fileuris.contoso.com/pathtofile1"
+ ]
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationResult..."
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheLinkedServer_Create.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheLinkedServer_Create.json
new file mode 100644
index 000000000000..3810c6535fec
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheLinkedServer_Create.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "linkedServerName": "cache2",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "linkedRedisCacheId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache2",
+ "linkedRedisCacheLocation": "West US",
+ "serverRole": "Secondary"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/linkedServers/cache2",
+ "name": "cache2",
+ "type": "Microsoft.Cache/Redis/linkedServers",
+ "properties": {
+ "linkedRedisCacheId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache2",
+ "linkedRedisCacheLocation": "West US",
+ "provisioningState": "Creating",
+ "serverRole": "Secondary"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/linkedServers/cache2",
+ "name": "cache2",
+ "type": "Microsoft.Cache/Redis/linkedServers",
+ "properties": {
+ "linkedRedisCacheId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache2",
+ "linkedRedisCacheLocation": "West US",
+ "provisioningState": "Creating",
+ "serverRole": "Secondary"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheLinkedServer_Delete.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheLinkedServer_Delete.json
new file mode 100644
index 000000000000..269b476352a5
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheLinkedServer_Delete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "linkedServerName": "cache2",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheLinkedServer_Get.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheLinkedServer_Get.json
new file mode 100644
index 000000000000..3a51ea5a4e3a
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheLinkedServer_Get.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid",
+ "linkedServerName": "cache2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/linkedServers/cache2",
+ "name": "cache2",
+ "type": "Microsoft.Cache/Redis/linkedServers",
+ "properties": {
+ "linkedRedisCacheId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache2",
+ "linkedRedisCacheLocation": "West US",
+ "provisioningState": "Succeeded",
+ "serverRole": "Secondary"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheLinkedServer_List.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheLinkedServer_List.json
new file mode 100644
index 000000000000..dff906689b0b
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheLinkedServer_List.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/linkedServers/cache2",
+ "name": "cache2",
+ "type": "Microsoft.Cache/Redis/linkedServers",
+ "properties": {
+ "linkedRedisCacheId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache2",
+ "linkedRedisCacheLocation": "West US",
+ "provisioningState": "Succeeded",
+ "serverRole": "Secondary"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/linkedServers/cache3",
+ "name": "cache3",
+ "type": "Microsoft.Cache/Redis/linkedServers",
+ "properties": {
+ "linkedRedisCacheId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache3",
+ "linkedRedisCacheLocation": "West US",
+ "provisioningState": "Succeeded",
+ "serverRole": "Secondary"
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheList.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheList.json
new file mode 100644
index 000000000000..311c3fb70507
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheList.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1",
+ "location": "West US",
+ "name": "cache1",
+ "type": "Microsoft.Cache/Redis",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Creating",
+ "redisVersion": "3.2",
+ "sku": {
+ "name": "Standard",
+ "family": "C",
+ "capacity": 6
+ },
+ "enableNonSslPort": true,
+ "redisConfiguration": {},
+ "hostName": "cache1.redis.cache.windows.net",
+ "port": 6379,
+ "sslPort": 6380
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListByResourceGroup.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListByResourceGroup.json
new file mode 100644
index 000000000000..67a9411f39ea
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListByResourceGroup.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "api-version": "2020-06-01",
+ "resourceGroupName": "rg1",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1",
+ "location": "West US",
+ "name": "cache1",
+ "type": "Microsoft.Cache/Redis",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Creating",
+ "redisVersion": "3.2",
+ "sku": {
+ "name": "Standard",
+ "family": "C",
+ "capacity": 6
+ },
+ "enableNonSslPort": true,
+ "redisConfiguration": {},
+ "hostName": "cache1.redis.cache.windows.net",
+ "port": 6379,
+ "sslPort": 6380
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListKeys.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListKeys.json
new file mode 100644
index 000000000000..59fea2eb161c
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListKeys.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "primaryKey": "secretkey1",
+ "secondaryKey": "secretKey2"
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListPrivateEndpointConnections.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListPrivateEndpointConnections.json
new file mode 100644
index 000000000000..1ee3609a3509
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListPrivateEndpointConnections.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "rgtest01",
+ "cacheName": "cachetest01",
+ "privateEndpointConnectionName": "pectest01",
+ "api-version": "2020-06-01"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/rgtest01/providers/Microsoft.Cache/Redis/cachetest01/privateEndpointConnections/pectest01",
+ "name": "pectest01",
+ "type": "Microsoft.Cache/Redis/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/rgtest01/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/rgtest01/providers/Microsoft.Cache/Redis/cachetest01/privateEndpointConnections/pectest01",
+ "name": "pectest01",
+ "type": "Microsoft.Cache/Redis/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/rgtest01/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListPrivateLinkResources.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListPrivateLinkResources.json
new file mode 100644
index 000000000000..198e5d423d43
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListPrivateLinkResources.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "rgtest01",
+ "cacheName": "cacheTest01",
+ "api-version": "2020-06-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/rgtest01/providers/Microsoft.Cache/Redis/cacheTest01/privateLinkResources/redisCache",
+ "name": "redisCache",
+ "type": "Microsoft.Cache/Redis/privateLinkResources",
+ "properties": {
+ "groupId": "redisCache",
+ "requiredMembers": [
+ "redisCache"
+ ],
+ "requiredZoneNames": [
+ "privatelink.redis.cache.windows.net"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListUpgradeNotifications.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListUpgradeNotifications.json
new file mode 100644
index 000000000000..7abee77c2fee
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheListUpgradeNotifications.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid",
+ "history": "5000"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "notification1",
+ "timestamp": "2017-02-16T23:20:50.52Z",
+ "upsellNotification": {}
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePatchSchedulesCreateOrUpdate.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePatchSchedulesCreateOrUpdate.json
new file mode 100644
index 000000000000..9896b07a4c65
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePatchSchedulesCreateOrUpdate.json
@@ -0,0 +1,66 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "default": "default",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "scheduleEntries": [
+ {
+ "dayOfWeek": "Monday",
+ "startHourUtc": 12,
+ "maintenanceWindow": "PT5H"
+ },
+ {
+ "dayOfWeek": "Tuesday",
+ "startHourUtc": 12
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/patchSchedules/default",
+ "name": "default",
+ "type": "Microsoft.Cache/Redis/patchSchedules",
+ "properties": {
+ "scheduleEntries": [
+ {
+ "dayOfWeek": "Monday",
+ "startHourUtc": 12,
+ "maintenanceWindow": "PT5H"
+ },
+ {
+ "dayOfWeek": "Tuesday",
+ "startHourUtc": 12
+ }
+ ]
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/patchSchedules/default",
+ "name": "default",
+ "type": "Microsoft.Cache/Redis/patchSchedules",
+ "properties": {
+ "scheduleEntries": [
+ {
+ "dayOfWeek": "Monday",
+ "startHourUtc": 12,
+ "maintenanceWindow": "PT5H"
+ },
+ {
+ "dayOfWeek": "Tuesday",
+ "startHourUtc": 12
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePatchSchedulesDelete.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePatchSchedulesDelete.json
new file mode 100644
index 000000000000..073449a4d2bd
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePatchSchedulesDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "default": "default",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePatchSchedulesGet.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePatchSchedulesGet.json
new file mode 100644
index 000000000000..523cccc0f805
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePatchSchedulesGet.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "default": "default",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/patchSchedules/default",
+ "name": "default",
+ "type": "Microsoft.Cache/Redis/patchSchedules",
+ "properties": {
+ "scheduleEntries": [
+ {
+ "dayOfWeek": "Monday",
+ "startHourUtc": 12,
+ "maintenanceWindow": "PT5H"
+ },
+ {
+ "dayOfWeek": "Tuesday",
+ "startHourUtc": 12
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePatchSchedulesList.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePatchSchedulesList.json
new file mode 100644
index 000000000000..cfb3e6a6ca20
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePatchSchedulesList.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "cacheName": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1/patchSchedules/default",
+ "name": "default",
+ "type": "Microsoft.Cache/Redis/patchSchedules",
+ "properties": {
+ "scheduleEntries": [
+ {
+ "dayOfWeek": "Monday",
+ "startHourUtc": 12,
+ "maintenanceWindow": "PT5H"
+ },
+ {
+ "dayOfWeek": "Tuesday",
+ "startHourUtc": 12
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePutPrivateEndpointConnection.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePutPrivateEndpointConnection.json
new file mode 100644
index 000000000000..8a57daafd48d
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCachePutPrivateEndpointConnection.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "rgtest01",
+ "cacheName": "cachetest01",
+ "privateEndpointConnectionName": "pectest01",
+ "api-version": "2020-06-01",
+ "properties": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/rgtest01/providers/Microsoft.Cache/Redis/cachetest01/privateEndpointConnections/pectest01",
+ "name": "pectest01",
+ "type": "Microsoft.Cache/Redis/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/rgtest01/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheRegenerateKey.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheRegenerateKey.json
new file mode 100644
index 000000000000..990c8884a390
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheRegenerateKey.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "keyType": "Primary"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "primaryKey": "secretkey1",
+ "secondaryKey": "secretKey2"
+ }
+ }
+ }
+}
diff --git a/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheUpdate.json b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheUpdate.json
new file mode 100644
index 000000000000..a8e1d91820ba
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/examples/RedisCacheUpdate.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "name": "cache1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-06-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "enableNonSslPort": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/Redis/cache1",
+ "location": "West US",
+ "name": "cache1",
+ "type": "Microsoft.Cache/Redis",
+ "tags": {},
+ "properties": {
+ "accessKeys": {
+ "primaryKey": "secretkey1",
+ "secondaryKey": "secretKey2"
+ },
+ "provisioningState": "Succeeded",
+ "redisVersion": "3.0",
+ "sku": {
+ "name": "Premium",
+ "family": "P",
+ "capacity": 1
+ },
+ "enableNonSslPort": true,
+ "redisConfiguration": {
+ "maxclients": "1000",
+ "maxmemory-reserved": "50",
+ "maxmemory-delta": "50"
+ },
+ "hostName": "cache1.redis.cache.windows.net",
+ "port": 6379,
+ "sslPort": 6380,
+ "instances": [
+ {
+ "sslPort": 15000,
+ "nonSslPort": 13000
+ },
+ {
+ "sslPort": 15001,
+ "nonSslPort": 13001
+ }
+ ]
+ }
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..fade72a802c4
--- /dev/null
+++ b/specification/redis/resource-manager/Microsoft.Cache/stable/2020-06-01/redis.json
@@ -0,0 +1,2687 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "RedisManagementClient",
+ "description": "REST API for Azure Redis Cache Service.",
+ "version": "2020-06-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.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": "#/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/CheckNameAvailability": {
+ "post": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "Redis_CheckNameAvailability",
+ "x-ms-examples": {
+ "RedisCacheList": {
+ "$ref": "./examples/RedisCacheCheckNameAvailability.json"
+ }
+ },
+ "description": "Checks that the redis cache name is valid and is not already in use.",
+ "parameters": [
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CheckNameAvailabilityParameters"
+ },
+ "description": "Parameters supplied to the CheckNameAvailability Redis operation. The only supported resource type is 'Microsoft.Cache/redis'"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Name is available"
+ },
+ "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/redis/{name}/listUpgradeNotifications": {
+ "get": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "Redis_ListUpgradeNotifications",
+ "x-ms-examples": {
+ "RedisCacheGet": {
+ "$ref": "./examples/RedisCacheListUpgradeNotifications.json"
+ }
+ },
+ "description": "Gets any upgrade notifications for a Redis cache.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "history",
+ "in": "query",
+ "required": true,
+ "type": "number",
+ "format": "double",
+ "description": "how many minutes in past to look for upgrade notifications"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "All upgrade notifications in given time range",
+ "schema": {
+ "$ref": "#/definitions/NotificationListResponse"
+ }
+ },
+ "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/redis/{name}": {
+ "put": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "Redis_Create",
+ "x-ms-examples": {
+ "RedisCacheCreate": {
+ "$ref": "./examples/RedisCacheCreate.json"
+ }
+ },
+ "description": "Create or replace (overwrite/recreate, with potential downtime) an existing Redis cache.",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RedisCreateParameters"
+ },
+ "description": "Parameters supplied to the Create Redis operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The new redis cache was successfully created. Check provisioningState to see detailed status.",
+ "schema": {
+ "$ref": "#/definitions/RedisResource"
+ }
+ },
+ "200": {
+ "description": "The existing redis cache was successfully updated. Check provisioningState to see detailed status.",
+ "schema": {
+ "$ref": "#/definitions/RedisResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "Redis_Update",
+ "x-ms-examples": {
+ "RedisCacheUpdate": {
+ "$ref": "./examples/RedisCacheUpdate.json"
+ }
+ },
+ "description": "Update an existing Redis cache.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RedisUpdateParameters"
+ },
+ "description": "Parameters supplied to the Update Redis operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The existing redis cache was successfully updated. Check provisioningState to see detailed status.",
+ "schema": {
+ "$ref": "#/definitions/RedisResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "Redis_Delete",
+ "x-ms-examples": {
+ "RedisCacheDelete": {
+ "$ref": "./examples/RedisCacheDelete.json"
+ }
+ },
+ "description": "Deletes a Redis cache.",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The redis cache was successfully deleted."
+ },
+ "202": {
+ "description": "The redis cache 'delete' operation was successfully enqueued; follow the Location header to poll for final outcome."
+ },
+ "204": {
+ "description": "The redis cache 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": [
+ "Redis"
+ ],
+ "operationId": "Redis_Get",
+ "x-ms-examples": {
+ "RedisCacheGet": {
+ "$ref": "./examples/RedisCacheGet.json"
+ }
+ },
+ "description": "Gets a Redis cache (resource description).",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The redis cache was successfully found.",
+ "schema": {
+ "$ref": "#/definitions/RedisResource"
+ }
+ },
+ "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/redis": {
+ "get": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "Redis_ListByResourceGroup",
+ "x-ms-examples": {
+ "RedisCacheListByResourceGroup": {
+ "$ref": "./examples/RedisCacheListByResourceGroup.json"
+ }
+ },
+ "description": "Lists all Redis caches in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/RedisListResult"
+ }
+ },
+ "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/redis": {
+ "get": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "Redis_ListBySubscription",
+ "x-ms-examples": {
+ "RedisCacheList": {
+ "$ref": "./examples/RedisCacheList.json"
+ }
+ },
+ "description": "Gets all Redis caches in the specified subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/RedisListResult"
+ }
+ },
+ "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/redis/{name}/listKeys": {
+ "post": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "Redis_ListKeys",
+ "x-ms-examples": {
+ "RedisCacheListKeys": {
+ "$ref": "./examples/RedisCacheListKeys.json"
+ }
+ },
+ "description": "Retrieve a Redis cache's access keys. This operation requires write permission to the cache resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists the keys for the specified Redis cache.",
+ "schema": {
+ "$ref": "#/definitions/RedisAccessKeys"
+ }
+ },
+ "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/redis/{name}/regenerateKey": {
+ "post": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "Redis_RegenerateKey",
+ "x-ms-examples": {
+ "RedisCacheRegenerateKey": {
+ "$ref": "./examples/RedisCacheRegenerateKey.json"
+ }
+ },
+ "description": "Regenerate Redis cache's access keys. This operation requires write permission to the cache resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RedisRegenerateKeyParameters"
+ },
+ "description": "Specifies which key to regenerate."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Lists the regenerated keys for Redis Cache",
+ "schema": {
+ "$ref": "#/definitions/RedisAccessKeys"
+ }
+ },
+ "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/redis/{name}/forceReboot": {
+ "post": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "Redis_ForceReboot",
+ "x-ms-examples": {
+ "RedisCacheForceReboot": {
+ "$ref": "./examples/RedisCacheForceReboot.json"
+ }
+ },
+ "description": "Reboot specified Redis node(s). This operation requires write permission to the cache resource. There can be potential data loss.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RedisRebootParameters"
+ },
+ "description": "Specifies which Redis node(s) to reboot."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Reboot operation successfully enqueued",
+ "schema": {
+ "$ref": "#/definitions/RedisForceRebootResponse"
+ }
+ },
+ "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/redis/{name}/import": {
+ "post": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "Redis_ImportData",
+ "x-ms-examples": {
+ "RedisCacheImport": {
+ "$ref": "./examples/RedisCacheImport.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Import data into Redis cache.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ImportRDBParameters"
+ },
+ "description": "Parameters for Redis import operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Import operation successfully enqueued; follow the Location header to poll for final outcome."
+ },
+ "200": {
+ "description": "Import operation succeeded."
+ },
+ "204": {
+ "description": "Import operation succeeded."
+ },
+ "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/redis/{name}/export": {
+ "post": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "Redis_ExportData",
+ "x-ms-examples": {
+ "RedisCacheExport": {
+ "$ref": "./examples/RedisCacheExport.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Export data from the redis cache to blobs in a container.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExportRDBParameters"
+ },
+ "description": "Parameters for Redis export operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Export operation successfully enqueued; follow the Location header to poll for final outcome."
+ },
+ "200": {
+ "description": "Export operation succeeded."
+ },
+ "204": {
+ "description": "Export operation succeeded."
+ },
+ "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/redis/{cacheName}/firewallRules": {
+ "get": {
+ "tags": [
+ "Redis",
+ "FirewallRules"
+ ],
+ "operationId": "FirewallRules_List",
+ "description": "Gets all firewall rules in the specified redis cache.",
+ "x-ms-examples": {
+ "RedisCacheFirewallRulesList": {
+ "$ref": "./examples/RedisCacheFirewallRulesList.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cacheName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully got the current rules",
+ "schema": {
+ "$ref": "#/definitions/RedisFirewallRuleListResult"
+ }
+ },
+ "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/redis/{cacheName}/firewallRules/{ruleName}": {
+ "put": {
+ "tags": [
+ "Redis",
+ "FirewallRules"
+ ],
+ "operationId": "FirewallRules_CreateOrUpdate",
+ "description": "Create or update a redis cache firewall rule",
+ "x-ms-examples": {
+ "RedisCacheFirewallRuleCreate": {
+ "$ref": "./examples/RedisCacheFirewallRuleCreate.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cacheName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "name": "ruleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the firewall rule."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RedisFirewallRuleCreateParameters"
+ },
+ "description": "Parameters supplied to the create or update redis firewall rule operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Resource was successfully updated",
+ "schema": {
+ "$ref": "#/definitions/RedisFirewallRule"
+ }
+ },
+ "201": {
+ "description": "Resource was successfully created",
+ "schema": {
+ "$ref": "#/definitions/RedisFirewallRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Redis",
+ "FirewallRules"
+ ],
+ "operationId": "FirewallRules_Get",
+ "description": "Gets a single firewall rule in a specified redis cache.",
+ "x-ms-examples": {
+ "RedisCacheFirewallRuleGet": {
+ "$ref": "./examples/RedisCacheFirewallRuleGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cacheName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "name": "ruleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the firewall rule."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully found the rule",
+ "schema": {
+ "$ref": "#/definitions/RedisFirewallRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Redis",
+ "FirewallRules"
+ ],
+ "operationId": "FirewallRules_Delete",
+ "description": "Deletes a single firewall rule in a specified redis cache.",
+ "x-ms-examples": {
+ "RedisCacheFirewallRuleDelete": {
+ "$ref": "./examples/RedisCacheFirewallRuleDelete.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cacheName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "name": "ruleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the firewall rule."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the rule"
+ },
+ "204": {
+ "description": "Successfully deleted the rule"
+ },
+ "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/redis/{cacheName}/patchSchedules": {
+ "get": {
+ "tags": [
+ "Redis",
+ "PatchSchedules"
+ ],
+ "operationId": "PatchSchedules_ListByRedisResource",
+ "description": "Gets all patch schedules in the specified redis cache (there is only one).",
+ "x-ms-examples": {
+ "RedisCachePatchSchedulesList": {
+ "$ref": "./examples/RedisCachePatchSchedulesList.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cacheName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully got the current patch schedules",
+ "schema": {
+ "$ref": "#/definitions/RedisPatchScheduleListResult"
+ }
+ },
+ "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/redis/{name}/patchSchedules/{default}": {
+ "put": {
+ "tags": [
+ "Redis",
+ "PatchSchedules"
+ ],
+ "operationId": "PatchSchedules_CreateOrUpdate",
+ "x-ms-examples": {
+ "RedisCachePatchSchedulesCreateOrUpdate": {
+ "$ref": "./examples/RedisCachePatchSchedulesCreateOrUpdate.json"
+ }
+ },
+ "description": "Create or replace the patching schedule for Redis cache.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "name": "default",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Default string modeled as parameter for auto generation to work correctly.",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "defaultName",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RedisPatchSchedule"
+ },
+ "description": "Parameters to set the patching schedule for Redis cache."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The patch schedule was successfully updated.",
+ "schema": {
+ "$ref": "#/definitions/RedisPatchSchedule"
+ }
+ },
+ "201": {
+ "description": "The patch schedule was successfully created.",
+ "schema": {
+ "$ref": "#/definitions/RedisPatchSchedule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Redis",
+ "PatchSchedules"
+ ],
+ "operationId": "PatchSchedules_Delete",
+ "x-ms-examples": {
+ "RedisCachePatchSchedulesDelete": {
+ "$ref": "./examples/RedisCachePatchSchedulesDelete.json"
+ }
+ },
+ "description": "Deletes the patching schedule of a redis cache.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the redis cache."
+ },
+ {
+ "name": "default",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Default string modeled as parameter for auto generation to work correctly.",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "defaultName",
+ "modelAsString": true
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success."
+ },
+ "204": {
+ "description": "Success."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Redis",
+ "PatchSchedules"
+ ],
+ "operationId": "PatchSchedules_Get",
+ "x-ms-examples": {
+ "RedisCachePatchSchedulesGet": {
+ "$ref": "./examples/RedisCachePatchSchedulesGet.json"
+ }
+ },
+ "description": "Gets the patching schedule of a redis cache.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the redis cache."
+ },
+ {
+ "name": "default",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Default string modeled as parameter for auto generation to work correctly.",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "defaultName",
+ "modelAsString": true
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Response of get patch schedules.",
+ "schema": {
+ "$ref": "#/definitions/RedisPatchSchedule"
+ }
+ },
+ "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/redis/{name}/linkedServers/{linkedServerName}": {
+ "put": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "LinkedServer_Create",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "LinkedServer_Create": {
+ "$ref": "./examples/RedisCacheLinkedServer_Create.json"
+ }
+ },
+ "description": "Adds a linked server to the Redis cache (requires Premium SKU).",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "name": "linkedServerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the linked server that is being added to the Redis cache."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RedisLinkedServerCreateParameters"
+ },
+ "description": "Parameters supplied to the Create Linked server operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The linked server was successfully added.",
+ "schema": {
+ "$ref": "#/definitions/RedisLinkedServerWithProperties"
+ }
+ },
+ "201": {
+ "description": "The linked server was successfully added.",
+ "schema": {
+ "$ref": "#/definitions/RedisLinkedServerWithProperties"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "LinkedServer_Delete",
+ "x-ms-examples": {
+ "LinkedServerDelete": {
+ "$ref": "./examples/RedisCacheLinkedServer_Delete.json"
+ }
+ },
+ "description": "Deletes the linked server from a redis cache (requires Premium SKU).",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the redis cache."
+ },
+ {
+ "name": "linkedServerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the linked server that is being added to the Redis cache."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The redis cache was successfully deleted."
+ },
+ "204": {
+ "description": "Linked server 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": [
+ "Redis"
+ ],
+ "operationId": "LinkedServer_Get",
+ "x-ms-examples": {
+ "LinkedServer_Get": {
+ "$ref": "./examples/RedisCacheLinkedServer_Get.json"
+ }
+ },
+ "description": "Gets the detailed information about a linked server of a redis cache (requires Premium SKU).",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the redis cache."
+ },
+ {
+ "name": "linkedServerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the linked server."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Response of get linked server.",
+ "schema": {
+ "$ref": "#/definitions/RedisLinkedServerWithProperties"
+ }
+ },
+ "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/redis/{name}/linkedServers": {
+ "get": {
+ "tags": [
+ "Redis"
+ ],
+ "operationId": "LinkedServer_List",
+ "x-ms-examples": {
+ "LinkedServer_List": {
+ "$ref": "./examples/RedisCacheLinkedServer_List.json"
+ }
+ },
+ "description": "Gets the list of linked servers associated with this redis cache (requires Premium SKU).",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the redis cache."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Response of get linked servers.",
+ "schema": {
+ "$ref": "#/definitions/RedisLinkedServerWithPropertiesList"
+ }
+ },
+ "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/redis/{cacheName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_List",
+ "description": "List all the private endpoint connections associated with the redis cache.",
+ "x-ms-examples": {
+ "RedisCacheGetPrivateEndpointConnection": {
+ "$ref": "./examples/RedisCacheListPrivateEndpointConnections.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cacheName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/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/redis/{cacheName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Get",
+ "description": "Gets the specified private endpoint connection associated with the redis cache.",
+ "x-ms-examples": {
+ "RedisCacheGetPrivateEndpointConnection": {
+ "$ref": "./examples/RedisCacheGetPrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cacheName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/parameters/PrivateEndpointConnectionName"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/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": "Update the state of specified private endpoint connection associated with the redis cache.",
+ "x-ms-examples": {
+ "RedisCachePutPrivateEndpointConnection": {
+ "$ref": "./examples/RedisCachePutPrivateEndpointConnection.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cacheName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/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 redis cache.",
+ "x-ms-examples": {
+ "RedisCacheDeletePrivateEndpointConnection": {
+ "$ref": "./examples/RedisCacheDeletePrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cacheName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/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/redis/{cacheName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "PrivateLinkResources"
+ ],
+ "operationId": "PrivateLinkResources_ListByRedisCache",
+ "description": "Gets the private link resources that need to be created for a redis cache.",
+ "x-ms-examples": {
+ "StorageAccountListPrivateLinkResources": {
+ "$ref": "./examples/RedisCacheListPrivateLinkResources.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "cacheName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Redis cache."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/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": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The type of Redis cache to deploy. Valid values: (Basic, Standard, Premium)",
+ "enum": [
+ "Basic",
+ "Standard",
+ "Premium"
+ ],
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsString": true
+ }
+ },
+ "family": {
+ "type": "string",
+ "description": "The SKU family to use. Valid values: (C, P). (C = Basic/Standard, P = Premium).",
+ "enum": [
+ "C",
+ "P"
+ ],
+ "x-ms-enum": {
+ "name": "SkuFamily",
+ "modelAsString": true
+ }
+ },
+ "capacity": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The size of the Redis cache to deploy. Valid values: for C (Basic/Standard) family (0, 1, 2, 3, 4, 5, 6), for P (Premium) family (1, 2, 3, 4)."
+ }
+ },
+ "required": [
+ "name",
+ "family",
+ "capacity"
+ ],
+ "description": "SKU parameters supplied to the create Redis operation."
+ },
+ "RedisCommonProperties": {
+ "properties": {
+ "redisConfiguration": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "All Redis Settings. Few possible keys: rdb-backup-enabled,rdb-storage-connection-string,rdb-backup-frequency,maxmemory-delta,maxmemory-policy,notify-keyspace-events,maxmemory-samples,slowlog-log-slower-than,slowlog-max-len,list-max-ziplist-entries,list-max-ziplist-value,hash-max-ziplist-entries,hash-max-ziplist-value,set-max-intset-entries,zset-max-ziplist-entries,zset-max-ziplist-value etc."
+ },
+ "enableNonSslPort": {
+ "type": "boolean",
+ "description": "Specifies whether the non-ssl Redis server port (6379) is enabled."
+ },
+ "replicasPerMaster": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of replicas to be created per master."
+ },
+ "tenantSettings": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A dictionary of tenant settings"
+ },
+ "shardCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of shards to be created on a Premium Cluster Cache."
+ },
+ "minimumTlsVersion": {
+ "type": "string",
+ "description": "Optional: requires clients to use a specified TLS version (or higher) to connect (e,g, '1.0', '1.1', '1.2')",
+ "enum": [
+ "1.0",
+ "1.1",
+ "1.2"
+ ],
+ "x-ms-enum": {
+ "name": "TlsVersion",
+ "modelAsString": true
+ }
+ },
+ "publicNetworkAccess": {
+ "description": "Whether or not public endpoint access is allowed for this cache. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. If 'Disabled', private endpoints are the exclusive access method. Default value is 'Enabled'",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "PublicNetworkAccess",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Create/Update/Get common properties of the redis cache.",
+ "x-ms-external": true
+ },
+ "RedisCreateProperties": {
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The SKU of the Redis cache to deploy."
+ },
+ "subnetId": {
+ "type": "string",
+ "pattern": "^/subscriptions/[^/]*/resourceGroups/[^/]*/providers/Microsoft.(ClassicNetwork|Network)/virtualNetworks/[^/]*/subnets/[^/]*$",
+ "description": "The full resource ID of a subnet in a virtual network to deploy the Redis cache in. Example format: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/Microsoft.{Network|ClassicNetwork}/VirtualNetworks/vnet1/subnets/subnet1"
+ },
+ "staticIP": {
+ "type": "string",
+ "pattern": "^\\d+\\.\\d+\\.\\d+\\.\\d+$",
+ "description": "Static IP address. Required when deploying a Redis cache inside an existing Azure Virtual Network."
+ }
+ },
+ "required": [
+ "sku"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/RedisCommonProperties"
+ }
+ ],
+ "description": "Properties supplied to Create Redis operation.",
+ "x-ms-external": true
+ },
+ "RedisUpdateProperties": {
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The SKU of the Redis cache to deploy."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/RedisCommonProperties"
+ }
+ ],
+ "description": "Patchable properties of the redis cache.",
+ "x-ms-external": true
+ },
+ "RedisProperties": {
+ "properties": {
+ "redisVersion": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Redis version."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Redis instance provisioning status.",
+ "enum": [
+ "Creating",
+ "Deleting",
+ "Disabled",
+ "Failed",
+ "Linking",
+ "Provisioning",
+ "RecoveringScaleFailure",
+ "Scaling",
+ "Succeeded",
+ "Unlinking",
+ "Unprovisioning",
+ "Updating"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "hostName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Redis host name."
+ },
+ "port": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "Redis non-SSL port."
+ },
+ "sslPort": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "Redis SSL port."
+ },
+ "accessKeys": {
+ "readOnly": true,
+ "$ref": "#/definitions/RedisAccessKeys",
+ "description": "The keys of the Redis cache - not set if this object is not the response to Create or Update redis cache"
+ },
+ "linkedServers": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RedisLinkedServer"
+ },
+ "description": "List of the linked servers associated with the cache"
+ },
+ "instances": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RedisInstanceDetails"
+ },
+ "description": "List of the Redis instances associated with the cache"
+ },
+ "privateEndpointConnections": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/definitions/PrivateEndpointConnection"
+ },
+ "description": "List of private endpoint connection associated with the specified redis cache"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/RedisCreateProperties"
+ }
+ ],
+ "description": "Properties of the redis cache.",
+ "x-ms-external": true
+ },
+ "Resource": {
+ "description": "The Resource 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."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "ProxyResource": {
+ "description": "The resource model definition for a ARM proxy resource. It will have everything other than required location and tags",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ]
+ },
+ "TrackedResource": {
+ "description": "The resource model definition for a ARM tracked top level resource",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "x-ms-mutability": [
+ "read",
+ "create",
+ "update"
+ ],
+ "description": "Resource tags."
+ },
+ "location": {
+ "type": "string",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ],
+ "description": "The geo-location where the resource lives"
+ }
+ },
+ "required": [
+ "location"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ]
+ },
+ "RedisCreateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RedisCreateProperties",
+ "description": "Redis cache properties."
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of availability zones denoting where the resource needs to come from."
+ },
+ "location": {
+ "type": "string",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ],
+ "description": "The geo-location where the resource lives"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ }
+ },
+ "required": [
+ "properties",
+ "location"
+ ],
+ "description": "Parameters supplied to the Create Redis operation."
+ },
+ "RedisUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RedisUpdateProperties",
+ "description": "Redis cache properties."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ }
+ },
+ "description": "Parameters supplied to the Update Redis operation."
+ },
+ "RedisAccessKeys": {
+ "properties": {
+ "primaryKey": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The current primary key that clients can use to authenticate with Redis cache."
+ },
+ "secondaryKey": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The current secondary key that clients can use to authenticate with Redis cache."
+ }
+ },
+ "description": "Redis cache access keys."
+ },
+ "RedisFirewallRule": {
+ "description": "A firewall rule on a redis cache has a name, and describes a contiguous range of IP addresses permitted to connect",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RedisFirewallRuleProperties",
+ "description": "redis cache firewall rule properties"
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ]
+ },
+ "RedisFirewallRuleCreateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RedisFirewallRuleProperties",
+ "description": "Properties required to create a firewall rule ."
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "description": "Parameters required for creating a firewall rule on redis cache."
+ },
+ "RedisFirewallRuleProperties": {
+ "description": "Specifies a range of IP addresses permitted to connect to the cache",
+ "properties": {
+ "startIP": {
+ "type": "string",
+ "description": "lowest IP address included in the range"
+ },
+ "endIP": {
+ "type": "string",
+ "description": "highest IP address included in the range"
+ }
+ },
+ "required": [
+ "startIP",
+ "endIP"
+ ]
+ },
+ "RedisFirewallRuleListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RedisFirewallRule"
+ },
+ "description": "Results of the list firewall rules operation."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link for next page of results."
+ }
+ },
+ "description": "The response of list firewall rules Redis operation."
+ },
+ "RedisResource": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RedisProperties",
+ "description": "Redis cache properties."
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of availability zones denoting where the resource needs to come from."
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/TrackedResource"
+ }
+ ],
+ "description": "A single Redis item in List or Get Operation."
+ },
+ "RedisInstanceDetails": {
+ "properties": {
+ "sslPort": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "Redis instance SSL port."
+ },
+ "nonSslPort": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "If enableNonSslPort is true, provides Redis instance Non-SSL port."
+ },
+ "zone": {
+ "readOnly": true,
+ "type": "string",
+ "description": "If the Cache uses availability zones, specifies availability zone where this instance is located."
+ },
+ "shardId": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "If clustering is enabled, the Shard ID of Redis Instance"
+ },
+ "isMaster": {
+ "readOnly": true,
+ "type": "boolean",
+ "description": "Specifies whether the instance is a master node."
+ }
+ },
+ "description": "Details of single instance of redis."
+ },
+ "RedisListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RedisResource"
+ },
+ "description": "List of Redis cache instances."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link for next page of results."
+ }
+ },
+ "description": "The response of list Redis operation."
+ },
+ "RedisRegenerateKeyParameters": {
+ "properties": {
+ "keyType": {
+ "type": "string",
+ "description": "The Redis access key to regenerate.",
+ "enum": [
+ "Primary",
+ "Secondary"
+ ],
+ "x-ms-enum": {
+ "name": "RedisKeyType",
+ "modelAsString": false
+ }
+ }
+ },
+ "required": [
+ "keyType"
+ ],
+ "description": "Specifies which Redis access keys to reset."
+ },
+ "RedisRebootParameters": {
+ "properties": {
+ "rebootType": {
+ "type": "string",
+ "description": "Which Redis node(s) to reboot. Depending on this value data loss is possible.",
+ "enum": [
+ "PrimaryNode",
+ "SecondaryNode",
+ "AllNodes"
+ ],
+ "x-ms-enum": {
+ "name": "RebootType",
+ "modelAsString": true
+ }
+ },
+ "shardId": {
+ "type": "integer",
+ "format": "int32",
+ "description": "If clustering is enabled, the ID of the shard to be rebooted."
+ },
+ "ports": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ },
+ "description": "A list of redis instances to reboot, specified by per-instance SSL ports or non-SSL ports."
+ }
+ },
+ "description": "Specifies which Redis node(s) to reboot."
+ },
+ "ExportRDBParameters": {
+ "properties": {
+ "format": {
+ "type": "string",
+ "description": "File format."
+ },
+ "prefix": {
+ "type": "string",
+ "description": "Prefix to use for exported files."
+ },
+ "container": {
+ "type": "string",
+ "description": "Container name to export to."
+ }
+ },
+ "required": [
+ "container",
+ "prefix"
+ ],
+ "description": "Parameters for Redis export operation."
+ },
+ "ImportRDBParameters": {
+ "properties": {
+ "format": {
+ "type": "string",
+ "description": "File format."
+ },
+ "files": {
+ "type": "array",
+ "description": "files to import.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "files"
+ ],
+ "description": "Parameters for Redis import operation."
+ },
+ "ScheduleEntry": {
+ "properties": {
+ "dayOfWeek": {
+ "type": "string",
+ "description": "Day of the week when a cache can be patched.",
+ "enum": [
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday",
+ "Sunday",
+ "Everyday",
+ "Weekend"
+ ],
+ "x-ms-enum": {
+ "name": "DayOfWeek",
+ "modelAsString": false
+ }
+ },
+ "startHourUtc": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Start hour after which cache patching can start."
+ },
+ "maintenanceWindow": {
+ "type": "string",
+ "format": "duration",
+ "description": "ISO8601 timespan specifying how much time cache patching can take. "
+ }
+ },
+ "required": [
+ "dayOfWeek",
+ "startHourUtc"
+ ],
+ "description": "Patch schedule entry for a Premium Redis Cache."
+ },
+ "ScheduleEntries": {
+ "properties": {
+ "scheduleEntries": {
+ "x-ms-client-name": "ScheduleEntries",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ScheduleEntry"
+ },
+ "description": "List of patch schedules for a Redis cache."
+ }
+ },
+ "required": [
+ "scheduleEntries"
+ ],
+ "description": "List of patch schedules for a Redis cache."
+ },
+ "RedisPatchSchedule": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ScheduleEntries",
+ "description": "List of patch schedules for a Redis cache."
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Response to put/get patch schedules for Redis cache."
+ },
+ "RedisPatchScheduleListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RedisPatchSchedule"
+ },
+ "description": "Results of the list patch schedules operation."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link for next page of results."
+ }
+ },
+ "description": "The response of list patch schedules Redis operation."
+ },
+ "RedisForceRebootResponse": {
+ "properties": {
+ "message": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Status message"
+ }
+ },
+ "description": "Response to force reboot for Redis cache."
+ },
+ "RedisLinkedServer": {
+ "description": "Linked server Id",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Linked server Id."
+ }
+ }
+ },
+ "RedisLinkedServerWithProperties": {
+ "description": "Response to put/get linked server (with properties) for Redis cache.",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RedisLinkedServerProperties",
+ "description": "Properties of the linked server."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ]
+ },
+ "RedisLinkedServerProperties": {
+ "description": "Properties of a linked server to be returned in get/put response",
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Terminal state of the link between primary and secondary redis cache."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/RedisLinkedServerCreateProperties"
+ }
+ ]
+ },
+ "RedisLinkedServerWithPropertiesList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RedisLinkedServerWithProperties"
+ },
+ "description": "List of linked servers (with properties) of a Redis cache."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link for next set."
+ }
+ },
+ "description": "List of linked servers (with properties) of a Redis cache."
+ },
+ "RedisLinkedServerCreateProperties": {
+ "description": "Create properties for a linked server",
+ "properties": {
+ "linkedRedisCacheId": {
+ "type": "string",
+ "description": "Fully qualified resourceId of the linked redis cache."
+ },
+ "linkedRedisCacheLocation": {
+ "type": "string",
+ "description": "Location of the linked redis cache."
+ },
+ "serverRole": {
+ "type": "string",
+ "description": "Role of the linked server.",
+ "enum": [
+ "Primary",
+ "Secondary"
+ ],
+ "x-ms-enum": {
+ "name": "ReplicationRole",
+ "modelAsString": false
+ }
+ }
+ },
+ "required": [
+ "linkedRedisCacheId",
+ "linkedRedisCacheLocation",
+ "serverRole"
+ ]
+ },
+ "RedisLinkedServerCreateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RedisLinkedServerCreateProperties",
+ "description": "Properties required to create a linked server."
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "description": "Parameter required for creating a linked server to redis cache."
+ },
+ "Operation": {
+ "description": "REST API operation",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}",
+ "type": "string"
+ },
+ "display": {
+ "description": "The object that describes the operation.",
+ "properties": {
+ "provider": {
+ "description": "Friendly name of the resource provider",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Operation type: read, write, delete, listKeys/action, etc.",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource type on which the operation is performed.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Friendly name of the operation",
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "OperationListResult": {
+ "description": "Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of operations supported by the resource provider."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "CheckNameAvailabilityParameters": {
+ "description": "Parameters body to pass for resource name availability check.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Resource name."
+ },
+ "type": {
+ "type": "string",
+ "description": "Resource type. The only legal value of this property for checking redis cache name availability is 'Microsoft.Cache/redis'."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ]
+ },
+ "UpgradeNotification": {
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of upgrade notification."
+ },
+ "timestamp": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "Timestamp when upgrade notification occurred."
+ },
+ "upsellNotification": {
+ "readOnly": true,
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Details about this upgrade notification"
+ }
+ },
+ "description": "Properties of upgrade notification."
+ },
+ "NotificationListResponse": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UpgradeNotification"
+ },
+ "description": "List of all notifications."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Link for next set of notifications."
+ }
+ },
+ "description": "The response of listUpgradeNotifications."
+ }
+ },
+ "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."
+ }
+ }
+}
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 305b826967ce..99cac265a32b 100644
--- a/specification/redis/resource-manager/readme.md
+++ b/specification/redis/resource-manager/readme.md
@@ -26,10 +26,18 @@ These are the global settings for the Redis API.
``` yaml
openapi-type: arm
-tag: package-2019-07-preview
+tag: package-2020-06
```
+### Tag: package-2020-06
+
+These settings apply only when `--tag=package-2020-06` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-06'
+input-file:
+ - Microsoft.Cache/stable/2020-06-01/redis.json
+```
### Tag: package-2019-07-preview
These settings apply only when `--tag=package-2019-07-preview` is specified on the command line.
@@ -130,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
@@ -142,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/CalculateReservationOrder.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/CalculateReservationOrder.json
index 7b653eef3672..f9161a07b3e4 100644
--- a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/CalculateReservationOrder.json
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/CalculateReservationOrder.json
@@ -11,7 +11,7 @@
"billingScopeId": "/subscriptions/ed3a1871-612d-abcd-a849-c2542a68be83",
"term": "P1Y",
"billingPlan": "Monthly",
- "quantity": "1",
+ "quantity": 1,
"displayName": "TestReservationOrder",
"appliedScopes": null,
"appliedScopeType": "Shared",
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/GetCatalog.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/GetCatalog.json
index 9964e3ffff69..d0df20b1593d 100644
--- a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/GetCatalog.json
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/GetCatalog.json
@@ -59,20 +59,16 @@
"P1Y",
"P3Y"
],
- "billingPlans": [
- {
- "P1Y": [
- "Upfront",
- "Monthly"
- ]
- },
- {
- "P3Y": [
- "Upfront",
- "Monthly"
- ]
- }
- ],
+ "billingPlans": {
+ "P1Y": [
+ "Upfront",
+ "Monthly"
+ ],
+ "P3Y": [
+ "Upfront",
+ "Monthly"
+ ]
+ },
"locations": [
"eastus"
],
@@ -122,20 +118,16 @@
"P1Y",
"P3Y"
],
- "billingPlans": [
- {
- "P1Y": [
- "Upfront",
- "Monthly"
- ]
- },
- {
- "P3Y": [
- "Upfront",
- "Monthly"
- ]
- }
- ],
+ "billingPlans": {
+ "P1Y": [
+ "Upfront",
+ "Monthly"
+ ],
+ "P3Y": [
+ "Upfront",
+ "Monthly"
+ ]
+ },
"locations": [
"eastus"
],
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/PurchaseReservationOrder.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/PurchaseReservationOrder.json
index 1666a037a0cb..11823e427401 100644
--- a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/PurchaseReservationOrder.json
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2019-04-01/examples/PurchaseReservationOrder.json
@@ -12,7 +12,7 @@
"billingScopeId": "/subscriptions/ed3a1871-612d-abcd-a849-c2542a68be83",
"term": "P1Y",
"billingPlan": "Monthly",
- "quantity": "1",
+ "quantity": 1,
"displayName": "TestReservationOrder",
"appliedScopes": null,
"appliedScopeType": "Shared",
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/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/CalculateExchange.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/CalculateExchange.json
new file mode 100644
index 000000000000..2b03b22a1bb2
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/CalculateExchange.json
@@ -0,0 +1,114 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "body": {
+ "properties": {
+ "reservationsToPurchase": [
+ {
+ "sku": {
+ "name": "Standard_B1ls"
+ },
+ "location": "westus",
+ "properties": {
+ "reservedResourceType": "VirtualMachines",
+ "billingScopeId": "/subscriptions/ed3a1871-612d-abcd-a849-c2542a68be83",
+ "term": "P1Y",
+ "billingPlan": "Upfront",
+ "quantity": 1,
+ "displayName": "testDisplayName",
+ "appliedScopeType": "Shared",
+ "appliedScopes": null,
+ "renew": false,
+ "reservedResourceProperties": {
+ "instanceFlexibility": "On"
+ }
+ }
+ }
+ ],
+ "reservationsToExchange": [
+ {
+ "id": "/providers/microsoft.capacity/reservationOrders/1f14354c-dc12-4c8d-8090-6f295a3a34aa",
+ "properties": {
+ "scope": "Reservation",
+ "reservationToReturn": {
+ "reservationId": "/providers/microsoft.capacity/reservationOrders/1f14354c-dc12-4c8d-8090-6f295a3a34aa/reservations/c8c926bd-fc5d-4e29-9d43-b68340ac23a6",
+ "quantity": 1
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/providers/microsoft.capacity/operationResults/4e2ffff7-b331-4fcb-ab11-b5fa49368188",
+ "name": "4e2ffff7-b331-4fcb-ab11-b5fa49368188",
+ "status": "Succeeded",
+ "properties": {
+ "sessionId": "66e2ac8f-439e-4345-8235-6fef07608081",
+ "netPayable": {
+ "currencyCode": "EUR",
+ "amount": -688.11
+ },
+ "refundsTotal": {
+ "currencyCode": "EUR",
+ "amount": 2938.11
+ },
+ "purchasesTotal": {
+ "currencyCode": "EUR",
+ "amount": 2250.0
+ },
+ "reservationsToPurchase": [
+ {
+ "billingCurrencyTotal": {
+ "currencyCode": "EUR",
+ "amount": 2250.0
+ }
+ }
+ ],
+ "reservationsToExchange": [
+ {
+ "reservationId": "/providers/microsoft.capacity/reservationOrders/1f14354c-dc12-4c8d-8090-6f295a3a34aa/reservations/c8c926bd-fc5d-4e29-9d43-b68340ac23a6",
+ "quantity": 1,
+ "billingRefundAmount": {
+ "currencyCode": "EUR",
+ "amount": 34.17
+ },
+ "billingInformation": {
+ "billingCurrencyTotalPaidAmount": {
+ "currencyCode": "EUR",
+ "amount": 170.82
+ },
+ "billingCurrencyProratedAmount": {
+ "currencyCode": "EUR",
+ "amount": 136.65
+ },
+ "billingCurrencyRemainingCommitmentAmount": {
+ "currencyCode": "EUR",
+ "amount": 2903.94
+ }
+ }
+ }
+ ],
+ "policyResult": {
+ "policyErrors": [
+ {
+ "code": "RefundsLessThanPurchase",
+ "message": "New purchase amount should be greater than the total refunds."
+ }
+ ]
+ }
+ },
+ "error": null
+ }
+ },
+ "202": {
+ "headers": {
+ "Location": "https://management.azure.com/Microsoft.Capacity/operationResults/8d542218-8bfe-4fd2-b909-0656c610281c?api-version=2019-04-01",
+ "Retry-After": 5
+ }
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/CalculateReservationOrder.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/CalculateReservationOrder.json
new file mode 100644
index 000000000000..6812a7faee0e
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/CalculateReservationOrder.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "body": {
+ "sku": {
+ "name": "standard_D1"
+ },
+ "location": "westus",
+ "properties": {
+ "reservedResourceType": "VirtualMachines",
+ "billingScopeId": "/subscriptions/ed3a1871-612d-abcd-a849-c2542a68be83",
+ "term": "P1Y",
+ "billingPlan": "Monthly",
+ "quantity": 1,
+ "displayName": "TestReservationOrder",
+ "appliedScopes": null,
+ "appliedScopeType": "Shared",
+ "reservedResourceProperties": {
+ "instanceFlexibility": "On"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "billingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 46.0
+ },
+ "reservationOrderId": "6d9cec54-7de8-abcd-9de7-80f5d634f2d2",
+ "skuTitle": "Reserved VM Instance, Standard_D1, US West, 1 Year",
+ "skuDescription": "standard_D1",
+ "pricingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 46.0
+ },
+ "paymentSchedule": [
+ {
+ "dueDate": "2019-05-14",
+ "pricingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 46
+ },
+ "billingCurrencyTotal": {
+ "currencyCode": "EUR",
+ "amount": 40
+ }
+ },
+ {
+ "dueDate": "2019-06-14",
+ "pricingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 46
+ }
+ },
+ {
+ "dueDate": "2019-07-14",
+ "pricingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 46
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/Exchange.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/Exchange.json
new file mode 100644
index 000000000000..6762812a1af6
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/Exchange.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "body": {
+ "properties": {
+ "sessionId": "66e2ac8f-439e-4345-8235-6fef07608081"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/providers/microsoft.capacity/operationResults/4e2ffff7-b331-4fcb-ab11-b5fa49368188",
+ "name": "4e2ffff7-b331-4fcb-ab11-b5fa49368188",
+ "status": "Succeeded",
+ "properties": {
+ "sessionId": "66e2ac8f-439e-4345-8235-6fef07608081",
+ "netPayable": {
+ "currencyCode": "EUR",
+ "amount": -688.11
+ },
+ "refundsTotal": {
+ "currencyCode": "EUR",
+ "amount": 2938.11
+ },
+ "purchasesTotal": {
+ "currencyCode": "EUR",
+ "amount": 2250.0
+ },
+ "reservationsToPurchase": [
+ {
+ "reservationOrderId": "/providers/microsoft.capacity/reservationOrders/1e85c519-b815-4169-8d79-62fc460c608f",
+ "billingCurrencyTotal": {
+ "currencyCode": "EUR",
+ "amount": 2250.0
+ }
+ }
+ ],
+ "reservationsToExchange": [
+ {
+ "reservationId": "/providers/microsoft.capacity/reservationOrders/1f14354c-dc12-4c8d-8090-6f295a3a34aa/reservations/c8c926bd-fc5d-4e29-9d43-b68340ac23a6",
+ "quantity": 1,
+ "billingRefundAmount": {
+ "currencyCode": "EUR",
+ "amount": 34.17
+ },
+ "billingInformation": {
+ "billingCurrencyTotalPaidAmount": {
+ "currencyCode": "EUR",
+ "amount": 170.82
+ },
+ "billingCurrencyProratedAmount": {
+ "currencyCode": "EUR",
+ "amount": 136.65
+ },
+ "billingCurrencyRemainingCommitmentAmount": {
+ "currencyCode": "EUR",
+ "amount": 2903.94
+ }
+ }
+ }
+ ],
+ "policyResult": {
+ "policyErrors": [
+ {
+ "code": "RefundsLessThanPurchase",
+ "message": "New purchase amount should be greater than the total refunds."
+ }
+ ]
+ }
+ },
+ "error": null
+ }
+ },
+ "202": {
+ "headers": {
+ "Location": "https://management.azure.com/Microsoft.Capacity/operationResults/8d542218-8bfe-4fd2-b909-0656c610281c?api-version=2019-04-01",
+ "Retry-After": 5
+ }
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetAppliedReservations.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetAppliedReservations.json
new file mode 100644
index 000000000000..d6cf2fa56335
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetAppliedReservations.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "23bc208b-083f-4901-ae85-4f98c0c3b4b6"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/23bc208b-083f-4901-ae85-4f98c0c3b4b6/providers/microsoft.capacity/AppliedReservations/default",
+ "type": "Microsoft.Capacity/AppliedReservations",
+ "name": "default",
+ "properties": {
+ "reservationOrderIds": {
+ "value": [
+ "/providers/Microsoft.Capacity/reservationorders/e1eccf0b-2db4-4e84-97e7-98b50e9d46f7",
+ "/providers/Microsoft.Capacity/reservationorders/741a32eb-6158-4cee-9642-a0243ae79fac",
+ "/providers/Microsoft.Capacity/reservationorders/e061223d-fcff-4d10-bd49-56a740cfb96a",
+ "/providers/Microsoft.Capacity/reservationorders/2eeb7234-970e-4663-b60b-85241b515901",
+ "/providers/Microsoft.Capacity/reservationorders/9db2f4c5-b1c5-42a8-bd79-ee56cdde2c7f",
+ "/providers/Microsoft.Capacity/reservationorders/5da7a877-6d6e-44af-8880-ed3f533bf928",
+ "/providers/Microsoft.Capacity/reservationorders/f65b0d0a-f945-4105-821c-d00bc8bacde8",
+ "/providers/Microsoft.Capacity/reservationorders/51304124-e477-4b07-b9fa-03b05c8b924b",
+ "/providers/Microsoft.Capacity/reservationorders/f5409b98-8a42-4dc6-be0a-cc59bef4d0db",
+ "/providers/Microsoft.Capacity/reservationorders/a495550a-80a4-46f8-8843-34d4df46f9a6",
+ "/providers/Microsoft.Capacity/reservationorders/1a966e18-c272-4ce1-a0c2-d4e1039023c3",
+ "/providers/Microsoft.Capacity/reservationorders/939310b4-f9de-4645-9569-ab5b6cfe958e",
+ "/providers/Microsoft.Capacity/reservationorders/4193a889-7c3b-44dc-8b7b-bfd7aad6c723"
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetAvailableScope.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetAvailableScope.json
new file mode 100644
index 000000000000..1ab63999604f
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetAvailableScope.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "reservationOrderId": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da",
+ "reservationId": "356e7ae4-84d0-4da6-ab4b-d6b94f3557da",
+ "body": {
+ "properties": {
+ "scopes": [
+ "/subscriptions/efc7c997-7700-4a74-b731-55aec16c15e9"
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "scopes": [
+ {
+ "scope": "/subscriptions/efc7c997-7700-4a74-b731-55aec16c15e9",
+ "valid": true
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetCatalog.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetCatalog.json
new file mode 100644
index 000000000000..dc2d46e8fe65
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetCatalog.json
@@ -0,0 +1,169 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "subscriptionId": "23bc208b-083f-4901-ae85-4f98c0c3b4b6",
+ "reservedResourceType": "VirtualMachines",
+ "location": "eastus"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "resourceType": "VirtualMachines",
+ "name": "Standard_DS5_v2",
+ "terms": [
+ "P1Y",
+ "P3Y"
+ ],
+ "billingPlans": {
+ "P1Y": [
+ "Upfront",
+ "Monthly"
+ ],
+ "P3Y": [
+ "Upfront",
+ "Monthly"
+ ]
+ },
+ "locations": [
+ "eastus"
+ ],
+ "skuProperties": [
+ {
+ "name": "Cores",
+ "value": "16"
+ },
+ {
+ "name": "ProductTitle",
+ "value": "DSv2 Series, DS5"
+ },
+ {
+ "name": "ProductShortName",
+ "value": "DSv2 Series"
+ },
+ {
+ "name": "SKUName",
+ "value": "DS5 v2"
+ },
+ {
+ "name": "MeterId",
+ "value": "12bc208b-083f-4901-ae85-4f98c0c3b4b8"
+ }
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "VirtualMachines",
+ "name": "Standard_D1",
+ "terms": [
+ "P1Y",
+ "P3Y"
+ ],
+ "billingPlans": {
+ "P1Y": [
+ "Upfront",
+ "Monthly"
+ ],
+ "P3Y": [
+ "Upfront",
+ "Monthly"
+ ]
+ },
+ "locations": [
+ "eastus"
+ ],
+ "skuProperties": [
+ {
+ "name": "Cores",
+ "value": "1"
+ },
+ {
+ "name": "ProductTitle",
+ "value": "D Series, D1"
+ },
+ {
+ "name": "ProductShortName",
+ "value": "D Series"
+ },
+ {
+ "name": "SKUName",
+ "value": "D1"
+ },
+ {
+ "name": "MeterId",
+ "value": "12bc208b-083f-4901-ae85-4f98c0c3b4b8"
+ }
+ ],
+ "restrictions": [
+ {
+ "type": "Term",
+ "values": [
+ "P1Y"
+ ],
+ "reasonCode": "NotAvailableForSubscription"
+ },
+ {
+ "type": "Term",
+ "values": [
+ "P3Y"
+ ],
+ "reasonCode": "NotAvailableForSubscription"
+ }
+ ]
+ },
+ {
+ "resourceType": "VirtualMachines",
+ "name": "Standard_F2",
+ "terms": [
+ "P1Y",
+ "P3Y"
+ ],
+ "billingPlans": {
+ "P1Y": [
+ "Upfront",
+ "Monthly"
+ ],
+ "P3Y": [
+ "Upfront",
+ "Monthly"
+ ]
+ },
+ "locations": [
+ "eastus"
+ ],
+ "skuProperties": [
+ {
+ "name": "Cores",
+ "value": "2"
+ },
+ {
+ "name": "ProductTitle",
+ "value": "F Series, F2"
+ },
+ {
+ "name": "ProductShortName",
+ "value": "F Series"
+ },
+ {
+ "name": "SKUName",
+ "value": "F2"
+ },
+ {
+ "name": "MeterId",
+ "value": "12bc208b-083f-4901-ae85-4f98c0c3b4b8"
+ }
+ ],
+ "restrictions": [
+ {
+ "type": "Location",
+ "values": [
+ "eastus"
+ ],
+ "reasonCode": "NotAvailableForSubscription"
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetOperations.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetOperations.json
new file mode 100644
index 000000000000..0232a3d253ff
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetOperations.json
@@ -0,0 +1,103 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.Capacity/reservationorders/read",
+ "display": {
+ "provider": "Microsoft Capacity",
+ "resource": "Reservations",
+ "operation": "Get Reservations",
+ "description": "Read All Reservations"
+ }
+ },
+ {
+ "name": "Microsoft.Capacity/reservationorders/write",
+ "display": {
+ "provider": "Microsoft Capacity",
+ "resource": "Reservations",
+ "operation": "Create Reservations",
+ "description": "Create any Reservation"
+ }
+ },
+ {
+ "name": "Microsoft.Capacity/reservationorders/action",
+ "display": {
+ "provider": "Microsoft Capacity",
+ "resource": "Reservations",
+ "operation": "Update Reservations",
+ "description": "Update any Reservation"
+ }
+ },
+ {
+ "name": "Microsoft.Capacity/reservationorders/delete",
+ "display": {
+ "provider": "Microsoft Capacity",
+ "resource": "Reservations",
+ "operation": "Delete Reservations",
+ "description": "Delete any Reservation"
+ }
+ },
+ {
+ "name": "Microsoft.Capacity/reservationorders/reservations/read",
+ "display": {
+ "provider": "Microsoft Capacity",
+ "resource": "Reservations",
+ "operation": "Get Reservations",
+ "description": "Read All Reservations"
+ }
+ },
+ {
+ "name": "Microsoft.Capacity/reservationorders/reservations/write",
+ "display": {
+ "provider": "Microsoft Capacity",
+ "resource": "Reservations",
+ "operation": "Create Reservations",
+ "description": "Create any Reservation"
+ }
+ },
+ {
+ "name": "Microsoft.Capacity/reservationorders/reservations/action",
+ "display": {
+ "provider": "Microsoft Capacity",
+ "resource": "Reservations",
+ "operation": "Update Reservations",
+ "description": "Update any Reservation"
+ }
+ },
+ {
+ "name": "Microsoft.Capacity/reservationorders/reservations/delete",
+ "display": {
+ "provider": "Microsoft Capacity",
+ "resource": "Reservations",
+ "operation": "Delete Reservations",
+ "description": "Delete any Reservation"
+ }
+ },
+ {
+ "name": "Microsoft.Capacity/reservationorders/reservations/revisions/read",
+ "display": {
+ "provider": "Microsoft Capacity",
+ "resource": "Reservations",
+ "operation": "Get Reservations",
+ "description": "Read All Reservations"
+ }
+ },
+ {
+ "name": "Microsoft.Capacity/register/action",
+ "display": {
+ "provider": "Microsoft Capacity",
+ "resource": "Reservations",
+ "operation": "Registers the Capacity Resource Provider.",
+ "description": "Registers the Capacity resource provider and enables the creation of Capacity resources."
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationDetails.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationDetails.json
new file mode 100644
index 000000000000..4921383e79b6
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationDetails.json
@@ -0,0 +1,77 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "reservationOrderId": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da",
+ "reservationId": "6ef59113-3482-40da-8d79-787f823e34bc",
+ "expand": "renewProperties"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/6ef59113-3482-40da-8d79-787f823e34bc",
+ "type": "Microsoft.Capacity/reservationOrders/reservations",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/6ef59113-3482-40da-8d79-787f823e34bc",
+ "etag": 2,
+ "location": "eastus",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/98df3792-7962-4f18-8be2-d5576f122de3"
+ ],
+ "renew": false,
+ "renewSource": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "renewDestination": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "billingScopeId": "/subscriptions/19376483-64b8-49e4-a931-d5248828720a",
+ "appliedScopeType": "Single",
+ "billingPlan": "Monthly",
+ "quantity": 3,
+ "provisioningState": "Succeeded",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "effectiveDateTime": "2017-09-22T22:46:32.7632798Z",
+ "lastUpdatedDateTime": "2017-09-22T22:46:32.7632798Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "Off",
+ "skuDescription": "D1 v2",
+ "term": "P1Y",
+ "mergeProperties": {
+ "mergeSources": [
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de"
+ ]
+ },
+ "renewProperties": {
+ "purchaseProperties": {
+ "sku": {
+ "name": "Standard_D1"
+ },
+ "location": "westus",
+ "properties": {
+ "billingScopeId": "/subscriptions/19376483-64b8-49e4-a931-d5248828720a",
+ "term": "P1Y",
+ "quantity": 2,
+ "displayName": "Renew_Test_0618",
+ "appliedScopeType": "Shared",
+ "reservedResourceType": "VirtualMachines",
+ "reservedResourceProperties": {
+ "instanceFlexibility": "On"
+ },
+ "renew": false
+ }
+ },
+ "billingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466.0
+ },
+ "pricingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466.0
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationOrderDetails.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationOrderDetails.json
new file mode 100644
index 000000000000..38ee57b5e5d2
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationOrderDetails.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "reservationOrderId": "a075419f-44cc-497f-b68a-14ee811d48b9"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/providers/microsoft.capacity/reservationOrders/1f14354c-dc12-4c8d-8090-6f295a3a34aa",
+ "type": "Microsoft.Capacity/reservationOrders",
+ "name": "1f14354c-dc12-4c8d-8090-6f295a3a34aa",
+ "etag": 7,
+ "properties": {
+ "displayName": "cabri",
+ "requestDateTime": "2017-08-30T03:49:19.0252126Z",
+ "createdDateTime": "2017-08-30T03:51:49.8083758Z",
+ "expiryDate": "2018-08-30",
+ "term": "P1Y",
+ "billingPlan": "Monthly",
+ "provisioningState": "Succeeded",
+ "reservations": [
+ {
+ "id": "/providers/microsoft.capacity/reservationOrders/1f14354c-dc12-4c8d-8090-6f295a3a34aa/reservations/c8c926bd-fc5d-4e29-9d43-b68340ac23a6"
+ }
+ ],
+ "originalQuantity": 7
+ }
+ }
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationOrderDetailsWithExpandPlanInformation.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationOrderDetailsWithExpandPlanInformation.json
new file mode 100644
index 000000000000..8bf795789305
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationOrderDetailsWithExpandPlanInformation.json
@@ -0,0 +1,130 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "reservationOrderId": "a075419f-44cc-497f-b68a-14ee811d48b9",
+ "$expand": "schedule"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/providers/microsoft.capacity/reservationOrders/1f14354c-dc12-4c8d-8090-6f295a3a34aa",
+ "type": "Microsoft.Capacity/reservationOrders",
+ "name": "1f14354c-dc12-4c8d-8090-6f295a3a34aa",
+ "etag": 7,
+ "properties": {
+ "displayName": "cabri",
+ "requestDateTime": "2019-08-30T03:49:19Z",
+ "createdDateTime": "2019-08-30T03:51:49Z",
+ "expiryDate": "2018-08-30",
+ "term": "P1Y",
+ "billingPlan": "Monthly",
+ "provisioningState": "Succeeded",
+ "reservations": [
+ {
+ "id": "/providers/microsoft.capacity/reservationOrders/1f14354c-dc12-4c8d-8090-6f295a3a34aa/reservations/c8c926bd-fc5d-4e29-9d43-b68340ac23a6"
+ }
+ ],
+ "originalQuantity": 7,
+ "planInformation": {
+ "pricingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466
+ },
+ "startDate": "2019-08-30",
+ "nextPaymentDueDate": "2019-09-30",
+ "transactions": [
+ {
+ "dueDate": "2019-09-30",
+ "paymentDate": "2019-09-30",
+ "status": "Succeeded",
+ "pricingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466
+ },
+ "billingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466
+ },
+ "billingAccount": "23456"
+ },
+ {
+ "dueDate": "2019-10-30",
+ "paymentDate": "2019-10-30",
+ "status": "Failed",
+ "pricingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466
+ },
+ "billingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466
+ },
+ "extendedStatusInfo": {
+ "statusCode": "PaymentDeclined",
+ "message": "Credit card charge failed."
+ },
+ "billingAccount": "23456"
+ },
+ {
+ "dueDate": "2019-10-31",
+ "paymentDate": "2019-10-31",
+ "status": "Succeeded",
+ "pricingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466
+ },
+ "billingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466
+ },
+ "billingAccount": "23456"
+ },
+ {
+ "dueDate": "2019-11-30",
+ "paymentDate": "2019-11-30",
+ "status": "Succeeded",
+ "pricingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466
+ },
+ "billingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466
+ },
+ "billingAccount": "23456"
+ },
+ {
+ "dueDate": "2019-07-14",
+ "paymentDate": "2019-06-14",
+ "status": "Scheduled",
+ "pricingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466
+ },
+ "billingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466
+ },
+ "billingAccount": "23456"
+ },
+ {
+ "dueDate": "2019-06-14",
+ "paymentDate": "2019-08-14",
+ "status": "Scheduled",
+ "pricingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466
+ },
+ "billingCurrencyTotal": {
+ "currencyCode": "USD",
+ "amount": 466
+ },
+ "billingAccount": "23456"
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationOrders.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationOrders.json
new file mode 100644
index 000000000000..fb4841314547
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationOrders.json
@@ -0,0 +1,77 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/providers/microsoft.capacity/reservationOrders/1e6407ba-37a5-499f-80ed-a3f0f338e443",
+ "type": "Microsoft.Capacity/reservationOrders",
+ "name": "1e6407ba-37a5-499f-80ed-a3f0f338e443",
+ "etag": 7,
+ "properties": {
+ "displayName": "cabri",
+ "requestDateTime": "2017-08-29T21:20:23.8134834Z",
+ "createdDateTime": "2017-08-29T21:22:56.8541664Z",
+ "expiryDate": "2018-08-29",
+ "term": "P1Y",
+ "billingPlan": "Monthly",
+ "provisioningState": "Succeeded",
+ "reservations": [
+ {
+ "id": "/providers/microsoft.capacity/reservationOrders/1e6407ba-37a5-499f-80ed-a3f0f338e443/reservations/cae5924e-7a15-419f-a369-124f52d4a106"
+ }
+ ],
+ "originalQuantity": 1
+ }
+ },
+ {
+ "id": "/providers/microsoft.capacity/reservationOrders/1ea6e203-288e-4732-b9e1-da8bbe10c614",
+ "type": "Microsoft.Capacity/reservationOrders",
+ "name": "1ea6e203-288e-4732-b9e1-da8bbe10c614",
+ "etag": 7,
+ "properties": {
+ "displayName": "cabri",
+ "requestDateTime": "2017-08-30T12:55:40.2799114Z",
+ "createdDateTime": "2017-08-30T12:58:20.526Z",
+ "expiryDate": "2018-08-30",
+ "term": "P1Y",
+ "billingPlan": "Monthly",
+ "provisioningState": "Succeeded",
+ "reservations": [
+ {
+ "id": "/providers/microsoft.capacity/reservationOrders/1ea6e203-288e-4732-b9e1-da8bbe10c614/reservations/d04fd48d-e3f6-42a3-a8f6-1ad0b7513e48"
+ }
+ ],
+ "originalQuantity": 9
+ }
+ },
+ {
+ "id": "/providers/microsoft.capacity/reservationOrders/1f14354c-dc12-4c8d-8090-6f295a3a34aa",
+ "type": "Microsoft.Capacity/reservationOrders",
+ "name": "1f14354c-dc12-4c8d-8090-6f295a3a34aa",
+ "etag": 7,
+ "properties": {
+ "displayName": "cabri",
+ "requestDateTime": "2017-08-30T03:49:19.0252126Z",
+ "createdDateTime": "2017-08-30T03:51:49.8083758Z",
+ "expiryDate": "2018-08-30",
+ "term": "P1Y",
+ "billingPlan": "Monthly",
+ "provisioningState": "Succeeded",
+ "reservations": [
+ {
+ "id": "/providers/microsoft.capacity/reservationOrders/1f14354c-dc12-4c8d-8090-6f295a3a34aa/reservations/c8c926bd-fc5d-4e29-9d43-b68340ac23a6"
+ }
+ ],
+ "originalQuantity": 7
+ }
+ }
+ ],
+ "nextLink": "https://management.azure.com/providers/Microsoft.Capacity/reservationOrders?api-version=2017-11-01&%24skiptoken=eyJyZyI6IjIwNTkyMzdlLWY3MmYtNDczYi1hNTZiLWExOGJkM2UwMDhlZCIsImlnIjpudWxsLCJzdCI6bnVsbH0%3d"
+ }
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationRevisions.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationRevisions.json
new file mode 100644
index 000000000000..4aef3b2294d4
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservationRevisions.json
@@ -0,0 +1,143 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "reservationOrderId": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da",
+ "reservationId": "6ef59113-3482-40da-8d79-787f823e34bc"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/6ef59113-3482-40da-8d79-787f823e34bc/revisions/4",
+ "type": "Microsoft.Capacity/reservationOrders/reservations/revisions",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/6ef59113-3482-40da-8d79-787f823e34bc/4",
+ "etag": 4,
+ "location": "eastus",
+ "properties": {
+ "appliedScopeType": "Shared",
+ "quantity": 3,
+ "provisioningState": "Succeeded",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "billingPlan": "Monthly",
+ "effectiveDateTime": "2017-09-22T23:57:48.1891638Z",
+ "lastUpdatedDateTime": "2017-09-22T23:57:54.3768768Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "On",
+ "skuDescription": "D1 v2",
+ "mergeProperties": {
+ "mergeSources": [
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de"
+ ]
+ }
+ }
+ },
+ {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/6ef59113-3482-40da-8d79-787f823e34bc/revisions/3",
+ "type": "Microsoft.Capacity/reservationOrders/reservations/revisions",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/6ef59113-3482-40da-8d79-787f823e34bc/3",
+ "etag": 3,
+ "location": "eastus",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/98df3792-7962-4f18-8be2-d5576f122de3"
+ ],
+ "appliedScopeType": "Single",
+ "quantity": 3,
+ "provisioningState": "Succeeded",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "billingPlan": "Monthly",
+ "effectiveDateTime": "2017-09-22T22:46:32.7632798Z",
+ "extendedStatusInfo": {
+ "statusCode": "Pending",
+ "message": "An operation is in progress on your reservation. Please wait for operation to complete before taking further action"
+ },
+ "lastUpdatedDateTime": "2017-09-22T23:57:47.488284Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "On",
+ "skuDescription": "D1 v2",
+ "mergeProperties": {
+ "mergeSources": [
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de"
+ ]
+ }
+ }
+ },
+ {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/6ef59113-3482-40da-8d79-787f823e34bc/revisions/2",
+ "type": "Microsoft.Capacity/reservationOrders/reservations/revisions",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/6ef59113-3482-40da-8d79-787f823e34bc/2",
+ "etag": 2,
+ "location": "eastus",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/98df3792-7962-4f18-8be2-d5576f122de3"
+ ],
+ "appliedScopeType": "Single",
+ "quantity": 3,
+ "provisioningState": "Succeeded",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "billingPlan": "Monthly",
+ "effectiveDateTime": "2017-09-22T22:46:32.7632798Z",
+ "lastUpdatedDateTime": "2017-09-22T22:46:32.7632798Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "On",
+ "skuDescription": "D1 v2",
+ "mergeProperties": {
+ "mergeSources": [
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de"
+ ]
+ }
+ }
+ },
+ {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/6ef59113-3482-40da-8d79-787f823e34bc/revisions/1",
+ "type": "Microsoft.Capacity/reservationOrders/reservations/revisions",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/6ef59113-3482-40da-8d79-787f823e34bc/1",
+ "etag": 1,
+ "location": "eastus",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/98df3792-7962-4f18-8be2-d5576f122de3"
+ ],
+ "appliedScopeType": "Single",
+ "quantity": 3,
+ "provisioningState": "Creating",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "effectiveDateTime": "2017-09-22T22:46:27.3313607Z",
+ "lastUpdatedDateTime": "2017-09-22T22:46:27.3313607Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "On",
+ "skuDescription": "D1 v2",
+ "mergeProperties": {
+ "mergeSources": [
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de"
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservations.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservations.json
new file mode 100644
index 000000000000..297f29b20a54
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/GetReservations.json
@@ -0,0 +1,162 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "reservationOrderId": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/bcae77cd-3119-4766-919f-b50d36c75c7a",
+ "type": "Microsoft.Capacity/reservationOrders/reservations",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/bcae77cd-3119-4766-919f-b50d36c75c7a",
+ "etag": 10,
+ "location": "eastus",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/98df3792-7962-4f18-8be2-d5576f122de3"
+ ],
+ "renew": false,
+ "billingScopeId": "/subscriptions/19376483-64b8-49e4-a931-d5248828720a",
+ "appliedScopeType": "Single",
+ "quantity": 3,
+ "provisioningState": "Cancelled",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "billingPlan": "Monthly",
+ "effectiveDateTime": "2017-09-22T01:00:30.9253826Z",
+ "extendedStatusInfo": {
+ "statusCode": "Split",
+ "message": "This reservation was split and is no longer active."
+ },
+ "lastUpdatedDateTime": "2017-09-22T01:00:36.3191627Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "On",
+ "skuDescription": "D1 v2",
+ "splitProperties": {
+ "splitDestinations": [
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de"
+ ]
+ }
+ }
+ },
+ {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "type": "Microsoft.Capacity/reservationOrders/reservations",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/00238563-7312-4c20-a134-8c030bf938a7",
+ "etag": 5,
+ "location": "eastus",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/98df3792-7962-4f18-8be2-d5576f122de3"
+ ],
+ "renew": false,
+ "billingScopeId": "/subscriptions/19376483-64b8-49e4-a931-d5248828720a",
+ "appliedScopeType": "Single",
+ "quantity": 1,
+ "provisioningState": "Cancelled",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "billingPlan": "Monthly",
+ "effectiveDateTime": "2017-09-22T22:46:32.7632798Z",
+ "extendedStatusInfo": {
+ "statusCode": "Merged",
+ "message": "This reservation was merged and is no longer active."
+ },
+ "lastUpdatedDateTime": "2017-09-22T22:46:32.7632798Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "On",
+ "skuDescription": "D1 v2",
+ "splitProperties": {
+ "splitSource": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/bcae77cd-3119-4766-919f-b50d36c75c7a"
+ },
+ "mergeProperties": {
+ "mergeDestination": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/6ef59113-3482-40da-8d79-787f823e34bc"
+ }
+ }
+ },
+ {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de",
+ "type": "Microsoft.Capacity/reservationOrders/reservations",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de",
+ "etag": 4,
+ "location": "eastus",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/98df3792-7962-4f18-8be2-d5576f122de3"
+ ],
+ "renew": false,
+ "billingScopeId": "/subscriptions/19376483-64b8-49e4-a931-d5248828720a",
+ "appliedScopeType": "Single",
+ "quantity": 2,
+ "provisioningState": "Cancelled",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "billingPlan": "Monthly",
+ "effectiveDateTime": "2017-09-22T22:46:32.7632798Z",
+ "extendedStatusInfo": {
+ "statusCode": "Merged",
+ "message": "This reservation was merged and is no longer active."
+ },
+ "lastUpdatedDateTime": "2017-09-22T22:46:32.7632798Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "On",
+ "skuDescription": "D1 v2",
+ "splitProperties": {
+ "splitSource": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/bcae77cd-3119-4766-919f-b50d36c75c7a"
+ },
+ "mergeProperties": {
+ "mergeDestination": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/6ef59113-3482-40da-8d79-787f823e34bc"
+ }
+ }
+ },
+ {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/6ef59113-3482-40da-8d79-787f823e34bc",
+ "type": "Microsoft.Capacity/reservationOrders/reservations",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/6ef59113-3482-40da-8d79-787f823e34bc",
+ "etag": 2,
+ "location": "eastus",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/98df3792-7962-4f18-8be2-d5576f122de3"
+ ],
+ "renew": false,
+ "billingScopeId": "/subscriptions/19376483-64b8-49e4-a931-d5248828720a",
+ "appliedScopeType": "Single",
+ "quantity": 3,
+ "provisioningState": "Succeeded",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "billingPlan": "Monthly",
+ "effectiveDateTime": "2017-09-22T22:46:32.7632798Z",
+ "lastUpdatedDateTime": "2017-09-22T22:46:32.7632798Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "On",
+ "skuDescription": "D1 v2",
+ "mergeProperties": {
+ "mergeSources": [
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de"
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/MergeReservations.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/MergeReservations.json
new file mode 100644
index 000000000000..2c05fd9c647b
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/MergeReservations.json
@@ -0,0 +1,131 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "reservationOrderId": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da",
+ "body": {
+ "properties": {
+ "sources": [
+ "/providers/Microsoft.Capacity/reservationOrders/c0565a8a-4491-4e77-b07b-5e6d66718e1c/reservations/cea04232-932e-47db-acb5-e29a945ecc73",
+ "/providers/Microsoft.Capacity/reservationOrders/c0565a8a-4491-4e77-b07b-5e6d66718e1c/reservations/5bf54dc7-dacd-4f46-a16b-7b78f4a59799"
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "type": "Microsoft.Capacity/reservationOrders/reservations",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/00238563-7312-4c20-a134-8c030bf938a7",
+ "etag": 5,
+ "location": "eastus",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/98df3792-7962-4f18-8be2-d5576f122de3"
+ ],
+ "renew": false,
+ "billingScopeId": "/subscriptions/19376483-64b8-49e4-a931-d5248828720a",
+ "appliedScopeType": "Single",
+ "quantity": 1,
+ "provisioningState": "Cancelled",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "billingPlan": "Monthly",
+ "effectiveDateTime": "2017-09-22T22:46:32.7632798Z",
+ "extendedStatusInfo": {
+ "statusCode": "Merged",
+ "message": "This reservation was merged and is no longer active."
+ },
+ "lastUpdatedDateTime": "2017-09-22T22:46:32.7632798Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "Off",
+ "skuDescription": "D1 v2",
+ "splitProperties": {
+ "splitSource": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/bcae77cd-3119-4766-919f-b50d36c75c7a"
+ },
+ "mergeProperties": {
+ "mergeDestination": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/6ef59113-3482-40da-8d79-787f823e34bc"
+ }
+ }
+ },
+ {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de",
+ "type": "Microsoft.Capacity/reservationOrders/reservations",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de",
+ "etag": 4,
+ "location": "eastus",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/98df3792-7962-4f18-8be2-d5576f122de3"
+ ],
+ "renew": false,
+ "billingScopeId": "/subscriptions/19376483-64b8-49e4-a931-d5248828720a",
+ "appliedScopeType": "Single",
+ "quantity": 2,
+ "provisioningState": "Cancelled",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "billingPlan": "Monthly",
+ "effectiveDateTime": "2017-09-22T22:46:32.7632798Z",
+ "extendedStatusInfo": {
+ "statusCode": "Merged",
+ "message": "This reservation was merged and is no longer active."
+ },
+ "lastUpdatedDateTime": "2017-09-22T22:46:32.7632798Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "Off",
+ "skuDescription": "D1 v2",
+ "splitProperties": {
+ "splitSource": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/bcae77cd-3119-4766-919f-b50d36c75c7a"
+ },
+ "mergeProperties": {
+ "mergeDestination": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/6ef59113-3482-40da-8d79-787f823e34bc"
+ }
+ }
+ },
+ {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/6ef59113-3482-40da-8d79-787f823e34bc",
+ "type": "Microsoft.Capacity/reservationOrders/reservations",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/6ef59113-3482-40da-8d79-787f823e34bc",
+ "etag": 2,
+ "location": "eastus",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/98df3792-7962-4f18-8be2-d5576f122de3"
+ ],
+ "renew": false,
+ "billingScopeId": "/subscriptions/19376483-64b8-49e4-a931-d5248828720a",
+ "appliedScopeType": "Single",
+ "quantity": 3,
+ "provisioningState": "Succeeded",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "billingPlan": "Monthly",
+ "effectiveDateTime": "2017-09-22T22:46:32.7632798Z",
+ "lastUpdatedDateTime": "2017-09-22T22:46:32.7632798Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "Off",
+ "skuDescription": "D1 v2",
+ "mergeProperties": {
+ "mergeSources": [
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de"
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "202": {}
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/PurchaseReservationOrder.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/PurchaseReservationOrder.json
new file mode 100644
index 000000000000..5546d981dc2d
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/PurchaseReservationOrder.json
@@ -0,0 +1,74 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "reservationOrderId": "a075419f-44cc-497f-b68a-14ee811d48b9",
+ "body": {
+ "sku": {
+ "name": "standard_D1"
+ },
+ "location": "westus",
+ "properties": {
+ "reservedResourceType": "VirtualMachines",
+ "billingScopeId": "/subscriptions/ed3a1871-612d-abcd-a849-c2542a68be83",
+ "term": "P1Y",
+ "billingPlan": "Monthly",
+ "quantity": 1,
+ "displayName": "TestReservationOrder",
+ "appliedScopes": null,
+ "appliedScopeType": "Shared",
+ "reservedResourceProperties": {
+ "instanceFlexibility": "On"
+ },
+ "renew": false
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/providers/microsoft.capacity/reservationOrders/1f14354c-dc12-4c8d-8090-6f295a3a34aa",
+ "type": "Microsoft.Capacity/reservationOrders",
+ "name": "1f14354c-dc12-4c8d-8090-6f295a3a34aa",
+ "etag": 7,
+ "properties": {
+ "displayName": "cabri",
+ "requestDateTime": "2017-08-30T03:49:19.0252126Z",
+ "createdDateTime": "2017-08-30T03:51:49.8083758Z",
+ "expiryDate": "2018-08-30",
+ "term": "P1Y",
+ "billingPlan": "Monthly",
+ "provisioningState": "Succeeded",
+ "reservations": [
+ {
+ "id": "/providers/microsoft.capacity/reservationOrders/1f14354c-dc12-4c8d-8090-6f295a3a34aa/reservations/c8c926bd-fc5d-4e29-9d43-b68340ac23a6"
+ }
+ ],
+ "originalQuantity": 7
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/providers/microsoft.capacity/reservationOrders/1f14354c-dc12-4c8d-8090-6f295a3a34aa",
+ "type": "Microsoft.Capacity/reservationOrders",
+ "name": "1f14354c-dc12-4c8d-8090-6f295a3a34aa",
+ "etag": 7,
+ "properties": {
+ "displayName": "cabri",
+ "billingPlan": "Monthly",
+ "requestDateTime": "2017-08-30T03:49:19.0252126Z",
+ "createdDateTime": "2017-08-30T03:51:49.8083758Z",
+ "expiryDate": "2018-08-30",
+ "term": "P1Y",
+ "provisioningState": "Succeeded",
+ "reservations": [
+ {
+ "id": "/providers/microsoft.capacity/reservationOrders/1f14354c-dc12-4c8d-8090-6f295a3a34aa/reservations/c8c926bd-fc5d-4e29-9d43-b68340ac23a6"
+ }
+ ],
+ "originalQuantity": 7
+ }
+ }
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/SplitReservation.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/SplitReservation.json
new file mode 100644
index 000000000000..36872b55a134
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/SplitReservation.json
@@ -0,0 +1,122 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "reservationOrderId": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da",
+ "body": {
+ "properties": {
+ "quantities": [
+ 1,
+ 2
+ ],
+ "reservationId": "/providers/Microsoft.Capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/bcae77cd-3119-4766-919f-b50d36c75c7a"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "type": "Microsoft.Capacity/reservationOrders/reservations",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/00238563-7312-4c20-a134-8c030bf938a7",
+ "etag": 2,
+ "location": "eastus",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/98df3792-7962-4f18-8be2-d5576f122de3"
+ ],
+ "renew": false,
+ "billingScopeId": "/subscriptions/19376483-64b8-49e4-a931-d5248828720a",
+ "appliedScopeType": "Single",
+ "quantity": 1,
+ "provisioningState": "Succeeded",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "billingPlan": "Monthly",
+ "effectiveDateTime": "2017-09-22T01:00:30.9253826Z",
+ "lastUpdatedDateTime": "2017-09-22T01:00:36.3191627Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "Off",
+ "skuDescription": "D1 v2",
+ "splitProperties": {
+ "splitSource": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/bcae77cd-3119-4766-919f-b50d36c75c7a"
+ }
+ }
+ },
+ {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de",
+ "type": "Microsoft.Capacity/reservationOrders/reservations",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de",
+ "etag": 2,
+ "location": "eastus",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/98df3792-7962-4f18-8be2-d5576f122de3"
+ ],
+ "renew": false,
+ "billingScopeId": "/subscriptions/19376483-64b8-49e4-a931-d5248828720a",
+ "appliedScopeType": "Single",
+ "quantity": 2,
+ "provisioningState": "Succeeded",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "billingPlan": "Monthly",
+ "effectiveDateTime": "2017-09-22T01:00:30.9253826Z",
+ "lastUpdatedDateTime": "2017-09-22T01:00:36.3191627Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "Off",
+ "skuDescription": "D1 v2",
+ "splitProperties": {
+ "splitSource": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/bcae77cd-3119-4766-919f-b50d36c75c7a"
+ }
+ }
+ },
+ {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/bcae77cd-3119-4766-919f-b50d36c75c7a",
+ "type": "Microsoft.Capacity/reservationOrders/reservations",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/bcae77cd-3119-4766-919f-b50d36c75c7a",
+ "etag": 10,
+ "location": "eastus",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/98df3792-7962-4f18-8be2-d5576f122de3"
+ ],
+ "renew": false,
+ "billingScopeId": "/subscriptions/19376483-64b8-49e4-a931-d5248828720a",
+ "appliedScopeType": "Single",
+ "quantity": 3,
+ "provisioningState": "Cancelled",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "billingPlan": "Monthly",
+ "effectiveDateTime": "2017-09-22T01:00:30.9253826Z",
+ "extendedStatusInfo": {
+ "statusCode": "Split",
+ "message": "This reservation was split and is no longer active."
+ },
+ "lastUpdatedDateTime": "2017-09-22T01:00:36.3191627Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "Off",
+ "skuDescription": "D1 v2",
+ "splitProperties": {
+ "splitDestinations": [
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de"
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "202": {}
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/UpdateReservation.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/UpdateReservation.json
new file mode 100644
index 000000000000..28fe38baaef2
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/examples/UpdateReservation.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "api-version": "2020-10-01-preview",
+ "reservationOrderId": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da",
+ "reservationId": "6ef59113-3482-40da-8d79-787f823e34bc",
+ "parameters": {
+ "properties": {
+ "appliedScopeType": "Shared",
+ "instanceFlexibility": "Off"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "sku": {
+ "name": "Standard_DS1_v2"
+ },
+ "id": "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/6ef59113-3482-40da-8d79-787f823e34bc",
+ "type": "Microsoft.Capacity/reservationOrders/reservations",
+ "name": "276e7ae4-84d0-4da6-ab4b-d6b94f3557da/6ef59113-3482-40da-8d79-787f823e34bc",
+ "etag": 4,
+ "location": "eastus",
+ "properties": {
+ "appliedScopeType": "Shared",
+ "renew": false,
+ "billingScopeId": "/subscriptions/19376483-64b8-49e4-a931-d5248828720a",
+ "quantity": 3,
+ "provisioningState": "Succeeded",
+ "expiryDate": "2018-09-22",
+ "displayName": "cabri_test",
+ "billingPlan": "Monthly",
+ "effectiveDateTime": "2017-09-22T23:57:48.1891638Z",
+ "lastUpdatedDateTime": "2017-09-22T23:57:54.3768768Z",
+ "reservedResourceType": "VirtualMachines",
+ "instanceFlexibility": "Off",
+ "skuDescription": "D1 v2",
+ "mergeProperties": {
+ "mergeSources": [
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/00238563-7312-4c20-a134-8c030bf938a7",
+ "/providers/microsoft.capacity/reservationOrders/276e7ae4-84d0-4da6-ab4b-d6b94f3557da/reservations/e0e4b4f5-77ea-4984-9ee4-6bf9850ee6de"
+ ]
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/reservations.json b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/reservations.json
new file mode 100644
index 000000000000..65ffe539d6a2
--- /dev/null
+++ b/specification/reservations/resource-manager/Microsoft.Capacity/preview/2020-10-01-preview/reservations.json
@@ -0,0 +1,2242 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Reservation API",
+ "description": "This API describe Azure Reservation",
+ "version": "2020-10-01-preview"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "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.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}/availableScopes": {
+ "post": {
+ "summary": "Get Available Scopes for `Reservation`.",
+ "description": "Get Available Scopes for `Reservation`.\n",
+ "operationId": "Reservation_AvailableScopes",
+ "x-ms-examples": {
+ "AvailableScopes": {
+ "$ref": "./examples/GetAvailableScope.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/ReservationOrderIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ReservationIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ScopeParameter"
+ }
+ ],
+ "tags": [
+ "Reservation, AvailableScopes"
+ ],
+ "responses": {
+ "200": {
+ "description": "List of `Subscription`s created after the filter.",
+ "schema": {
+ "$ref": "#/definitions/AvailableScopeProperties"
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Capacity/catalogs": {
+ "get": {
+ "summary": "Get the regions and skus that are available for RI purchase for the specified Azure subscription.",
+ "operationId": "GetCatalog",
+ "x-ms-examples": {
+ "Catalog": {
+ "$ref": "./examples/GetCatalog.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ReservedResourceTypeIdParameter"
+ },
+ {
+ "$ref": "#/parameters/LocationIdParameter"
+ }
+ ],
+ "tags": [
+ "Catalog"
+ ],
+ "responses": {
+ "200": {
+ "description": "List of available resources",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Catalog"
+ }
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Capacity/appliedReservations": {
+ "get": {
+ "summary": "Get list of applicable `Reservation`s.",
+ "description": "Get applicable `Reservation`s that are applied to this subscription or a resource group under this subscription.",
+ "operationId": "GetAppliedReservationList",
+ "x-ms-examples": {
+ "AppliedReservationList": {
+ "$ref": "./examples/GetAppliedReservations.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "tags": [
+ "AppliedReservation"
+ ],
+ "responses": {
+ "200": {
+ "description": "Applicable `Reservation`s.",
+ "schema": {
+ "$ref": "#/definitions/AppliedReservations"
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Capacity/calculatePrice": {
+ "post": {
+ "summary": "Calculate price for a `ReservationOrder`.",
+ "description": "Calculate price for placing a `ReservationOrder`.",
+ "operationId": "ReservationOrder_Calculate",
+ "x-ms-examples": {
+ "Purchase": {
+ "$ref": "./examples/CalculateReservationOrder.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PurchaseParameter"
+ }
+ ],
+ "tags": [
+ "Reservation, Calculate"
+ ],
+ "responses": {
+ "200": {
+ "description": "Detailed price info for purchasing `ReservationOrder`",
+ "schema": {
+ "$ref": "#/definitions/CalculatePriceResponse"
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Capacity/reservationOrders": {
+ "get": {
+ "summary": "Get all `ReservationOrder`s.",
+ "description": "List of all the `ReservationOrder`s that the user has access to in the current tenant.",
+ "operationId": "ReservationOrder_List",
+ "x-ms-examples": {
+ "ReservationOrderList": {
+ "$ref": "./examples/GetReservationOrders.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "tags": [
+ "Reservation"
+ ],
+ "responses": {
+ "200": {
+ "description": "List of `ReservationOrder`s",
+ "schema": {
+ "$ref": "#/definitions/ReservationOrderList"
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}": {
+ "put": {
+ "summary": "Purchase `ReservationOrder`",
+ "description": "Purchase `ReservationOrder` and create resource under the specified URI.",
+ "operationId": "ReservationOrder_Purchase",
+ "x-ms-examples": {
+ "Purchase": {
+ "$ref": "./examples/PurchaseReservationOrder.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ReservationOrderIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PurchaseParameter"
+ }
+ ],
+ "tags": [
+ "Reservation, Purchase"
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource has been created",
+ "schema": {
+ "$ref": "#/definitions/ReservationOrderResponse"
+ }
+ },
+ "202": {
+ "description": "The request is accepted and is being processed. Operation result link is in location header.",
+ "schema": {
+ "$ref": "#/definitions/ReservationOrderResponse"
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "get": {
+ "summary": "Get a specific `ReservationOrder`.",
+ "description": "Get the details of the `ReservationOrder`.",
+ "operationId": "ReservationOrder_Get",
+ "x-ms-examples": {
+ "GetReservation": {
+ "$ref": "./examples/GetReservationOrderDetails.json"
+ },
+ "GetReservationWithExpandPayments": {
+ "$ref": "./examples/GetReservationOrderDetailsWithExpandPlanInformation.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ReservationOrderIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "$expand",
+ "description": "May be used to expand the planInformation.",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "tags": [
+ "Reservation"
+ ],
+ "responses": {
+ "200": {
+ "description": "Get the details of the `ReservationOrder`.",
+ "schema": {
+ "$ref": "#/definitions/ReservationOrderResponse"
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/split": {
+ "post": {
+ "summary": "Split the `Reservation`.",
+ "description": "Split a `Reservation` into two `Reservation`s with specified quantity distribution.",
+ "operationId": "Reservation_Split",
+ "x-ms-examples": {
+ "Split": {
+ "$ref": "./examples/SplitReservation.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ReservationOrderIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SplitParameter"
+ }
+ ],
+ "tags": [
+ "Reservation, Split"
+ ],
+ "responses": {
+ "200": {
+ "description": "List of `Reservation`s created after the split operation.",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReservationResponse"
+ }
+ }
+ },
+ "202": {
+ "description": "The request is accepted and is being processed"
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/merge": {
+ "post": {
+ "summary": "Merges two `Reservation`s.",
+ "description": "Merge the specified `Reservation`s into a new `Reservation`. The two `Reservation`s being merged must have same properties.",
+ "operationId": "Reservation_Merge",
+ "x-ms-examples": {
+ "Merge": {
+ "$ref": "./examples/MergeReservations.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ReservationOrderIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/MergeParameter"
+ }
+ ],
+ "tags": [
+ "Reservation, Merge"
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns the `Reservation` created after the merge.",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReservationResponse"
+ }
+ }
+ },
+ "202": {
+ "description": "The request is accepted and is being processed"
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations": {
+ "get": {
+ "summary": "Get `Reservation`s in a given reservation Order",
+ "description": "List `Reservation`s within a single `ReservationOrder`.",
+ "operationId": "Reservation_List",
+ "x-ms-examples": {
+ "ReservationList": {
+ "$ref": "./examples/GetReservations.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ReservationOrderIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "tags": [
+ "Reservation"
+ ],
+ "responses": {
+ "200": {
+ "description": "List `Reservation`s within a single `ReservationOrder`.",
+ "schema": {
+ "$ref": "#/definitions/ReservationList"
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}": {
+ "get": {
+ "summary": "Get `Reservation` details.",
+ "description": "Get specific `Reservation` details.",
+ "operationId": "Reservation_Get",
+ "x-ms-examples": {
+ "GetReservation": {
+ "$ref": "./examples/GetReservationDetails.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ReservationIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ReservationOrderIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ExpandRenewPropertiesParameter"
+ }
+ ],
+ "tags": [
+ "Reservation"
+ ],
+ "responses": {
+ "200": {
+ "description": "Get `Reservation` details.",
+ "schema": {
+ "$ref": "#/definitions/ReservationResponse"
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "patch": {
+ "summary": "Updates a `Reservation`.",
+ "description": "Updates the applied scopes of the `Reservation`.",
+ "operationId": "Reservation_Update",
+ "x-ms-examples": {
+ "PatchReservation": {
+ "$ref": "./examples/UpdateReservation.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/ReservationOrderIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ReservationIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PatchParameter"
+ }
+ ],
+ "tags": [
+ "Reservation",
+ "ApplyScope"
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns the updated `Reservation`.",
+ "schema": {
+ "$ref": "#/definitions/ReservationResponse"
+ }
+ },
+ "202": {
+ "description": "The request is accepted and is being processed"
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}/revisions": {
+ "get": {
+ "summary": "Get `Reservation` revisions.",
+ "description": "List of all the revisions for the `Reservation`.",
+ "operationId": "Reservation_ListRevisions",
+ "x-ms-examples": {
+ "ReservationRevisions": {
+ "$ref": "./examples/GetReservationRevisions.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ReservationIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ReservationOrderIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "tags": [
+ "Reservation"
+ ],
+ "responses": {
+ "200": {
+ "description": "List of all the revisions for the `Reservation`.",
+ "schema": {
+ "$ref": "#/definitions/ReservationList"
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Capacity/operations": {
+ "get": {
+ "summary": "Get operations.",
+ "description": "List all the operations.",
+ "operationId": "Operation_List",
+ "x-ms-examples": {
+ "GetOperations": {
+ "$ref": "./examples/GetOperations.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "tags": [
+ "Operation"
+ ],
+ "responses": {
+ "200": {
+ "description": "List all the operations.",
+ "schema": {
+ "$ref": "#/definitions/OperationList"
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Capacity/calculateExchange": {
+ "post": {
+ "summary": "Calculates the refund amounts and price of the new purchases.",
+ "description": "Calculates price for exchanging `Reservations` if there are no policy errors.\n",
+ "operationId": "CalculateExchange_Post",
+ "x-ms-examples": {
+ "CalculateExchange": {
+ "$ref": "./examples/CalculateExchange.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/CalculateExchangeRequestParameter"
+ }
+ ],
+ "tags": [
+ "Exchange"
+ ],
+ "responses": {
+ "200": {
+ "description": "The request is completed.",
+ "schema": {
+ "$ref": "#/definitions/CalculateExchangeOperationResultResponse"
+ }
+ },
+ "202": {
+ "description": "The request is accepted and is being processed.",
+ "headers": {
+ "Location": {
+ "type": "string",
+ "description": "URL to query for the status of the operation."
+ },
+ "Retry-After": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Clients should wait for the Retry-After interval before polling again"
+ }
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Capacity/exchange": {
+ "post": {
+ "summary": "Exchange Reservation(s)",
+ "description": "Returns one or more `Reservations` in exchange for one or more `Reservation` purchases.\n",
+ "operationId": "Exchange_Post",
+ "x-ms-examples": {
+ "Exchange": {
+ "$ref": "./examples/Exchange.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ExchangeRequestParameter"
+ }
+ ],
+ "tags": [
+ "Exchange"
+ ],
+ "responses": {
+ "200": {
+ "description": "The request is completed.",
+ "schema": {
+ "$ref": "#/definitions/ExchangeOperationResultResponse"
+ }
+ },
+ "202": {
+ "description": "The request is accepted and is being processed.",
+ "headers": {
+ "Location": {
+ "type": "string",
+ "description": "URL to query for the status of the operation."
+ },
+ "Retry-After": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Clients should wait for the Retry-After interval before polling again"
+ }
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AvailableScopeRequest": {
+ "type": "object",
+ "description": "Available scope",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/AvailableScopeRequestProperties"
+ }
+ }
+ },
+ "AvailableScopeRequestProperties": {
+ "type": "object",
+ "description": "Available scope request properties",
+ "properties": {
+ "scopes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "CalculateExchangeRequest": {
+ "type": "object",
+ "description": "Calculate exchange request",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/CalculateExchangeRequestProperties"
+ }
+ }
+ },
+ "ExchangeRequest": {
+ "type": "object",
+ "description": "Exchange request",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ExchangeRequestProperties"
+ }
+ }
+ },
+ "CalculateExchangeRequestProperties": {
+ "type": "object",
+ "description": "Calculate exchange request properties",
+ "properties": {
+ "reservationsToPurchase": {
+ "type": "array",
+ "description": "List of reservations that are being purchased in this exchange.",
+ "items": {
+ "$ref": "#/definitions/PurchaseRequest"
+ }
+ },
+ "reservationsToExchange": {
+ "type": "array",
+ "description": "List of reservations that are being returned in this exchange.",
+ "items": {
+ "$ref": "#/definitions/ReturnRequest"
+ }
+ }
+ }
+ },
+ "ExchangeRequestProperties": {
+ "type": "object",
+ "description": "Exchange request properties",
+ "properties": {
+ "sessionId": {
+ "type": "string",
+ "description": "SessionId that was returned by CalculateExchange API."
+ }
+ }
+ },
+ "ReturnRequest": {
+ "type": "object",
+ "description": "Return request",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Fully qualified identifier of the ReservationOrder being returned"
+ },
+ "properties": {
+ "$ref": "#/definitions/ReturnRequestProperties"
+ }
+ }
+ },
+ "ReturnRequestProperties": {
+ "type": "object",
+ "description": "Return request properties",
+ "properties": {
+ "scope": {
+ "$ref": "#/definitions/ReturnRequestScope"
+ },
+ "reservationToReturn": {
+ "$ref": "#/definitions/ReservationToReturn"
+ }
+ }
+ },
+ "ReturnRequestScope": {
+ "type": "string",
+ "description": "Indicates whether it is a reservation return or entire order return",
+ "enum": [
+ "Reservation"
+ ]
+ },
+ "ReservationToReturn": {
+ "type": "object",
+ "description": "To be present only if ReturnRequestScope = Reservation and null otherwise",
+ "properties": {
+ "reservationId": {
+ "type": "string",
+ "description": "Fully qualified identifier of the Reservation being returned"
+ },
+ "quantity": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Quantity to be returned. Must be greater than zero."
+ }
+ }
+ },
+ "ReservationStatusCode": {
+ "type": "string",
+ "enum": [
+ "None",
+ "Pending",
+ "Active",
+ "PurchaseError",
+ "PaymentInstrumentError",
+ "Split",
+ "Merged",
+ "Expired",
+ "Succeeded"
+ ],
+ "x-ms-enum": {
+ "name": "ReservationStatusCode",
+ "modelAsString": true
+ }
+ },
+ "ErrorResponseCode": {
+ "type": "string",
+ "enum": [
+ "NotSpecified",
+ "InternalServerError",
+ "ServerTimeout",
+ "AuthorizationFailed",
+ "BadRequest",
+ "ClientCertificateThumbprintNotSet",
+ "InvalidRequestContent",
+ "OperationFailed",
+ "HttpMethodNotSupported",
+ "InvalidRequestUri",
+ "MissingTenantId",
+ "InvalidTenantId",
+ "InvalidReservationOrderId",
+ "InvalidReservationId",
+ "ReservationIdNotInReservationOrder",
+ "ReservationOrderNotFound",
+ "InvalidSubscriptionId",
+ "InvalidAccessToken",
+ "InvalidLocationId",
+ "UnauthenticatedRequestsThrottled",
+ "InvalidHealthCheckType",
+ "Forbidden",
+ "BillingScopeIdCannotBeChanged",
+ "AppliedScopesNotAssociatedWithCommerceAccount",
+ "PatchValuesSameAsExisting",
+ "RoleAssignmentCreationFailed",
+ "ReservationOrderCreationFailed",
+ "ReservationOrderNotEnabled",
+ "CapacityUpdateScopesFailed",
+ "UnsupportedReservationTerm",
+ "ReservationOrderIdAlreadyExists",
+ "RiskCheckFailed",
+ "CreateQuoteFailed",
+ "ActivateQuoteFailed",
+ "NonsupportedAccountId",
+ "PaymentInstrumentNotFound",
+ "MissingAppliedScopesForSingle",
+ "NoValidReservationsToReRate",
+ "ReRateOnlyAllowedForEA",
+ "OperationCannotBePerformedInCurrentState",
+ "InvalidSingleAppliedScopesCount",
+ "InvalidFulfillmentRequestParameters",
+ "NotSupportedCountry",
+ "InvalidRefundQuantity",
+ "PurchaseError",
+ "BillingCustomerInputError",
+ "BillingPaymentInstrumentSoftError",
+ "BillingPaymentInstrumentHardError",
+ "BillingTransientError",
+ "BillingError",
+ "FulfillmentConfigurationError",
+ "FulfillmentOutOfStockError",
+ "FulfillmentTransientError",
+ "FulfillmentError",
+ "CalculatePriceFailed"
+ ],
+ "x-ms-enum": {
+ "name": "ErrorResponseCode",
+ "modelAsString": true
+ }
+ },
+ "SkuName": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ }
+ }
+ },
+ "CalculateExchangeOperationResultResponse": {
+ "type": "object",
+ "description": "CalculateExchange operation result",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "It should match what is used to GET the operation result."
+ },
+ "name": {
+ "type": "string",
+ "description": "It must match the last segment of the id field, and will typically be a GUID / system generated value."
+ },
+ "status": {
+ "type": "string",
+ "description": "Status of the operation.",
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Cancelled",
+ "Pending"
+ ],
+ "x-ms-enum": {
+ "name": "CalculateExchangeOperationResultStatus",
+ "modelAsString": true
+ }
+ },
+ "properties": {
+ "$ref": "#/definitions/CalculateExchangeResponseProperties"
+ },
+ "error": {
+ "$ref": "#/definitions/OperationResultError"
+ }
+ }
+ },
+ "ExchangeOperationResultResponse": {
+ "type": "object",
+ "description": "Exchange operation result",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "It should match what is used to GET the operation result."
+ },
+ "name": {
+ "type": "string",
+ "description": "It must match the last segment of the id field, and will typically be a GUID / system generated value."
+ },
+ "status": {
+ "type": "string",
+ "description": "Status of the operation.",
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Cancelled",
+ "PendingRefunds",
+ "PendingPurchases"
+ ],
+ "x-ms-enum": {
+ "name": "ExchangeOperationResultStatus",
+ "modelAsString": true
+ }
+ },
+ "properties": {
+ "$ref": "#/definitions/ExchangeResponseProperties"
+ },
+ "error": {
+ "$ref": "#/definitions/OperationResultError"
+ }
+ }
+ },
+ "OperationResultError": {
+ "type": "object",
+ "description": "Required if status == failed or status == canceled.",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Required if status == failed or status == cancelled. If status == failed, provide an invariant error code used for error troubleshooting, aggregation, and analysis."
+ },
+ "message": {
+ "type": "string",
+ "description": "Required if status == failed. Localized. If status == failed, provide an actionable error message indicating what error occurred, and what the user can do to address the issue."
+ }
+ }
+ },
+ "CalculateExchangeResponseProperties": {
+ "type": "object",
+ "description": "CalculateExchange response properties",
+ "properties": {
+ "sessionId": {
+ "type": "string",
+ "description": "Exchange session identifier"
+ },
+ "netPayable": {
+ "$ref": "#/definitions/Price"
+ },
+ "refundsTotal": {
+ "$ref": "#/definitions/Price"
+ },
+ "purchasesTotal": {
+ "$ref": "#/definitions/Price"
+ },
+ "reservationsToPurchase": {
+ "type": "array",
+ "description": "Details of the reservations being purchased",
+ "items": {
+ "$ref": "#/definitions/ReservationToPurchaseCalculateExchange"
+ }
+ },
+ "reservationsToExchange": {
+ "type": "array",
+ "description": "Details of the reservations being returned",
+ "items": {
+ "$ref": "#/definitions/ReservationToExchange"
+ }
+ },
+ "policyResult": {
+ "$ref": "#/definitions/ExchangePolicyErrors"
+ }
+ }
+ },
+ "ExchangeResponseProperties": {
+ "type": "object",
+ "description": "Exchange response properties",
+ "properties": {
+ "sessionId": {
+ "type": "string",
+ "description": "Exchange session identifier"
+ },
+ "netPayable": {
+ "$ref": "#/definitions/Price"
+ },
+ "refundsTotal": {
+ "$ref": "#/definitions/Price"
+ },
+ "purchasesTotal": {
+ "$ref": "#/definitions/Price"
+ },
+ "reservationsToPurchase": {
+ "type": "array",
+ "description": "Details of the reservations being purchased",
+ "items": {
+ "$ref": "#/definitions/ReservationToPurchaseExchange"
+ }
+ },
+ "reservationsToExchange": {
+ "type": "array",
+ "description": "Details of the reservations being returned",
+ "items": {
+ "$ref": "#/definitions/ReservationToExchange"
+ }
+ },
+ "policyResult": {
+ "$ref": "#/definitions/ExchangePolicyErrors"
+ }
+ }
+ },
+ "ExchangePolicyErrors": {
+ "type": "object",
+ "description": "Exchange policy errors",
+ "properties": {
+ "policyErrors": {
+ "type": "array",
+ "description": "Exchange Policy errors",
+ "items": {
+ "$ref": "#/definitions/ExchangePolicyError"
+ }
+ }
+ }
+ },
+ "ExchangePolicyError": {
+ "type": "object",
+ "description": "error details",
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ }
+ }
+ },
+ "ReservationToExchange": {
+ "type": "object",
+ "description": "Reservation refund details",
+ "properties": {
+ "reservationId": {
+ "type": "string",
+ "description": "Fully qualified id of the Reservation being returned."
+ },
+ "quantity": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Quantity to be returned"
+ },
+ "billingRefundAmount": {
+ "$ref": "#/definitions/Price"
+ },
+ "billingInformation": {
+ "$ref": "#/definitions/BillingInformation"
+ }
+ }
+ },
+ "BillingInformation": {
+ "type": "object",
+ "description": "billing information",
+ "properties": {
+ "billingCurrencyTotalPaidAmount": {
+ "$ref": "#/definitions/Price"
+ },
+ "billingCurrencyProratedAmount": {
+ "$ref": "#/definitions/Price"
+ },
+ "billingCurrencyRemainingCommitmentAmount": {
+ "$ref": "#/definitions/Price"
+ }
+ }
+ },
+ "ReservationToPurchaseCalculateExchange": {
+ "type": "object",
+ "description": "Reservation purchase details",
+ "properties": {
+ "billingCurrencyTotal": {
+ "$ref": "#/definitions/Price"
+ }
+ }
+ },
+ "ReservationToPurchaseExchange": {
+ "type": "object",
+ "description": "Reservation purchase details",
+ "properties": {
+ "reservationOrderId": {
+ "type": "string",
+ "description": "Fully qualified id of the ReservationOrder being purchased"
+ },
+ "billingCurrencyTotal": {
+ "$ref": "#/definitions/Price"
+ }
+ }
+ },
+ "Catalog": {
+ "type": "object",
+ "properties": {
+ "resourceType": {
+ "type": "string",
+ "description": "The type of resource the SKU applies to.",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of SKU",
+ "readOnly": true
+ },
+ "billingPlans": {
+ "type": "object",
+ "description": "The billing plan options available for this SKU.",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReservationBillingPlan"
+ }
+ }
+ },
+ "terms": {
+ "type": "array",
+ "readOnly": true,
+ "description": "Available reservation terms for this resource",
+ "items": {
+ "$ref": "#/definitions/ReservationTerm"
+ }
+ },
+ "locations": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "type": "string",
+ "description": "The set of locations that the SKU is available. If not specified, the SKU is available in all locations."
+ }
+ },
+ "skuProperties": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/SkuProperty"
+ }
+ },
+ "restrictions": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/SkuRestriction"
+ }
+ }
+ }
+ },
+ "SkuProperty": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "An invariant to describe the feature."
+ },
+ "value": {
+ "type": "string",
+ "description": "An invariant if the feature is measured by quantity."
+ }
+ }
+ },
+ "SkuRestriction": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "The type of restrictions."
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted."
+ },
+ "reasonCode": {
+ "type": "string",
+ "description": "The reason for restriction."
+ }
+ }
+ },
+ "ReservationOrderResponse": {
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "etag": {
+ "type": "integer"
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Identifier of the reservation"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Name of the reservation"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ReservationOrderProperties"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Type of resource. \"Microsoft.Capacity/reservations\""
+ }
+ }
+ },
+ "ReservationBillingPlan": {
+ "type": "string",
+ "description": "Represent the billing plans.",
+ "enum": [
+ "Upfront",
+ "Monthly"
+ ],
+ "x-ms-enum": {
+ "name": "ReservationBillingPlan",
+ "modelAsString": true
+ }
+ },
+ "ReservationTerm": {
+ "type": "string",
+ "description": "Represent the term of Reservation.",
+ "enum": [
+ "P1Y",
+ "P3Y"
+ ],
+ "x-ms-enum": {
+ "name": "ReservationTerm",
+ "modelAsString": true
+ }
+ },
+ "PaymentStatus": {
+ "type": "string",
+ "description": "Describes whether the payment is completed, failed, cancelled or scheduled in the future.",
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Scheduled",
+ "Cancelled"
+ ],
+ "x-ms-enum": {
+ "name": "PaymentStatus",
+ "modelAsString": true
+ }
+ },
+ "PaymentDetail": {
+ "type": "object",
+ "description": "Information about payment related to a reservation order.",
+ "properties": {
+ "dueDate": {
+ "type": "string",
+ "format": "date",
+ "description": "Date when the payment needs to be done."
+ },
+ "paymentDate": {
+ "type": "string",
+ "format": "date",
+ "description": "Date when the transaction is completed. Is null when it is scheduled."
+ },
+ "pricingCurrencyTotal": {
+ "$ref": "#/definitions/Price",
+ "description": "Amount in pricing currency. Tax not included."
+ },
+ "billingCurrencyTotal": {
+ "$ref": "#/definitions/Price",
+ "description": "Amount charged in Billing currency. Tax not included. Is null for future payments"
+ },
+ "billingAccount": {
+ "type": "string",
+ "description": "Shows the Account that is charged for this payment."
+ },
+ "status": {
+ "$ref": "#/definitions/PaymentStatus"
+ },
+ "extendedStatusInfo": {
+ "$ref": "#/definitions/ExtendedStatusInfo"
+ }
+ }
+ },
+ "ReservationOrderBillingPlanInformation": {
+ "type": "object",
+ "description": "Information describing the type of billing plan for this reservation.",
+ "properties": {
+ "pricingCurrencyTotal": {
+ "$ref": "#/definitions/Price",
+ "description": "Amount of money to be paid for the Order. Tax is not included."
+ },
+ "startDate": {
+ "type": "string",
+ "format": "date",
+ "description": "Date when the billing plan has started."
+ },
+ "nextPaymentDueDate": {
+ "type": "string",
+ "format": "date",
+ "description": "For recurring billing plans, indicates the date when next payment will be processed. Null when total is paid off."
+ },
+ "transactions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PaymentDetail"
+ }
+ }
+ }
+ },
+ "ReservationOrderProperties": {
+ "type": "object",
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Friendly name for user to easily identified the reservation."
+ },
+ "requestDateTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "This is the DateTime when the reservation was initially requested for purchase."
+ },
+ "createdDateTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "This is the DateTime when the reservation was created."
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date",
+ "description": "This is the date when the Reservation will expire."
+ },
+ "originalQuantity": {
+ "$ref": "#/definitions/ReservationQuantity"
+ },
+ "term": {
+ "$ref": "#/definitions/ReservationTerm"
+ },
+ "provisioningState": {
+ "type": "string",
+ "description": "Current state of the reservation."
+ },
+ "billingPlan": {
+ "$ref": "#/definitions/ReservationBillingPlan"
+ },
+ "planInformation": {
+ "$ref": "#/definitions/ReservationOrderBillingPlanInformation"
+ },
+ "reservations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReservationResponse"
+ }
+ }
+ }
+ },
+ "ReservationResponse": {
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "location": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The Azure Region where the reserved resource lives."
+ },
+ "etag": {
+ "type": "integer"
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Identifier of the reservation"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Name of the reservation"
+ },
+ "sku": {
+ "$ref": "#/definitions/SkuName"
+ },
+ "properties": {
+ "$ref": "#/definitions/ReservationProperties"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Type of resource. \"Microsoft.Capacity/reservationOrders/reservations\""
+ }
+ }
+ },
+ "RenewPropertiesResponse": {
+ "type": "object",
+ "properties": {
+ "purchaseProperties": {
+ "$ref": "#/definitions/PurchaseRequest"
+ },
+ "pricingCurrencyTotal": {
+ "type": "object",
+ "description": "Amount that Microsoft uses for record. Used during refund for calculating refund limit. Tax is not included. This is locked price 30 days before expiry.",
+ "properties": {
+ "currencyCode": {
+ "type": "string"
+ },
+ "amount": {
+ "type": "number"
+ }
+ }
+ },
+ "billingCurrencyTotal": {
+ "type": "object",
+ "description": "Currency and amount that customer will be charged in customer's local currency for renewal purchase. Tax is not included.",
+ "properties": {
+ "currencyCode": {
+ "type": "string"
+ },
+ "amount": {
+ "type": "number"
+ }
+ }
+ }
+ }
+ },
+ "CalculatePriceResponse": {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/CalculatePriceResponseProperties"
+ }
+ }
+ },
+ "CalculatePriceResponseProperties": {
+ "type": "object",
+ "properties": {
+ "billingCurrencyTotal": {
+ "type": "object",
+ "description": "Currency and amount that customer will be charged in customer's local currency. Tax is not included.",
+ "properties": {
+ "currencyCode": {
+ "type": "string"
+ },
+ "amount": {
+ "type": "number"
+ }
+ }
+ },
+ "isBillingPartnerManaged": {
+ "description": "True if billing is managed by Microsoft Partner. Used only for CSP accounts.",
+ "type": "boolean"
+ },
+ "reservationOrderId": {
+ "description": "GUID that represents reservation order that can be placed after calculating price.",
+ "type": "string"
+ },
+ "skuTitle": {
+ "description": "Title of SKU that is being purchased.",
+ "type": "string"
+ },
+ "skuDescription": {
+ "description": "Description of SKU that is being purchased.",
+ "type": "string"
+ },
+ "pricingCurrencyTotal": {
+ "type": "object",
+ "description": "Amount that Microsoft uses for record. Used during refund for calculating refund limit. Tax is not included.",
+ "properties": {
+ "currencyCode": {
+ "type": "string"
+ },
+ "amount": {
+ "type": "number"
+ }
+ }
+ },
+ "paymentSchedule": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PaymentDetail"
+ }
+ }
+ }
+ },
+ "ReservationProperties": {
+ "type": "object",
+ "properties": {
+ "reservedResourceType": {
+ "$ref": "#/definitions/ReservedResourceType"
+ },
+ "instanceFlexibility": {
+ "$ref": "#/definitions/InstanceFlexibility"
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Friendly name for user to easily identify the reservation"
+ },
+ "appliedScopes": {
+ "$ref": "#/definitions/AppliedScopes"
+ },
+ "appliedScopeType": {
+ "$ref": "#/definitions/AppliedScopeType"
+ },
+ "quantity": {
+ "$ref": "#/definitions/ReservationQuantity"
+ },
+ "provisioningState": {
+ "type": "string",
+ "description": "Current state of the reservation."
+ },
+ "effectiveDateTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "DateTime of the Reservation starting when this version is effective from."
+ },
+ "lastUpdatedDateTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "DateTime of the last time the Reservation was updated.",
+ "readOnly": true
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date",
+ "description": "This is the date when the Reservation will expire."
+ },
+ "skuDescription": {
+ "type": "string",
+ "description": "Description of the SKU in english."
+ },
+ "extendedStatusInfo": {
+ "$ref": "#/definitions/ExtendedStatusInfo"
+ },
+ "billingPlan": {
+ "$ref": "#/definitions/ReservationBillingPlan"
+ },
+ "splitProperties": {
+ "$ref": "#/definitions/ReservationSplitProperties"
+ },
+ "mergeProperties": {
+ "$ref": "#/definitions/ReservationMergeProperties"
+ },
+ "billingScopeId": {
+ "$ref": "#/definitions/BillingScopeId"
+ },
+ "renew": {
+ "$ref": "#/definitions/Renew"
+ },
+ "renewSource": {
+ "type": "string",
+ "description": "Reservation Id of the reservation from which this reservation is renewed. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}."
+ },
+ "renewDestination": {
+ "type": "string",
+ "description": "Reservation Id of the reservation which is purchased because of renew. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}."
+ },
+ "renewProperties": {
+ "$ref": "#/definitions/RenewPropertiesResponse"
+ },
+ "term": {
+ "$ref": "#/definitions/ReservationTerm"
+ }
+ }
+ },
+ "ReservationSplitProperties": {
+ "type": "object",
+ "properties": {
+ "splitDestinations": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of destination Resource Id that are created due to split. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}"
+ },
+ "splitSource": {
+ "type": "string",
+ "description": "Resource Id of the Reservation from which this is split. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}"
+ }
+ }
+ },
+ "ReservationMergeProperties": {
+ "type": "object",
+ "properties": {
+ "mergeDestination": {
+ "type": "string",
+ "description": "Reservation Resource Id Created due to the merge. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}"
+ },
+ "mergeSources": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Resource Ids of the Source Reservation's merged to form this Reservation. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}"
+ }
+ }
+ },
+ "PurchaseRequestProperties": {
+ "type": "object",
+ "properties": {
+ "reservedResourceType": {
+ "$ref": "#/definitions/ReservedResourceType"
+ },
+ "billingScopeId": {
+ "$ref": "#/definitions/BillingScopeId"
+ },
+ "term": {
+ "$ref": "#/definitions/ReservationTerm"
+ },
+ "billingPlan": {
+ "$ref": "#/definitions/ReservationBillingPlan"
+ },
+ "quantity": {
+ "$ref": "#/definitions/ReservationQuantity"
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Friendly name of the Reservation"
+ },
+ "appliedScopeType": {
+ "$ref": "#/definitions/AppliedScopeType"
+ },
+ "appliedScopes": {
+ "$ref": "#/definitions/AppliedScopes"
+ },
+ "renew": {
+ "$ref": "#/definitions/Renew"
+ },
+ "reservedResourceProperties": {
+ "type": "object",
+ "description": "Properties specific to each reserved resource type. Not required if not applicable.",
+ "properties": {
+ "instanceFlexibility": {
+ "$ref": "#/definitions/InstanceFlexibility"
+ }
+ }
+ }
+ }
+ },
+ "PatchProperties": {
+ "type": "object",
+ "properties": {
+ "appliedScopeType": {
+ "$ref": "#/definitions/AppliedScopeType"
+ },
+ "appliedScopes": {
+ "$ref": "#/definitions/AppliedScopes"
+ },
+ "instanceFlexibility": {
+ "$ref": "#/definitions/InstanceFlexibility"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the Reservation"
+ },
+ "renew": {
+ "$ref": "#/definitions/Renew"
+ },
+ "renewProperties": {
+ "type": "object",
+ "properties": {
+ "purchaseProperties": {
+ "$ref": "#/definitions/PurchaseRequest"
+ }
+ }
+ }
+ }
+ },
+ "SplitProperties": {
+ "type": "object",
+ "properties": {
+ "quantities": {
+ "type": "array",
+ "description": "List of the quantities in the new reservations to create.",
+ "items": {
+ "type": "integer",
+ "minItems": 2,
+ "maxItems": 2
+ }
+ },
+ "reservationId": {
+ "type": "string",
+ "description": "Resource id of the reservation to be split. Format of the resource id should be /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}"
+ }
+ }
+ },
+ "MergeProperties": {
+ "type": "object",
+ "properties": {
+ "sources": {
+ "type": "array",
+ "description": "Format of the resource id should be /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "MergeRequest": {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/MergeProperties"
+ }
+ }
+ },
+ "PurchaseRequest": {
+ "type": "object",
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/SkuName"
+ },
+ "location": {
+ "type": "string",
+ "description": "The Azure Region where the reserved resource lives."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PurchaseRequestProperties"
+ }
+ }
+ },
+ "Patch": {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PatchProperties"
+ }
+ }
+ },
+ "SplitRequest": {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SplitProperties"
+ }
+ }
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/ExtendedErrorInfo"
+ }
+ }
+ },
+ "ExtendedErrorInfo": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "$ref": "#/definitions/ErrorResponseCode"
+ },
+ "message": {
+ "type": "string"
+ }
+ }
+ },
+ "ExtendedStatusInfo": {
+ "type": "object",
+ "properties": {
+ "statusCode": {
+ "$ref": "#/definitions/ReservationStatusCode"
+ },
+ "message": {
+ "type": "string",
+ "description": "The message giving detailed information about the status code."
+ }
+ }
+ },
+ "ReservationOrderList": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReservationOrderResponse"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Url to get the next page of reservationOrders."
+ }
+ }
+ },
+ "ReservationList": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReservationResponse"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Url to get the next page of reservations."
+ }
+ }
+ },
+ "AppliedReservations": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identifier of the applied reservations",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of resource",
+ "readOnly": true
+ },
+ "type": {
+ "type": "string",
+ "description": "Type of resource. \"Microsoft.Capacity/AppliedReservations\"",
+ "readOnly": true
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AppliedReservationsProperties"
+ }
+ }
+ },
+ "AppliedReservationsProperties": {
+ "type": "object",
+ "properties": {
+ "reservationOrderIds": {
+ "$ref": "#/definitions/AppliedReservationList"
+ }
+ }
+ },
+ "AppliedReservationList": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "Reservation resource Id. \"/providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}\""
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Url to get the next page of reservations"
+ }
+ }
+ },
+ "OperationList": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationResponse"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Url to get the next page of items."
+ }
+ }
+ },
+ "OperationResponse": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "display": {
+ "$ref": "#/definitions/OperationDisplay"
+ },
+ "origin": {
+ "type": "string"
+ }
+ }
+ },
+ "OperationDisplay": {
+ "type": "object",
+ "properties": {
+ "provider": {
+ "type": "string"
+ },
+ "resource": {
+ "type": "string"
+ },
+ "operation": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ }
+ },
+ "InstanceFlexibility": {
+ "type": "string",
+ "description": "Turning this on will apply the reservation discount to other VMs in the same VM size group. Only specify for VirtualMachines reserved resource type.",
+ "enum": [
+ "On",
+ "Off"
+ ],
+ "x-ms-enum": {
+ "name": "InstanceFlexibility",
+ "modelAsString": true
+ }
+ },
+ "AppliedScopeType": {
+ "type": "string",
+ "description": "Type of the Applied Scope.",
+ "enum": [
+ "Single",
+ "Shared"
+ ],
+ "x-ms-enum": {
+ "name": "AppliedScopeType",
+ "modelAsString": true
+ }
+ },
+ "AppliedScopes": {
+ "type": "array",
+ "description": "List of the subscriptions that the benefit will be applied. Do not specify if AppliedScopeType is Shared.",
+ "items": {
+ "type": "string",
+ "minItems": 1,
+ "maxItems": 1
+ }
+ },
+ "BillingScopeId": {
+ "type": "string",
+ "description": "Subscription that will be charged for purchasing Reservation"
+ },
+ "Renew": {
+ "type": "boolean",
+ "default": false,
+ "description": "Setting this to true will automatically purchase a new reservation on the expiration date time."
+ },
+ "ReservationQuantity": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Quantity of the SKUs that are part of the Reservation. Must be greater than zero."
+ },
+ "AvailableScopeProperties": {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/SubscriptionScopeProperties"
+ }
+ }
+ },
+ "SubscriptionScopeProperties": {
+ "type": "object",
+ "properties": {
+ "scopes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ScopeProperties"
+ }
+ }
+ }
+ },
+ "ScopeProperties": {
+ "type": "object",
+ "properties": {
+ "scope": {
+ "type": "string"
+ },
+ "valid": {
+ "type": "boolean"
+ }
+ }
+ },
+ "ReservedResourceType": {
+ "type": "string",
+ "description": "The type of the resource that is being reserved.",
+ "enum": [
+ "VirtualMachines",
+ "SqlDatabases",
+ "SuseLinux",
+ "CosmosDb",
+ "RedHat",
+ "SqlDataWarehouse",
+ "VMwareCloudSimple",
+ "RedHatOsa",
+ "Databricks",
+ "AppService",
+ "ManagedDisk",
+ "BlockBlob",
+ "RedisCache",
+ "AzureDataExplorer",
+ "MySql",
+ "MariaDb",
+ "PostgreSql",
+ "DedicatedHost",
+ "SapHana",
+ "SqlAzureHybridBenefit"
+ ],
+ "x-ms-enum": {
+ "name": "ReservedResourceType",
+ "modelAsString": true
+ }
+ },
+ "Price": {
+ "type": "object",
+ "properties": {
+ "currencyCode": {
+ "type": "string",
+ "description": "The ISO 4217 3-letter currency code for the currency used by this purchase record."
+ },
+ "amount": {
+ "type": "number",
+ "format": "double"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "CalculateExchangeRequestParameter": {
+ "name": "body",
+ "x-ms-parameter-location": "method",
+ "in": "body",
+ "required": true,
+ "description": "Request containing purchases and refunds that need to be executed.",
+ "schema": {
+ "$ref": "#/definitions/CalculateExchangeRequest"
+ }
+ },
+ "ExchangeRequestParameter": {
+ "name": "body",
+ "x-ms-parameter-location": "method",
+ "in": "body",
+ "required": true,
+ "description": "Request containing the refunds and purchases that need to be executed.",
+ "schema": {
+ "$ref": "#/definitions/ExchangeRequest"
+ }
+ },
+ "ScopeParameter": {
+ "name": "body",
+ "x-ms-parameter-location": "method",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AvailableScopeRequest"
+ }
+ },
+ "PurchaseParameter": {
+ "name": "body",
+ "x-ms-parameter-location": "method",
+ "in": "body",
+ "required": true,
+ "description": "Information needed for calculate or purchase reservation",
+ "schema": {
+ "$ref": "#/definitions/PurchaseRequest"
+ }
+ },
+ "ReservationIdParameter": {
+ "name": "reservationId",
+ "x-ms-parameter-location": "method",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Id of the Reservation Item"
+ },
+ "MergeParameter": {
+ "name": "body",
+ "x-ms-parameter-location": "method",
+ "in": "body",
+ "required": true,
+ "description": "Information needed for commercial request for a reservation",
+ "schema": {
+ "$ref": "#/definitions/MergeRequest"
+ }
+ },
+ "PatchParameter": {
+ "name": "parameters",
+ "x-ms-parameter-location": "method",
+ "in": "body",
+ "required": true,
+ "description": "Information needed to patch a reservation item",
+ "schema": {
+ "$ref": "#/definitions/Patch"
+ }
+ },
+ "SplitParameter": {
+ "name": "body",
+ "x-ms-parameter-location": "method",
+ "in": "body",
+ "required": true,
+ "description": "Information needed to Split a reservation item",
+ "schema": {
+ "$ref": "#/definitions/SplitRequest"
+ }
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "description": "Supported version for this document is 2020-10-01-preview",
+ "required": true,
+ "type": "string"
+ },
+ "ExpandRenewPropertiesParameter": {
+ "name": "expand",
+ "x-ms-parameter-location": "method",
+ "in": "query",
+ "description": "Supported value of this query is renewProperties",
+ "required": false,
+ "type": "string"
+ },
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "x-ms-parameter-location": "method",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Id of the subscription"
+ },
+ "ReservedResourceTypeIdParameter": {
+ "name": "reservedResourceType",
+ "x-ms-parameter-location": "method",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "The type of the resource for which the skus should be provided."
+ },
+ "LocationIdParameter": {
+ "name": "location",
+ "x-ms-parameter-location": "method",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Filters the skus based on the location specified in this parameter. This can be an azure region or global"
+ },
+ "ReservationOrderIdParameter": {
+ "name": "reservationOrderId",
+ "x-ms-parameter-location": "method",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Order Id of the reservation"
+ },
+ "OperationResultIdParameter": {
+ "name": "operationResultId",
+ "x-ms-parameter-location": "method",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "OperationResult identifier"
+ }
+ }
+}
diff --git a/specification/reservations/resource-manager/readme.md b/specification/reservations/resource-manager/readme.md
index 66a5dd8d25f3..df5d162954de 100644
--- a/specification/reservations/resource-manager/readme.md
+++ b/specification/reservations/resource-manager/readme.md
@@ -26,7 +26,17 @@ These are the global settings for the Reservations API.
``` yaml
openapi-type: arm
-tag: package-preview-2019-07-19
+tag: package-2020-10-preview
+```
+
+### Tag: package-2020-10-preview
+
+These settings apply only when `--tag=package-2020-10-preview` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-10-preview'
+input-file:
+ - Microsoft.Capacity/preview/2019-07-19/quota.json
+ - Microsoft.Capacity/preview/2020-10-01-preview/reservations.json
```
### Tag: package-preview-2019-07-19
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Commit.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_BulkRemove.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Commit.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_BulkRemove.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Discard.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Commit.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Discard.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Commit.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Create.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Create.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Create.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Create.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Delete.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Delete.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Delete.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Delete.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_InitiateMove.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Discard.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_InitiateMove.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Discard.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Get.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Get.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Get.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Get.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Prepare.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_InitiateMove.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Prepare.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_InitiateMove.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_ListMoveCollectionsByResourceGroup.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_ListMoveCollectionsByResourceGroup.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_ListMoveCollectionsByResourceGroup.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_ListMoveCollectionsByResourceGroup.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_ListMoveCollectionsBySubscription.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_ListMoveCollectionsBySubscription.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_ListMoveCollectionsBySubscription.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_ListMoveCollectionsBySubscription.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_BulkRemove.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Prepare.json
similarity index 77%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_BulkRemove.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Prepare.json
index 03877882ade2..82d11f9f57bd 100644
--- a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_BulkRemove.json
+++ b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Prepare.json
@@ -4,10 +4,12 @@
"subscriptionId": "subid",
"resourceGroupName": "rg1",
"api-version": "2019-10-01-preview",
- "validateOnly": false,
- "moveResources": [
- "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Migrate/MoveCollections/movecollection1/MoveResources/moveresource1"
- ]
+ "body": {
+ "validateOnly": false,
+ "moveResources": [
+ "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Migrate/MoveCollections/movecollection1/MoveResources/moveresource1"
+ ]
+ }
},
"responses": {
"200": {
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_ResolveDependencies.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_ResolveDependencies.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_ResolveDependencies.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_ResolveDependencies.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Update.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Update.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Update.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveCollections_Update.json
diff --git a/specification/regionmove/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
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_Create.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_Create.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_Delete.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_Delete.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_Delete.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_Delete.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_Get.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_Get.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_Get.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_Get.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_List.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_List.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_List.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/MoveResources_List.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/OperationsDiscovery_Get.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/OperationsDiscovery_Get.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/OperationsDiscovery_Get.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/OperationsDiscovery_Get.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/UnresolvedDependencies_Get.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/UnresolvedDependencies_Get.json
similarity index 100%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/UnresolvedDependencies_Get.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/examples/UnresolvedDependencies_Get.json
diff --git a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/regionmovecollection.json b/specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/resourcemovercollection.json
similarity index 99%
rename from specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/regionmovecollection.json
rename to specification/resourcemover/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/resourcemovercollection.json
index 380c436e6d19..3bb1543ba475 100644
--- a/specification/regionmove/resource-manager/Microsoft.Migrate/preview/2019-10-01-preview/regionmovecollection.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": {
@@ -1610,6 +1606,10 @@
"description": "Gets or sets Name of the API.\r\nThe name of the operation being performed on this particular object. It should\r\nmatch the action name that appears in RBAC / the event service.\r\nExamples of operations include:\r\n* Microsoft.Compute/virtualMachine/capture/action\r\n* Microsoft.Compute/virtualMachine/restart/action\r\n* Microsoft.Compute/virtualMachine/write\r\n* Microsoft.Compute/virtualMachine/read\r\n* Microsoft.Compute/virtualMachine/delete\r\nEach action should include, in order:\r\n(1) Resource Provider Namespace\r\n(2) Type hierarchy for which the action applies (e.g. server/databases for a SQL\r\nAzure database)\r\n(3) Read, Write, Action or Delete indicating which type applies. If it is a PUT/PATCH\r\non a collection or named value, Write should be used.\r\nIf it is a GET, Read should be used. If it is a DELETE, Delete should be used. If it\r\nis a POST, Action should be used.\r\nAs a note: all resource providers would need to include the \"{Resource Provider\r\nNamespace}/register/action\" operation in their response.\r\nThis API is used to register for their service, and should include details about the\r\noperation (e.g. a localized name for the resource provider + any special\r\nconsiderations like PII release).",
"type": "string"
},
+ "isDataAction": {
+ "description": "Indicates whether the operation is a data action",
+ "type": "boolean"
+ },
"display": {
"$ref": "#/definitions/Display"
},
diff --git a/specification/regionmove/resource-manager/readme.azureresourceschema.md b/specification/resourcemover/resource-manager/readme.azureresourceschema.md
similarity index 89%
rename from specification/regionmove/resource-manager/readme.azureresourceschema.md
rename to specification/resourcemover/resource-manager/readme.azureresourceschema.md
index ea58f5848a08..7c95e06ea160 100644
--- a/specification/regionmove/resource-manager/readme.azureresourceschema.md
+++ b/specification/resourcemover/resource-manager/readme.azureresourceschema.md
@@ -19,6 +19,6 @@ output-folder: $(azureresourceschema-folder)/schemas
# all the input files in this apiVersion
input-file:
- - Microsoft.Migrate/preview/2019-10-01-preview/regionmovecollection.json
+ - Microsoft.Migrate/preview/2019-10-01-preview/resourcemovercollection.json
```
diff --git a/specification/regionmove/resource-manager/readme.csharp.md b/specification/resourcemover/resource-manager/readme.csharp.md
similarity index 100%
rename from specification/regionmove/resource-manager/readme.csharp.md
rename to specification/resourcemover/resource-manager/readme.csharp.md
diff --git a/specification/regionmove/resource-manager/readme.go.md b/specification/resourcemover/resource-manager/readme.go.md
similarity index 100%
rename from specification/regionmove/resource-manager/readme.go.md
rename to specification/resourcemover/resource-manager/readme.go.md
diff --git a/specification/regionmove/resource-manager/readme.md b/specification/resourcemover/resource-manager/readme.md
similarity index 96%
rename from specification/regionmove/resource-manager/readme.md
rename to specification/resourcemover/resource-manager/readme.md
index 3cd4a59bfc1b..4b90d3d5e982 100644
--- a/specification/regionmove/resource-manager/readme.md
+++ b/specification/resourcemover/resource-manager/readme.md
@@ -35,7 +35,7 @@ These settings apply only when `--tag=package-2019-10-01-preview` is specified o
```yaml $(tag) == 'package-2019-10-01-preview'
input-file:
- - Microsoft.Migrate/preview/2019-10-01-preview/regionmovecollection.json
+ - Microsoft.Migrate/preview/2019-10-01-preview/resourcemovercollection.json
```
---
diff --git a/specification/regionmove/resource-manager/readme.python.md b/specification/resourcemover/resource-manager/readme.python.md
similarity index 100%
rename from specification/regionmove/resource-manager/readme.python.md
rename to specification/resourcemover/resource-manager/readme.python.md
diff --git a/specification/regionmove/resource-manager/readme.ruby.md b/specification/resourcemover/resource-manager/readme.ruby.md
similarity index 100%
rename from specification/regionmove/resource-manager/readme.ruby.md
rename to specification/resourcemover/resource-manager/readme.ruby.md
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/regionmove/resource-manager/readme.typescript.md b/specification/resourcemover/resource-manager/readme.typescript.md
similarity index 100%
rename from specification/regionmove/resource-manager/readme.typescript.md
rename to specification/resourcemover/resource-manager/readme.typescript.md
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/2019-06-01-preview/templateSpecs.json b/specification/resources/resource-manager/Microsoft.Resources/preview/2019-06-01-preview/templateSpecs.json
index dd273dcb47bf..e275be2dd62a 100644
--- a/specification/resources/resource-manager/Microsoft.Resources/preview/2019-06-01-preview/templateSpecs.json
+++ b/specification/resources/resource-manager/Microsoft.Resources/preview/2019-06-01-preview/templateSpecs.json
@@ -159,6 +159,9 @@
{
"$ref": "#/parameters/TemplateSpecNameParameter"
},
+ {
+ "$ref": "#/parameters/TemplateSpecExpandParameter"
+ },
{
"$ref": "#/parameters/ApiVersionParameter"
}
@@ -235,6 +238,9 @@
{
"$ref": "#/parameters/SubscriptionIdParameter"
},
+ {
+ "$ref": "#/parameters/TemplateSpecExpandParameter"
+ },
{
"$ref": "#/parameters/ApiVersionParameter"
}
@@ -277,6 +283,9 @@
{
"$ref": "#/parameters/ResourceGroupNameParameter"
},
+ {
+ "$ref": "#/parameters/TemplateSpecExpandParameter"
+ },
{
"$ref": "#/parameters/ApiVersionParameter"
}
@@ -591,6 +600,14 @@
"type": "string",
"maxLength": 64,
"description": "Template Spec display name."
+ },
+ "versions": {
+ "type": "object",
+ "readOnly": true,
+ "description": "High-level information about the versions within this Template Spec. The keys are the version names. Only populated if the $expand query parameter is set to 'versions'.",
+ "additionalProperties": {
+ "$ref": "#/definitions/TemplateSpecVersionInfo"
+ }
}
}
},
@@ -800,6 +817,29 @@
}
]
},
+ "TemplateSpecVersionInfo": {
+ "type": "object",
+ "description": "High-level information about a Template Spec version.",
+ "properties": {
+ "description": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Template Spec version description."
+ },
+ "timeCreated": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The timestamp of when the version was created."
+ },
+ "timeModified": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The timestamp of when the version was last modified."
+ }
+ }
+ },
"TemplateSpecsError": {
"properties": {
"error": {
@@ -851,6 +891,27 @@
"maxLength": 90,
"x-ms-parameter-location": "method"
},
+ "TemplateSpecExpandParameter": {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Allows for expansion of additional Template Spec details in the response. Optional.",
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "versions"
+ ],
+ "x-ms-enum": {
+ "name": "TemplateSpecExpandKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "versions",
+ "description": "Includes version information with the Template Spec."
+ }
+ ]
+ }
+ },
"ApiVersionParameter": {
"name": "api-version",
"in": "query",
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/Microsoft.Resources/stable/2020-06-01/resources.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2020-06-01/resources.json
index 988e044bbe05..70d4e1b3d9e1 100644
--- a/specification/resources/resource-manager/Microsoft.Resources/stable/2020-06-01/resources.json
+++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2020-06-01/resources.json
@@ -4476,6 +4476,10 @@
"onErrorDeployment": {
"$ref": "#/definitions/OnErrorDeployment",
"description": "The deployment on error behavior."
+ },
+ "expressionEvaluationOptions": {
+ "$ref": "#/definitions/ExpressionEvaluationOptions",
+ "description": "Specifies whether template expressions are evaluated within the scope of the parent template or nested template. Only applicable to nested templates. If not specified, default value is outer."
}
},
"required": [
@@ -6184,6 +6188,24 @@
"description": "The error reported by the operation."
}
}
+ },
+ "ExpressionEvaluationOptions": {
+ "properties": {
+ "scope": {
+ "type": "string",
+ "description": "The scope to be used for evaluation of parameters, variables and functions in a nested template.",
+ "enum": [
+ "NotSpecified",
+ "Outer",
+ "Inner"
+ ],
+ "x-ms-enum": {
+ "name": "ExpressionEvaluationOptionsScopeType",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Specifies whether template expressions are evaluated within the scope of the parent template or nested template."
}
},
"parameters": {
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.go.md b/specification/resources/resource-manager/readme.go.md
index a2ed83ef017e..5071a4316899 100644
--- a/specification/resources/resource-manager/readme.go.md
+++ b/specification/resources/resource-manager/readme.go.md
@@ -25,6 +25,7 @@ batch:
- tag: package-features-2015-12
- tag: package-locks-2016-09
- tag: package-locks-2015-01
+ - tag: package-policy-2020-03
- tag: package-policy-2019-09
- tag: package-policy-2019-06
- tag: package-policy-2019-01
@@ -108,6 +109,16 @@ namespace: policy
output-folder: $(go-sdk-folder)/services/resources/mgmt/2019-09-01/policy
```
+### Tag: package-policy-2020-03 and go
+
+These settings apply only when `--tag=package-policy-2020-03 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-policy-2020-03' && $(go)
+namespace: policy
+output-folder: $(go-sdk-folder)/services/preview/resources/mgmt/2020-03-01-preview/policy
+```
+
### Tag: package-policy-2019-06 and go
These settings apply only when `--tag=package-policy-2019-06 --go` is specified on the command line.
diff --git a/specification/resources/resource-manager/readme.java.md b/specification/resources/resource-manager/readme.java.md
index 304ceb45ad50..d30e39917517 100644
--- a/specification/resources/resource-manager/readme.java.md
+++ b/specification/resources/resource-manager/readme.java.md
@@ -60,6 +60,7 @@ batch:
- tag: package-policy-2018-03
- tag: package-policy-2016-12
- tag: package-resources-2020-06
+ - tag: package-resources-2019-10
- tag: package-resources-2019-08
- tag: package-resources-2019-07
- tag: package-resources-2019-0510
@@ -235,6 +236,19 @@ regenerate-manager: true
generate-interface: true
```
+### Tag: package-resources-2019-10 and java
+
+These settings apply only when `--tag=package-resources-2019-10 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-resources-2019-10' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.resources.v2019_10_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/resources/mgmt-v2019_10_01
+regenerate-manager: true
+generate-interface: true
+```
+
### Tag: package-resources-2019-08 and java
These settings apply only when `--tag=package-resources-2019-08 --java` is specified on the command line.
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/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
new file mode 100644
index 000000000000..6a3e58596326
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/devices.json
@@ -0,0 +1,640 @@
+{
+ "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/devices": {
+ "get": {
+ "x-ms-examples": {
+ "Get Devices": {
+ "$ref": "./examples/Devices/GetDevicesListForSubscription.json"
+ }
+ },
+ "tags": [
+ "Device Inventory"
+ ],
+ "description": "Get list of the devices by their subscription.",
+ "operationId": "DevicesForSubscription_List",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId"
+ },
+ {
+ "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"
+ },
+ {
+ "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
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DeviceList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/{resourceId}/providers/Microsoft.Security/devices": {
+ "get": {
+ "x-ms-examples": {
+ "Get Devices": {
+ "$ref": "./examples/Devices/GetDevicesListForHub.json"
+ }
+ },
+ "tags": [
+ "Device Inventory"
+ ],
+ "description": "Get list of the devices for the specified IoT Hub resource.",
+ "operationId": "DevicesForHub_List",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceId"
+ },
+ {
+ "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"
+ },
+ {
+ "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
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DeviceList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/{resourceId}/providers/Microsoft.Security/devices/{deviceId}": {
+ "get": {
+ "x-ms-examples": {
+ "Get Device": {
+ "$ref": "./examples/Devices/GetDevice.json"
+ }
+ },
+ "tags": [
+ "Device Inventory"
+ ],
+ "description": "Get device.",
+ "operationId": "Device_Get",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceId"
+ },
+ {
+ "$ref": "#/parameters/DeviceId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Device"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "DeviceList": {
+ "description": "List of Devices",
+ "required": [
+ "value"
+ ],
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of devices",
+ "items": {
+ "$ref": "#/definitions/Device"
+ }
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "When there are too many devices for one page, use this URI to fetch the next page."
+ }
+ }
+ },
+ "Device": {
+ "type": "object",
+ "description": "Device model",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Device data",
+ "$ref": "#/definitions/DeviceProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../common/v1/types.json#/definitions/Resource"
+ }
+ ]
+ },
+ "DeviceProperties": {
+ "type": "object",
+ "description": "Device Information",
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Device display name given by the collector"
+ },
+ "deviceType": {
+ "type": "string",
+ "description": "Device type."
+ },
+ "sourceName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The source that created the device"
+ },
+ "networkInterfaces": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of network interfaces.",
+ "items": {
+ "$ref": "#/definitions/NetworkInterface"
+ }
+ },
+ "vendor": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Device vendor"
+ },
+ "osName": {
+ "description": "Device operating system name.",
+ "type": "string"
+ },
+ "protocols": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of protocols.",
+ "items": {
+ "$ref": "#/definitions/Protocol"
+ }
+ },
+ "lastActiveTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "last time the device was active in the network"
+ },
+ "lastUpdateTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "last time the device was updated"
+ },
+ "managementState": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "Managed",
+ "Unmanaged"
+ ],
+ "description": "Managed state of the device.",
+ "x-ms-enum": {
+ "name": "ManagementState",
+ "modelAsString": true
+ }
+ },
+ "authorizationState": {
+ "type": "string",
+ "enum": [
+ "Authorized",
+ "Unauthorized"
+ ],
+ "default": "Unauthorized",
+ "description": "Authorized state of the device.",
+ "x-ms-enum": {
+ "name": "AuthorizationState",
+ "modelAsString": true
+ }
+ },
+ "deviceCriticality": {
+ "type": "string",
+ "enum": [
+ "Important",
+ "Standard"
+ ],
+ "default": "Standard",
+ "x-ms-enum": {
+ "name": "DeviceCriticality",
+ "modelAsString": true
+ },
+ "description": "Device criticality."
+ },
+ "purdueLevel": {
+ "type": "string",
+ "enum": [
+ "ProcessControl",
+ "Supervisory",
+ "Enterprise"
+ ],
+ "default": "ProcessControl",
+ "x-ms-enum": {
+ "name": "PurdueLevel",
+ "modelAsString": true
+ },
+ "description": "Purdue level of the device."
+ },
+ "notes": {
+ "type": "string",
+ "description": "user notes for the device, up to 300 characters."
+ },
+ "firmwares": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of device firmwares.",
+ "items": {
+ "$ref": "#/definitions/Firmware"
+ }
+ },
+ "discoveryTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "Discovered time of the device."
+ },
+ "programmingState": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "ProgrammingDevice",
+ "NotProgrammingDevice"
+ ],
+ "x-ms-enum": {
+ "name": "ProgrammingState",
+ "modelAsString": true
+ },
+ "description": "Indicates whether this device is programming"
+ },
+ "lastProgrammingTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "last time the device was programming or programed."
+ },
+ "scanningFunctionality": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "ScannerDevice",
+ "NotScannerDevice"
+ ],
+ "x-ms-enum": {
+ "name": "ScanningFunctionality",
+ "modelAsString": true
+ },
+ "description": "Indicates whether the device is a scanner"
+ },
+ "lastScanTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "last time the device was scanning."
+ },
+ "riskScore": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "maximum": 100,
+ "description": "risk score of the device."
+ },
+ "sensors": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of sensors that scanned this device.",
+ "items": {
+ "$ref": "#/definitions/Sensor"
+ }
+ },
+ "site": {
+ "readOnly": true,
+ "$ref": "#/definitions/Site"
+ },
+ "deviceStatus": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "Active",
+ "Removed"
+ ],
+ "x-ms-enum": {
+ "name": "DeviceStatus",
+ "modelAsString": true
+ },
+ "description": "Device status."
+ }
+ }
+ },
+ "NetworkInterface": {
+ "type": "object",
+ "description": "Network interface",
+ "properties": {
+ "ipAddress": {
+ "$ref": "#/definitions/IpAddress"
+ },
+ "macAddress": {
+ "$ref": "#/definitions/MacAddress"
+ },
+ "vlans": {
+ "readOnly": true,
+ "type": "array",
+ "description": "List of device vlans.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "IpAddress": {
+ "type": "object",
+ "description": "IP Address information",
+ "properties": {
+ "v4Address": {
+ "readOnly": true,
+ "type": "string",
+ "description": "IPV4 address"
+ },
+ "detectionTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "Detection time of the ip address."
+ },
+ "subnetCidr": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Subnet Classless Inter-Domain Routing"
+ },
+ "fqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Fully qualified domain name"
+ },
+ "fqdnLastLookupTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "FQDN last lookup time."
+ }
+ }
+ },
+ "MacAddress": {
+ "type": "object",
+ "description": "MAC Address information",
+ "properties": {
+ "address": {
+ "readOnly": true,
+ "type": "string",
+ "description": "MAC address"
+ },
+ "detectionTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "Detection time of the mac address."
+ },
+ "significance": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "Primary",
+ "Secondary"
+ ],
+ "x-ms-enum": {
+ "name": "MacSignificance",
+ "modelAsString": true
+ },
+ "description": "Indicates whether this is the primary secondary MAC address of the device"
+ },
+ "relationToIpStatus": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "Guess",
+ "Certain"
+ ],
+ "x-ms-enum": {
+ "name": "RelationToIpStatus",
+ "modelAsString": true
+ },
+ "description": "Indicates whether the relation of the mac to the ip address is certain or a guess"
+ }
+ }
+ },
+ "Firmware": {
+ "type": "object",
+ "description": "Firmware information",
+ "properties": {
+ "moduleAddress": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Address of the specific module a firmware is related to"
+ },
+ "rack": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Rack number of the module a firmware is related to."
+ },
+ "slot": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Slot number in the rack of the module a firmware is related to"
+ },
+ "serial": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Serial of the firmware"
+ },
+ "model": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Firmware model"
+ },
+ "version": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Firmware version"
+ },
+ "additionalData": {
+ "readOnly": true,
+ "type": "object",
+ "description": " A bag of fields which extends the firmware information."
+ }
+ }
+ },
+ "Protocol": {
+ "type": "object",
+ "description": "Protocol data",
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Protocol name"
+ },
+ "identifiers": {
+ "type": "string",
+ "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": {
+ "DeviceId": {
+ "name": "deviceId",
+ "in": "path",
+ "required": true,
+ "description": "Identifier of the device.",
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
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
new file mode 100644
index 000000000000..b90115600eb5
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevice.json
@@ -0,0 +1,79 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "resourceId": "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/MyGroup/providers/Microsoft.Devices/iotHubs/myHub",
+ "deviceId": "myDevice"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/MyGroup/providers/Microsoft.Devices/iotHubs/myHub/providers/Microsoft.Security/devices/myDevice",
+ "name": "myDevice",
+ "type": "Microsoft.Security/devices",
+ "properties": {
+ "displayName": "10.168.140.1",
+ "deviceType": "PLC",
+ "sourceName": "HORIZON",
+ "networkInterfaces": [
+ {
+ "ipAddress": {
+ "v4Address": "10.168.140.1",
+ "detectionTime": "2020-05-13T06:32:25Z"
+ },
+ "macAddress": {
+ "address": "34-E1-2D-77-80-D0",
+ "detectionTime": "2020-05-13T06:32:25Z",
+ "significance": "Primary",
+ "relationToIpStatus": "Certain"
+ },
+ "vlans": [
+ "name(1)->2",
+ "3",
+ "another_name(4)"
+ ]
+ }
+ ],
+ "vendor": "BROADCOM",
+ "osName": "Windows 10 64",
+ "protocols": [
+ {
+ "name": "CIP",
+ "identifiers": "0, 1"
+ },
+ {
+ "name": "EtherNet/IP",
+ "identifiers": "0, 1"
+ }
+ ],
+ "lastActiveTime": "2020-05-13T06:32:25Z",
+ "lastUpdateTime": "2020-05-13T06:32:25Z",
+ "managementState": "Unmanaged",
+ "authorizationState": "Authorized",
+ "deviceCriticality": "Standard",
+ "purdueLevel": "ProcessControl",
+ "firmwares": [
+ {
+ "serial": "0x27269242",
+ "model": "1768-ENBT",
+ "version": "29.11"
+ }
+ ],
+ "discoveryTime": "2020-05-13T06:32:25Z",
+ "programmingState": "NotProgrammingDevice",
+ "scanningFunctionality": "NotScannerDevice",
+ "riskScore": 100,
+ "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
new file mode 100644
index 000000000000..777df993569e
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevicesListForHub.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "resourceId": "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/MyGroup/providers/Microsoft.Devices/iotHubs/myHub"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/MyGroup/providers/Microsoft.Devices/iotHubs/myHub/providers/Microsoft.Security/devices/myDevice",
+ "name": "myDevice",
+ "type": "Microsoft.Security/devices",
+ "properties": {
+ "displayName": "10.168.140.1",
+ "deviceType": "PLC",
+ "sourceName": "HORIZON",
+ "networkInterfaces": [
+ {
+ "ipAddress": {
+ "v4Address": "10.168.140.1",
+ "detectionTime": "2020-05-13T06:32:25Z"
+ },
+ "macAddress": {
+ "address": "34-E1-2D-77-80-D0",
+ "detectionTime": "2020-05-13T06:32:25Z",
+ "significance": "Primary",
+ "relationToIpStatus": "Certain"
+ },
+ "vlans": [
+ "name(1)->2",
+ "3",
+ "another_name(4)"
+ ]
+ }
+ ],
+ "vendor": "BROADCOM",
+ "osName": "Windows 10 64",
+ "protocols": [
+ {
+ "name": "CIP",
+ "identifiers": "0, 1"
+ },
+ {
+ "name": "EtherNet/IP",
+ "identifiers": "0, 1"
+ }
+ ],
+ "lastActiveTime": "2020-05-13T06:32:25Z",
+ "lastUpdateTime": "2020-05-13T06:32:25Z",
+ "managementState": "Unmanaged",
+ "authorizationState": "Authorized",
+ "deviceCriticality": "Standard",
+ "purdueLevel": "ProcessControl",
+ "firmwares": [
+ {
+ "serial": "0x27269242",
+ "model": "1768-ENBT",
+ "version": "29.11"
+ }
+ ],
+ "discoveryTime": "2020-05-13T06:32:25Z",
+ "programmingState": "NotProgrammingDevice",
+ "scanningFunctionality": "NotScannerDevice",
+ "riskScore": 100,
+ "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
new file mode 100644
index 000000000000..b4aca357ced5
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/preview/2020-08-06-preview/examples/Devices/GetDevicesListForSubscription.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/MyGroup/providers/Microsoft.Devices/iotHubs/myHub/providers/Microsoft.Security/devices/myDevice",
+ "name": "myDevice",
+ "type": "Microsoft.Security/devices",
+ "properties": {
+ "displayName": "10.168.140.1",
+ "deviceType": "PLC",
+ "sourceName": "HORIZON",
+ "networkInterfaces": [
+ {
+ "ipAddress": {
+ "v4Address": "10.168.140.1",
+ "detectionTime": "2020-05-13T06:32:25Z"
+ },
+ "macAddress": {
+ "address": "34-E1-2D-77-80-D0",
+ "detectionTime": "2020-05-13T06:32:25Z",
+ "significance": "Primary",
+ "relationToIpStatus": "Certain"
+ },
+ "vlans": [
+ "name(1)->2",
+ "3",
+ "another_name(4)"
+ ]
+ }
+ ],
+ "vendor": "BROADCOM",
+ "osName": "Windows 10 64",
+ "protocols": [
+ {
+ "name": "CIP",
+ "identifiers": "0, 1"
+ },
+ {
+ "name": "EtherNet/IP",
+ "identifiers": "0, 1"
+ }
+ ],
+ "lastActiveTime": "2020-05-13T06:32:25Z",
+ "lastUpdateTime": "2020-05-13T06:32:25Z",
+ "managementState": "Unmanaged",
+ "authorizationState": "Authorized",
+ "deviceCriticality": "Standard",
+ "purdueLevel": "ProcessControl",
+ "firmwares": [
+ {
+ "serial": "0x27269242",
+ "model": "1768-ENBT",
+ "version": "29.11"
+ }
+ ],
+ "discoveryTime": "2020-05-13T06:32:25Z",
+ "programmingState": "NotProgrammingDevice",
+ "scanningFunctionality": "NotScannerDevice",
+ "riskScore": 100,
+ "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/Microsoft.Security/stable/2020-01-01/alerts.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/alerts.json
index 1761bd6f335a..8524e82d301f 100644
--- a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/alerts.json
+++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/alerts.json
@@ -126,7 +126,7 @@
"Alerts"
],
"description": "List all the alerts that are associated with the subscription that are stored in a specific location",
- "operationId": "Alerts_ListSubscriptionLevelByRegion",
+ "operationId": "Alerts_ListSubscriptionLevelAlertsByRegion",
"parameters": [
{
"$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
@@ -168,7 +168,7 @@
"Alerts"
],
"description": "List all the alerts that are associated with the resource group that are stored in a specific location",
- "operationId": "Alerts_ListResourceGroupLevelByRegion",
+ "operationId": "Alerts_ListResourceGroupLevelAlertsByRegion",
"parameters": [
{
"$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
@@ -213,7 +213,7 @@
"Alerts"
],
"description": "Get an alert that is associated with a subscription",
- "operationId": "Alerts_GetSubscriptionLevel",
+ "operationId": "Alerts_GetSubscriptionLevelAlert",
"parameters": [
{
"$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
@@ -255,7 +255,7 @@
"Alerts"
],
"description": "Get an alert that is associated a resource group or a resource in a resource group",
- "operationId": "Alerts_GetResourceGroupLevel",
+ "operationId": "Alerts_GetResourceGroupLevelAlerts",
"parameters": [
{
"$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
@@ -300,7 +300,7 @@
"Alerts"
],
"description": "Update the alert's state",
- "operationId": "Alerts_UpdateSubscriptionLevelStateToDismiss",
+ "operationId": "Alerts_UpdateSubscriptionLevelAlertStateToDismiss",
"parameters": [
{
"$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
@@ -378,7 +378,7 @@
"Alerts"
],
"description": "Update the alert's state",
- "operationId": "Alerts_UpdateSubscriptionLevelStateToActivate",
+ "operationId": "Alerts_UpdateSubscriptionLevelAlertStateToReactivate",
"parameters": [
{
"$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
@@ -459,7 +459,7 @@
"Alerts"
],
"description": "Update the alert's state",
- "operationId": "Alerts_UpdateResourceGroupLevelStateToDismiss",
+ "operationId": "Alerts_UpdateResourceGroupLevelAlertStateToDismiss",
"parameters": [
{
"$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
@@ -501,7 +501,7 @@
"Alerts"
],
"description": "Update the alert's state",
- "operationId": "Alerts_UpdateResourceGroupLevelStateToActivate",
+ "operationId": "Alerts_UpdateResourceGroupLevelAlertStateToReactivate",
"parameters": [
{
"$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScoreControlDefinitions/ListSecureScoreControlDefinitions_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScoreControlDefinitions/ListSecureScoreControlDefinitions_example.json
new file mode 100644
index 000000000000..7f7fb09a0bf1
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScoreControlDefinitions/ListSecureScoreControlDefinitions_example.json
@@ -0,0 +1,58 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/providers/Microsoft.Security/SecureScoreControlDefinitions/a9909064-42b4-4d34-8143-275477afe18b",
+ "name": "a9909064-42b4-4d34-8143-275477afe18b",
+ "type": "Microsoft.Security/SecureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Protect applications against DDoS attacks",
+ "description": "This control contains recommendations regarding DDoS attack prevention",
+ "maxScore": 2,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/e3de1cc0-f4dd-3b34-e496-8b5381ba2d70"
+ }
+ ]
+ }
+ },
+ {
+ "id": "/providers/Microsoft.Security/SecureScoreControlDefinitions/a000c66f-6da2-4f9d-826d-2364347d2588",
+ "name": "a000c66f-6da2-4f9d-826d-2364347d2588",
+ "type": "Microsoft.Security/SecureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Apply adaptive application control",
+ "description": "This control contains recommendations regarding enabling adaptive application control",
+ "maxScore": 3,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/35f45c95-27cf-4e52-891f-8390d1de5828"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/d1db3318-01ff-16de-29eb-28b344515626"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/e7ee30c4-bac9-2966-54bd-2023a4282872"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/8e2b96ff-3de2-289b-b5c1-3b9921a3441e"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScoreControlDefinitions/ListSecureScoreControlDefinitions_subscription_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScoreControlDefinitions/ListSecureScoreControlDefinitions_subscription_example.json
new file mode 100644
index 000000000000..2b82a2c59241
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScoreControlDefinitions/ListSecureScoreControlDefinitions_subscription_example.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/providers/Microsoft.Security/SecureScoreControlDefinitions/a9909064-42b4-4d34-8143-275477afe18b",
+ "name": "a9909064-42b4-4d34-8143-275477afe18b",
+ "type": "Microsoft.Security/SecureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Protect applications against DDoS attacks",
+ "description": "This control contains recommendations regarding DDoS attack prevention",
+ "maxScore": 2,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/e3de1cc0-f4dd-3b34-e496-8b5381ba2d70"
+ }
+ ]
+ }
+ },
+ {
+ "id": "/providers/Microsoft.Security/SecureScoreControlDefinitions/34a42fb3-e6db-409c-b56b-7b1db6b8aee0",
+ "name": "34a42fb3-e6db-409c-b56b-7b1db6b8aee0",
+ "type": "Microsoft.Security/SecureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Enable MFA",
+ "description": "This control contains recommendations regarding MFA",
+ "maxScore": 10,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/151e82c5-5341-a74b-1eb0-bc38d2c84bb5"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/57e98606-6b1e-6193-0e3d-fe621387c16b"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/94290b00-4d0c-d7b4-7cea-064a9554e681"
+ }
+ ]
+ }
+ },
+ {
+ "id": "/providers/Microsoft.Security/SecureScoreControlDefinitions/a000c66f-6da2-4f9d-826d-2364347d2588",
+ "name": "a000c66f-6da2-4f9d-826d-2364347d2588",
+ "type": "Microsoft.Security/SecureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Apply adaptive application control",
+ "description": "This control contains recommendations regarding enabling adaptive application control",
+ "maxScore": 3,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/35f45c95-27cf-4e52-891f-8390d1de5828"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/d1db3318-01ff-16de-29eb-28b344515626"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/e7ee30c4-bac9-2966-54bd-2023a4282872"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/8e2b96ff-3de2-289b-b5c1-3b9921a3441e"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/GetSecureScoresSingle_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/GetSecureScoresSingle_example.json
new file mode 100644
index 000000000000..f81aa4dabcaa
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/GetSecureScoresSingle_example.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "secureScoreName": "ascScore"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore",
+ "name": "ascScore",
+ "type": "Microsoft.Security/secureScores",
+ "properties": {
+ "displayName": "ASC score",
+ "score": {
+ "max": 39,
+ "current": 23.53,
+ "percentage": 0.6033
+ },
+ "weight": 67
+ }
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/ListSecureScoreControlsForNameWithExpand_builtin_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/ListSecureScoreControlsForNameWithExpand_builtin_example.json
new file mode 100644
index 000000000000..e91cdc63766f
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/ListSecureScoreControlsForNameWithExpand_builtin_example.json
@@ -0,0 +1,1111 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "secureScoreName": "ascScore",
+ "$expand": "definition"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/a9909064-42b4-4d34-8143-275477afe18b",
+ "name": "a9909064-42b4-4d34-8143-275477afe18b",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Protect applications against DDoS attacks",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 1,
+ "score": {
+ "max": 0,
+ "current": 0,
+ "percentage": 0
+ },
+ "definition": {
+ "id": "/providers/Microsoft.Security/secureScoreControlDefinitions/a9909064-42b4-4d34-8143-275477afe18b",
+ "name": "a9909064-42b4-4d34-8143-275477afe18b",
+ "type": "Microsoft.Security/secureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Protect applications against DDoS attacks",
+ "maxScore": 2,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/e3de1cc0-f4dd-3b34-e496-8b5381ba2d70"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/08e628db-e2ed-4793-bc91-d13e684401c3"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/405c9ae6-49f9-46c4-8873-a86690f27818"
+ }
+ ]
+ }
+ },
+ "weight": 0
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/34a42fb3-e6db-409c-b56b-7b1db6b8aee0",
+ "name": "34a42fb3-e6db-409c-b56b-7b1db6b8aee0",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable MFA",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 10,
+ "current": 10,
+ "percentage": 1
+ },
+ "definition": {
+ "id": "/providers/Microsoft.Security/secureScoreControlDefinitions/34a42fb3-e6db-409c-b56b-7b1db6b8aee0",
+ "name": "34a42fb3-e6db-409c-b56b-7b1db6b8aee0",
+ "type": "Microsoft.Security/secureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Enable MFA",
+ "maxScore": 10,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/94290b00-4d0c-d7b4-7cea-064a9554e681"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/57e98606-6b1e-6193-0e3d-fe621387c16b"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/1f24d55a-df0f-4772-9090-4629c2d6bfff"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/8e3d9ac0-a248-4276-a437-304c6cd1443b"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/8d7a6128-c8f2-43df-b422-7877346f9ddb"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/dbfc99e3-e648-4c3b-bd32-995e6268430d"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/4a946e22-47e8-443d-8761-b25620b4a1e1"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/a7c8fa46-526d-4bf6-b8b3-17fa01310fd8"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/20f6c761-4dd7-4f27-9e37-6db8471486ef"
+ }
+ ]
+ }
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/76763537-9feb-42d3-b4f4-78c01117be80",
+ "name": "76763537-9feb-42d3-b4f4-78c01117be80",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Implement security best practices",
+ "healthyResourceCount": 7,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 1,
+ "score": {
+ "max": 0,
+ "current": 0,
+ "percentage": 0
+ },
+ "definition": {
+ "id": "/providers/Microsoft.Security/secureScoreControlDefinitions/76763537-9feb-42d3-b4f4-78c01117be80",
+ "name": "76763537-9feb-42d3-b4f4-78c01117be80",
+ "type": "Microsoft.Security/secureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Implement security best practices",
+ "maxScore": 0,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/151e82c5-5341-a74b-1eb0-bc38d2c84bb5"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/a8c6a4ad-d51e-88fe-2979-d3ee3c864f8b"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/6f90a6d6-d4d6-0794-0ec1-98fa77878c2e"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/a9341235-9389-42f0-a0bf-9bfb57960d44"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/45d313c3-3fca-5040-035f-d61928366d31"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/f0553104-cfdb-65e6-759c-002812e38500"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/47bb383c-8e25-95f0-c2aa-437add1d87d3"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/12018f4f-3d10-999b-e4c4-86ec25be08a1"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/eade5b56-eefd-444f-95c8-23f29e5d93cb"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/ebe970fe-9c27-4dd7-a165-1e943d565e10"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/f7010359-8d21-4598-a9f2-c3e81a17141e"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/24d8af06-d441-40b4-a49c-311421aa9f58"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/8c3e93d3-0276-4d06-b20a-9a9f3012742c"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/9172da4e-9571-6e33-2b5b-d742847f3be7"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/093c685b-56dd-13a3-8ed5-887a001837a2"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/64b8637e-4e1d-76a9-0fc9-c1e487a97ed8"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/fe02b3b7-a722-d4d6-6731-6493776203a6"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/57f36d21-69e3-4b0f-a66c-18629d1b736d"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/6c99f570-2ce7-46bc-8175-cde013df43bc"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/22489c48-27d1-4e40-9420-4303ad9cffef"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/fc84abc0-eee6-4758-8372-a7681965ca44"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/726cde3e-02f8-4041-8935-727f2be19ba7"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/a2bb3a1b-4a09-4cf7-9e79-c438687e2c2f"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/664c6a0b-5cd2-4140-aaff-a94241c07afd"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/3af5de46-fda8-4b6e-90f1-6565187d7c48"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/a9a59ebb-5d6f-42f5-92a1-036fd0fd1879"
+ }
+ ]
+ }
+ },
+ "weight": 7
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/4db8d6cf-075b-4149-a813-da09ca2ae120",
+ "name": "4db8d6cf-075b-4149-a813-da09ca2ae120",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable Advanced Threat Protection",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 0,
+ "current": 0,
+ "percentage": 0
+ },
+ "definition": {
+ "id": "/providers/Microsoft.Security/secureScoreControlDefinitions/4db8d6cf-075b-4149-a813-da09ca2ae120",
+ "name": "4db8d6cf-075b-4149-a813-da09ca2ae120",
+ "type": "Microsoft.Security/secureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Enable Advanced Threat Protection",
+ "maxScore": 0,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/56a6e81f-7413-4f72-9a1b-aaeeaa87c872"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/0876ef51-fee7-449d-ba1e-f2662c7e43c6"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/58d72d9d-0310-4792-9a3b-6dd111093cdb"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/6ac66a74-761f-4a59-928a-d373eea3f028"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/1be22853-8ed1-4005-9907-ddad64cb1417"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/86ea1a79-29d3-4eac-a9f4-3541ace4e718"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/53572822-d3fc-4363-bfb9-248645841612"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/b1af52e4-e968-4e2b-b6d0-6736c9651f0a"
+ }
+ ]
+ }
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/27b24961-75ba-4fe4-8909-97286d5dd5ee",
+ "name": "27b24961-75ba-4fe4-8909-97286d5dd5ee",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable auditing and logging",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 4,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 1,
+ "current": 0.2,
+ "percentage": 0.2
+ },
+ "definition": {
+ "id": "/providers/Microsoft.Security/secureScoreControlDefinitions/27b24961-75ba-4fe4-8909-97286d5dd5ee",
+ "name": "27b24961-75ba-4fe4-8909-97286d5dd5ee",
+ "type": "Microsoft.Security/secureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Enable auditing and logging",
+ "maxScore": 1,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/94208a8b-16e8-4e5b-abbd-4e81c9d02bee"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/c6dad669-efd7-cd72-61c5-289935607791"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/77785808-ce86-4e40-b45f-19110a547397"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/32771b45-220c-1a8b-584e-fdd5a2584a66"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/f11b27f2-8c49-5bb4-eff5-e1e5384bf95e"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/f19ab7d9-5ff2-f8fd-ab3b-0bf95dcb6889"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/ad5bbaeb-7632-5edf-f1c2-752075831ce8"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/dea5192e-1bb3-101b-b70c-4646546f5e1e"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/1597605a-0faf-5860-eb74-462ae2e9fc21"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/91387f44-7e43-4ecc-55f0-46f5adee3dd5"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/961eb649-3ea9-f8c2-6595-88e9a3aeedeb"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/88bbc99c-e5af-ddd7-6105-6150b2bfa519"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/22438e3c-73c8-40af-a083-10c980c63aa2"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/5720f1a6-6061-4768-9c0d-2000a6041744"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/dbfc99e3-e648-4c3b-bd32-995e6268430d"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/30c69b23-a9a2-4729-aca6-f21adacfff66"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/a9ac48d8-8dd7-42b9-9752-b1fa70ea5dd9"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/00261067-76a8-4ebb-b5fc-becc81067bee"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/83ca4867-58c1-45d6-b6b6-dbf226512891"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/a269cbdb-86e8-431c-9ff2-f0ea491174d8"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/5ea59e47-093b-446f-9765-5b0ec4c9da61"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/011397ca-1366-4bcc-b85a-7a5e3df2e80b"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/c62371bc-f6a7-4915-b5b5-14288682cf79"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/293ba336-7312-42fc-a59d-836e4e678b17"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/0b547a38-2c0d-47e1-b9a2-a59fccc140db"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/7d0ad86f-f43b-4889-b2f7-09d91bd1407b"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/b20558b6-de31-480c-8aa0-e920d62b9764"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/022efc2d-5119-480b-a203-e151b6b2645c"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/3ee7608e-f0e7-4c26-8921-5ae46c4e99df"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/33765629-073d-49eb-bab4-64bdf8ac90da"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/9c054f50-823f-45ab-839e-9df4eb7c2f11"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/f61e15f3-4bcf-4d2e-8f06-32237cabe0a0"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/cdb3af55-2abf-476b-aac7-5cfec366a4dd"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/bc26b0d4-a1d7-4665-9d44-efc205ae73f0"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/3812e247-34f2-4f06-a312-89a8fe51fa37"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/f0f8405a-5ecc-4314-808e-083e030d6163"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/c23e0eec-eee4-4632-b1c2-6c884c3c963b"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/7ce5a01f-e94b-438a-8b72-fa02c076f11a"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/46e4e0ed-106d-405e-b1a9-ca34c8f7d31f"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/b1294b0d-9b2e-4e1b-9f67-77a75fb10a65"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/0b86a67f-bde5-4c91-b10c-4102033b8692"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/3d55e4b1-ecdb-4eaf-9e3f-b00a764182bd"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/a7c8fa46-526d-4bf6-b8b3-17fa01310fd8"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/20f6c761-4dd7-4f27-9e37-6db8471486ef"
+ }
+ ]
+ }
+ },
+ "weight": 5
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/2d85f639-0bea-4a4a-b6c6-608952a1414a",
+ "name": "2d85f639-0bea-4a4a-b6c6-608952a1414a",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Manage access and permissions",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 2,
+ "percentage": 0.5
+ },
+ "definition": {
+ "id": "/providers/Microsoft.Security/secureScoreControlDefinitions/2d85f639-0bea-4a4a-b6c6-608952a1414a",
+ "name": "2d85f639-0bea-4a4a-b6c6-608952a1414a",
+ "type": "Microsoft.Security/secureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Manage access and permissions",
+ "maxScore": 4,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/c3b6ae71-f1f0-31b4-e6c1-d5951285d03d"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/04e7147b-0deb-9796-2e5c-0336343ceb3d"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/e52064aa-6853-e252-a11e-dffc675689c2"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/00c6d40b-e990-6acf-d4f3-471e747a27c4"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/2c79b4af-f830-b61e-92b9-63dfa30f16e4"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/b0fdc63a-38e7-4bab-a7c4-2c2665abbaa9"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/03afeb6f-7634-adb3-0a01-803b0b9cb611"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/9d07b7e6-2986-4964-a76c-b2689604e212"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/08e628db-e2ed-4793-bc91-d13e684401c3"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/5d90913f-a1c5-4429-ad54-2c6c17fb3c73"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/582c14e9-48c1-4b25-ab93-91bdeaf9120c"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/8a10942a-02ca-483f-81ae-2260ea7808cc"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/9b8eac17-6b11-4b94-9bb4-18c81aee7123"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/554ba13c-d7d4-4530-88ce-94cf11a670ce"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/66a1d478-4d24-42d4-8eca-dcdab6532a18"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/b396f112-a462-4813-a93f-80bc90041e4d"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/5425052d-cc0d-4424-af71-050311f99634"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/09cb7d54-db05-4d31-97f3-9bbfe1dff610"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/01fb1ad4-303b-4789-abf2-c024c4a76523"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/0de072b9-6515-4985-842e-0318047bb85b"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/8c3f474a-234e-442f-92b3-2a45e37f7eee"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/c55461af-4923-4fbb-b270-40d5e5f4c0ff"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/bbdc4999-1462-4d46-853b-2f8c6ca1c682"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/9e1f12d0-cb3d-4e1c-a468-6bc3d934c99d"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/fd5d38f6-340e-4bd2-88f2-e1314c3c07a9"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/0384d5b7-5def-4130-b7b5-db7da7e63276"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/dbfc99e3-e648-4c3b-bd32-995e6268430d"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/0ad39832-f031-4fdd-885e-c6cce85ac77c"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/90191798-da1b-40dd-aa9c-1c0eafb1ba87"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/ddced3c8-a5e2-4dc4-b0fe-1331c77fc9c4"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/52f83ea2-6871-45c3-8b26-13566e966638"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/79b4eb34-c06e-49bf-883d-5352a21a962f"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/5723400d-5b2a-45f1-99ee-837986866318"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/76e8881d-f18e-4e1b-b01d-376d0260e066"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/0eaf40a8-5673-4b33-8457-a31d85882233"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/5a235918-41a2-4bd0-8ab0-00a596e9d6a8"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/3ff38dcd-92e2-4b67-8765-35bb0174a4c7"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/1ff4501b-2109-4ef6-ba9d-e824a96d63d0"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/f493084a-d3c4-4886-8cf2-3c815aeef901"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/a7c8fa46-526d-4bf6-b8b3-17fa01310fd8"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/20f6c761-4dd7-4f27-9e37-6db8471486ef"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/11c95609-3553-430d-b788-fd41cde8b2db"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/27d6f0e9-b4d5-468b-ae7e-03d5473fd864"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/f0debc84-981c-4a0d-924d-aa4bd7d55fef"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/9b795646-9130-41a4-90b7-df9eae2437c8"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/802c0637-5a8c-4c98-abd7-7c96d89d6010"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/43dc2a2e-ce69-4d42-923e-ab7d136f2cfe"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/2acd365d-e8b5-4094-bce4-244b7c51d67c"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/51fd8bb1-0db4-bbf1-7e2b-cfcba7eb66a6"
+ }
+ ]
+ }
+ },
+ "weight": 2
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/99fc8df2-e0f5-40f8-9415-a7f7ca948b5a",
+ "name": "99fc8df2-e0f5-40f8-9415-a7f7ca948b5a",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Remediate security configurations",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 0,
+ "percentage": 0
+ },
+ "definition": {
+ "id": "/providers/Microsoft.Security/secureScoreControlDefinitions/99fc8df2-e0f5-40f8-9415-a7f7ca948b5a",
+ "name": "99fc8df2-e0f5-40f8-9415-a7f7ca948b5a",
+ "type": "Microsoft.Security/secureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Remediate security configurations",
+ "maxScore": 4,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/d1db3318-01ff-16de-29eb-28b344515626"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/e7ee30c4-bac9-2966-54bd-2023a4282872"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/27ac71b1-75c5-41c2-adc2-858f5db45b08"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/720a3e77-0b9a-4fa9-98b6-ddf0fd7e32c1"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/8e2b96ff-3de2-289b-b5c1-3b9921a3441e"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/181ac480-f7c4-544b-9865-11b8ffe87f47"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/8c3d9ad0-3639-4686-9cd2-2b2ab2609bda"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/0677209d-e675-2c6f-e91a-54cef2878663"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/a3eee263-aa01-4b52-a7c0-0094578ef48f"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/45cfe080-ceb1-a91e-9743-71551ed24e94"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/8941d121-f740-35f6-952c-6561d2b38d36"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/0396b18c-41aa-489c-affd-4ee5d1714a59"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/fa924a53-0837-4296-9bf7-18ce7dd68593"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/9e1789cd-7b61-42db-ba12-7268283ba466"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/233da9cd-11bf-463a-8aa7-4c81b9e788d1"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/c4131c22-1ecc-4beb-9961-d90108bd975f"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/d74d2738-2485-4103-9919-69c7e63776ec"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/5f65e47f-7a00-4bf3-acae-90ee441ee876"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/bc85a7ee-7f43-47ab-8736-4faaec9346b5"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/08e628db-e2ed-4793-bc91-d13e684401c3"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/86f91051-9d6a-47c3-a07f-bd14cb214b45"
+ }
+ ]
+ }
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/12136bd9-dc24-44f2-9587-7be3af6aac14",
+ "name": "12136bd9-dc24-44f2-9587-7be3af6aac14",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable endpoint protection",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 2,
+ "current": 0,
+ "percentage": 0
+ },
+ "definition": {
+ "id": "/providers/Microsoft.Security/secureScoreControlDefinitions/12136bd9-dc24-44f2-9587-7be3af6aac14",
+ "name": "12136bd9-dc24-44f2-9587-7be3af6aac14",
+ "type": "Microsoft.Security/secureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Enable endpoint protection",
+ "maxScore": 2,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/d1db3318-01ff-16de-29eb-28b344515626"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/e7ee30c4-bac9-2966-54bd-2023a4282872"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/27ac71b1-75c5-41c2-adc2-858f5db45b08"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/720a3e77-0b9a-4fa9-98b6-ddf0fd7e32c1"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/8e2b96ff-3de2-289b-b5c1-3b9921a3441e"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/83f577bd-a1b6-b7e1-0891-12ca19d1e6df"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/4fb67663-9ab9-475d-b026-8c544cced439"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/383cf3bc-fdf9-4a02-120a-3e7e36c6bfee"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/3bcd234d-c9c7-c2a2-89e0-c01f419c1a8a"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/37a3689a-818e-4a0e-82ac-b1392b9bb000"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/45cfe080-ceb1-a91e-9743-71551ed24e94"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/21300918-b2e3-0346-785f-c77ff57d243b"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/e71020c2-860c-3235-cd39-04f3f8c936d2"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/bc85a7ee-7f43-47ab-8736-4faaec9346b5"
+ }
+ ]
+ }
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/61702b76-1fab-41f2-bcbc-50b7870dcf38",
+ "name": "61702b76-1fab-41f2-bcbc-50b7870dcf38",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Apply system updates",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 6,
+ "current": 0,
+ "percentage": 0
+ },
+ "definition": {
+ "id": "/providers/Microsoft.Security/secureScoreControlDefinitions/61702b76-1fab-41f2-bcbc-50b7870dcf38",
+ "name": "61702b76-1fab-41f2-bcbc-50b7870dcf38",
+ "type": "Microsoft.Security/secureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Apply system updates",
+ "maxScore": 6,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/d1db3318-01ff-16de-29eb-28b344515626"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/e7ee30c4-bac9-2966-54bd-2023a4282872"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/27ac71b1-75c5-41c2-adc2-858f5db45b08"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/720a3e77-0b9a-4fa9-98b6-ddf0fd7e32c1"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/8e2b96ff-3de2-289b-b5c1-3b9921a3441e"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/4ab6e3c5-74dd-8b35-9ab9-f61b30875b27"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/f2805ebc-abc2-4aac-a8d6-35664c479971"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/c0f5316d-5ac5-9218-b77a-b96e16ccfd66"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/45cfe080-ceb1-a91e-9743-71551ed24e94"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/bd20bd91-aaf1-7f14-b6e4-866de2f43146"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/8bc390da-9eb6-938d-25ed-44a35d9bcc9d"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/22e18b64-4576-41e6-8972-0eb28c9af0c8"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/bc85a7ee-7f43-47ab-8736-4faaec9346b5"
+ }
+ ]
+ }
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/0e55495e-034f-4abc-8293-767229250176",
+ "name": "0e55495e-034f-4abc-8293-767229250176",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Encrypt data in transit",
+ "healthyResourceCount": 5,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 3.33,
+ "percentage": 0.8325
+ },
+ "definition": {
+ "id": "/providers/Microsoft.Security/secureScoreControlDefinitions/0e55495e-034f-4abc-8293-767229250176",
+ "name": "0e55495e-034f-4abc-8293-767229250176",
+ "type": "Microsoft.Security/secureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Encrypt data in transit",
+ "maxScore": 4,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/1b351b29-41ca-6df5-946c-c190a56be5fe"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/cb0acdc6-0846-fd48-debe-9905af151b6d"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/bf82a334-13b6-ca57-ea75-096fc2ffce50"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/35b25be2-d08a-e340-45ed-f08a95d804fc"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/1c5de8e1-f68d-6a17-e0d2-ec259c42768c"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/a3ebc80a-847b-46d5-a37d-8dca5e6947df"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/c28a89d9-7cf4-439b-a8c4-ad4e769f68ee"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/2acc27c6-5fdb-405e-9080-cb66b850c8f5"
+ }
+ ]
+ }
+ },
+ "weight": 6
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/f9d5432b-8f7b-45e9-b90c-e214a30f6a02",
+ "name": "f9d5432b-8f7b-45e9-b90c-e214a30f6a02",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Restrict unauthorized network access",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 4,
+ "percentage": 1
+ },
+ "definition": {
+ "id": "/providers/Microsoft.Security/secureScoreControlDefinitions/f9d5432b-8f7b-45e9-b90c-e214a30f6a02",
+ "name": "f9d5432b-8f7b-45e9-b90c-e214a30f6a02",
+ "type": "Microsoft.Security/secureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Restrict unauthorized network access",
+ "maxScore": 4,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/483f12ed-ae23-447e-a2de-a67a10db4353"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/3b20e985-f71f-483b-b078-f30d73936d43"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/f9f0eed0-f143-47bf-b856-671ea2eeed62"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/1a2b5b4c-f80d-46e7-ac81-b51a9fb363de"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/c3b51c94-588b-426b-a892-24696f9e54cc"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/e40df93c-7a7c-1b0a-c787-9987ceb98e54"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/7b3d4796-9400-2904-692b-4a5ede7f0a1e"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/df4d1739-47f0-60c7-1706-3731fea6ab03"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/1a36f14a-8bd8-45f5-abe5-eef88d76ab5b"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/beb62be3-5e78-49bd-ac5f-099250ef3c7c"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/ba975338-f956-41e7-a9f2-7614832d382d"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/d5a8d84a-9ad0-42e2-80e0-d38e3d46028a"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/5a3d6cdd-8eb3-46d2-ba11-d24a0d47fe65"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/d8326952-60bb-40fb-b33f-51e662708a88"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/08e628db-e2ed-4793-bc91-d13e684401c3"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/5f88450f-9546-4b78-a181-a2d9162bb441"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/add45209-73f6-4fa5-a5a5-74a451b07fbe"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/dbfc99e3-e648-4c3b-bd32-995e6268430d"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/b3473ed6-78c0-40d5-b5f0-674e98924952"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/9dd55566-33b9-4c07-a959-14794ce02355"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/ad0b04b9-eaf9-49f8-b85e-724f9520e760"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/ece6ec5d-a862-4e22-a8db-271661216018"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/e40b679a-f44e-4366-87dd-7693e16a2128"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/0bdcd23c-4ff2-4077-aa14-eb6950bfbdd8"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/1f386f4e-449e-41e8-b829-a2fe01086ae1"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/2f6c8a5a-9407-467c-8082-0ad4ab915d77"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/3b1713ec-feb3-4b32-b5b0-251acff0a84a"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/049f1551-438b-444e-8904-a3c3afbcb43e"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/684307e9-62a8-4f2a-887a-4b90de5e4b98"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/0327f9da-f758-4d69-8903-55448b8cf70e"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/cc637123-c11e-40ee-adf8-93c0876481f4"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/a7c8fa46-526d-4bf6-b8b3-17fa01310fd8"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/20f6c761-4dd7-4f27-9e37-6db8471486ef"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/ebc68898-5c0f-4353-a426-4a5f1e737b12"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/f67fb4ed-d481-44d7-91e5-efadf504f74a"
+ }
+ ]
+ }
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/8fd574ec-43cf-426e-a439-a67cbaf2d564",
+ "name": "8fd574ec-43cf-426e-a439-a67cbaf2d564",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable encryption at rest",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 4,
+ "percentage": 1
+ },
+ "definition": {
+ "id": "/providers/Microsoft.Security/secureScoreControlDefinitions/8fd574ec-43cf-426e-a439-a67cbaf2d564",
+ "name": "8fd574ec-43cf-426e-a439-a67cbaf2d564",
+ "type": "Microsoft.Security/secureScoreControlDefinitions",
+ "properties": {
+ "source": {
+ "sourceType": "BuiltIn"
+ },
+ "displayName": "Enable encryption at rest",
+ "maxScore": 4,
+ "assessmentDefinitions": [
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/d57a4221-a804-52ca-3dea-768284f06bb7"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/651967bf-044e-4bde-8376-3e08e0600105"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/b12bc79e-4f12-44db-acda-571820191ddc"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/7f04fc0c-4a3d-5c7e-ce19-666cb871b510"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/dbfc99e3-e648-4c3b-bd32-995e6268430d"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/c01fab9f-bde1-4ba5-9d35-7de51f31c2d3"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/23b514bd-2afc-4a3e-8d3d-f4327118eee9"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/3053474d-4fab-4603-8d18-2a6dfd09f782"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/6be98232-0100-474a-b33d-ba9c1a747f70"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/a7c8fa46-526d-4bf6-b8b3-17fa01310fd8"
+ },
+ {
+ "id": "/providers/Microsoft.Security/assessmentMetadata/20f6c761-4dd7-4f27-9e37-6db8471486ef"
+ }
+ ]
+ }
+ },
+ "weight": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/ListSecureScoreControlsForName_builtin_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/ListSecureScoreControlsForName_builtin_example.json
new file mode 100644
index 000000000000..fee1621836a8
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/ListSecureScoreControlsForName_builtin_example.json
@@ -0,0 +1,219 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
+ "secureScoreName": "ascScore"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/a9909064-42b4-4d34-8143-275477afe18b",
+ "name": "a9909064-42b4-4d34-8143-275477afe18b",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Protect applications against DDoS attacks",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 1,
+ "score": {
+ "max": 0,
+ "current": 0,
+ "percentage": 0
+ },
+ "weight": 0
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/34a42fb3-e6db-409c-b56b-7b1db6b8aee0",
+ "name": "34a42fb3-e6db-409c-b56b-7b1db6b8aee0",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable MFA",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 10,
+ "current": 10,
+ "percentage": 1
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/76763537-9feb-42d3-b4f4-78c01117be80",
+ "name": "76763537-9feb-42d3-b4f4-78c01117be80",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Implement security best practices",
+ "healthyResourceCount": 7,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 1,
+ "score": {
+ "max": 0,
+ "current": 0,
+ "percentage": 0
+ },
+ "weight": 7
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/4db8d6cf-075b-4149-a813-da09ca2ae120",
+ "name": "4db8d6cf-075b-4149-a813-da09ca2ae120",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable Advanced Threat Protection",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 0,
+ "current": 0,
+ "percentage": 0
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/27b24961-75ba-4fe4-8909-97286d5dd5ee",
+ "name": "27b24961-75ba-4fe4-8909-97286d5dd5ee",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable auditing and logging",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 4,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 1,
+ "current": 0.2,
+ "percentage": 0.2
+ },
+ "weight": 5
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/2d85f639-0bea-4a4a-b6c6-608952a1414a",
+ "name": "2d85f639-0bea-4a4a-b6c6-608952a1414a",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Manage access and permissions",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 2,
+ "percentage": 0.5
+ },
+ "weight": 2
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/99fc8df2-e0f5-40f8-9415-a7f7ca948b5a",
+ "name": "99fc8df2-e0f5-40f8-9415-a7f7ca948b5a",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Remediate security configurations",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 0,
+ "percentage": 0
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/12136bd9-dc24-44f2-9587-7be3af6aac14",
+ "name": "12136bd9-dc24-44f2-9587-7be3af6aac14",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable endpoint protection",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 2,
+ "current": 0,
+ "percentage": 0
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/61702b76-1fab-41f2-bcbc-50b7870dcf38",
+ "name": "61702b76-1fab-41f2-bcbc-50b7870dcf38",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Apply system updates",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 6,
+ "current": 0,
+ "percentage": 0
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/0e55495e-034f-4abc-8293-767229250176",
+ "name": "0e55495e-034f-4abc-8293-767229250176",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Encrypt data in transit",
+ "healthyResourceCount": 5,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 3.33,
+ "percentage": 0.8325
+ },
+ "weight": 6
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/f9d5432b-8f7b-45e9-b90c-e214a30f6a02",
+ "name": "f9d5432b-8f7b-45e9-b90c-e214a30f6a02",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Restrict unauthorized network access",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 4,
+ "percentage": 1
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/8fd574ec-43cf-426e-a439-a67cbaf2d564",
+ "name": "8fd574ec-43cf-426e-a439-a67cbaf2d564",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable encryption at rest",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 4,
+ "percentage": 1
+ },
+ "weight": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/ListSecureScoreControls_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/ListSecureScoreControls_example.json
new file mode 100644
index 000000000000..e0f997e6b2d4
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/ListSecureScoreControls_example.json
@@ -0,0 +1,218 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/a9909064-42b4-4d34-8143-275477afe18b",
+ "name": "a9909064-42b4-4d34-8143-275477afe18b",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Protect applications against DDoS attacks",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 1,
+ "score": {
+ "max": 0,
+ "current": 0,
+ "percentage": 0
+ },
+ "weight": 0
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/34a42fb3-e6db-409c-b56b-7b1db6b8aee0",
+ "name": "34a42fb3-e6db-409c-b56b-7b1db6b8aee0",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable MFA",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 10,
+ "current": 10,
+ "percentage": 1
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/76763537-9feb-42d3-b4f4-78c01117be80",
+ "name": "76763537-9feb-42d3-b4f4-78c01117be80",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Implement security best practices",
+ "healthyResourceCount": 7,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 1,
+ "score": {
+ "max": 0,
+ "current": 0,
+ "percentage": 0
+ },
+ "weight": 7
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/4db8d6cf-075b-4149-a813-da09ca2ae120",
+ "name": "4db8d6cf-075b-4149-a813-da09ca2ae120",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable Advanced Threat Protection",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 0,
+ "current": 0,
+ "percentage": 0
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/27b24961-75ba-4fe4-8909-97286d5dd5ee",
+ "name": "27b24961-75ba-4fe4-8909-97286d5dd5ee",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable auditing and logging",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 4,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 1,
+ "current": 0.2,
+ "percentage": 0.2
+ },
+ "weight": 5
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/2d85f639-0bea-4a4a-b6c6-608952a1414a",
+ "name": "2d85f639-0bea-4a4a-b6c6-608952a1414a",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Manage access and permissions",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 2,
+ "percentage": 0.5
+ },
+ "weight": 2
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/99fc8df2-e0f5-40f8-9415-a7f7ca948b5a",
+ "name": "99fc8df2-e0f5-40f8-9415-a7f7ca948b5a",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Remediate security configurations",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 0,
+ "percentage": 0
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/12136bd9-dc24-44f2-9587-7be3af6aac14",
+ "name": "12136bd9-dc24-44f2-9587-7be3af6aac14",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable endpoint protection",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 2,
+ "current": 0,
+ "percentage": 0
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/61702b76-1fab-41f2-bcbc-50b7870dcf38",
+ "name": "61702b76-1fab-41f2-bcbc-50b7870dcf38",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Apply system updates",
+ "healthyResourceCount": 0,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 6,
+ "current": 0,
+ "percentage": 0
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/0e55495e-034f-4abc-8293-767229250176",
+ "name": "0e55495e-034f-4abc-8293-767229250176",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Encrypt data in transit",
+ "healthyResourceCount": 5,
+ "unhealthyResourceCount": 1,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 3.33,
+ "percentage": 0.8325
+ },
+ "weight": 6
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/f9d5432b-8f7b-45e9-b90c-e214a30f6a02",
+ "name": "f9d5432b-8f7b-45e9-b90c-e214a30f6a02",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Restrict unauthorized network access",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 4,
+ "percentage": 1
+ },
+ "weight": 1
+ }
+ },
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore/secureScoreControls/8fd574ec-43cf-426e-a439-a67cbaf2d564",
+ "name": "8fd574ec-43cf-426e-a439-a67cbaf2d564",
+ "type": "Microsoft.Security/secureScores/secureScoreControls",
+ "properties": {
+ "displayName": "Enable encryption at rest",
+ "healthyResourceCount": 1,
+ "unhealthyResourceCount": 0,
+ "notApplicableResourceCount": 0,
+ "score": {
+ "max": 4,
+ "current": 4,
+ "percentage": 1
+ },
+ "weight": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/ListSecureScores_example.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/ListSecureScores_example.json
new file mode 100644
index 000000000000..0f541546cb8a
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/examples/secureScores/ListSecureScores_example.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01",
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/secureScores/ascScore",
+ "name": "ascScore",
+ "type": "Microsoft.Security/secureScores",
+ "properties": {
+ "displayName": "ASC score",
+ "score": {
+ "max": 39,
+ "current": 23.53,
+ "percentage": 0.6033
+ },
+ "weight": 67
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/secureScore.json b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/secureScore.json
new file mode 100644
index 000000000000..c7a296a5fd3c
--- /dev/null
+++ b/specification/security/resource-manager/Microsoft.Security/stable/2020-01-01/secureScore.json
@@ -0,0 +1,622 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Security Center",
+ "description": "API spec for Microsoft.Security (Azure Security Center) resource provider",
+ "version": "2020-01-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.Security/secureScores": {
+ "get": {
+ "x-ms-examples": {
+ "List secure scores": {
+ "$ref": "./examples/secureScores/ListSecureScores_example.json"
+ }
+ },
+ "tags": [
+ "Secure Score"
+ ],
+ "description": "List secure scores for all your Security Center initiatives within your current scope.",
+ "operationId": "SecureScores_List",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SecureScoresList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Security/secureScores/{secureScoreName}": {
+ "get": {
+ "x-ms-examples": {
+ "Get single secure score": {
+ "$ref": "./examples/secureScores/GetSecureScoresSingle_example.json"
+ }
+ },
+ "tags": [
+ "Secure Score"
+ ],
+ "description": "Get secure score for a specific Security Center initiative within your current scope. For the ASC Default initiative, use 'ascScore'.",
+ "operationId": "SecureScores_Get",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/secureScoreName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SecureScoreItem"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Security/secureScores/{secureScoreName}/secureScoreControls": {
+ "get": {
+ "x-ms-examples": {
+ "Get security controls and their current score for the specified initiative": {
+ "$ref": "./examples/secureScores/ListSecureScoreControlsForName_builtin_example.json"
+ },
+ "Get security controls and their current score for the specified initiative with the expand parameter": {
+ "$ref": "./examples/secureScores/ListSecureScoreControlsForNameWithExpand_builtin_example.json"
+ }
+ },
+ "tags": [
+ "Secure Score"
+ ],
+ "description": "Get all security controls for a specific initiative within a scope",
+ "operationId": "SecureScoreControls_ListBySecureScore",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/secureScoreName"
+ },
+ {
+ "$ref": "#/parameters/ExpandControlsDefinition"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SecureScoreControlList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Security/secureScoreControls": {
+ "get": {
+ "x-ms-examples": {
+ "List all secure scores controls": {
+ "$ref": "./examples/secureScores/ListSecureScoreControls_example.json"
+ }
+ },
+ "tags": [
+ "Secure Score Controls"
+ ],
+ "description": "Get all security controls within a scope",
+ "operationId": "SecureScoreControls_List",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ExpandControlsDefinition"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SecureScoreControlList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/providers/Microsoft.Security/secureScoreControlDefinitions": {
+ "get": {
+ "x-ms-examples": {
+ "List security controls definition": {
+ "$ref": "./examples/secureScoreControlDefinitions/ListSecureScoreControlDefinitions_example.json"
+ }
+ },
+ "tags": [
+ "Secure Score Control Definitions"
+ ],
+ "description": "List the available security controls, their assessments, and the max score",
+ "operationId": "SecureScoreControlDefinitions_List",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/secureScoreControlDefinitionList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Security/secureScoreControlDefinitions": {
+ "get": {
+ "x-ms-examples": {
+ "List security controls definition by subscription": {
+ "$ref": "./examples/secureScoreControlDefinitions/ListSecureScoreControlDefinitions_subscription_example.json"
+ }
+ },
+ "tags": [
+ "Secure Score Control Definitions"
+ ],
+ "description": "For a specified subscription, list the available security controls, their assessments, and the max score",
+ "operationId": "SecureScoreControlDefinitions_ListBySubscription",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/secureScoreControlDefinitionList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/types.json#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "SecureScoresList": {
+ "type": "object",
+ "description": "List of secure scores",
+ "properties": {
+ "value": {
+ "description": "Collection of secure scores in this page",
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SecureScoreItem"
+ }
+ },
+ "nextLink": {
+ "description": "The URI to fetch the next page.",
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ },
+ "SecureScoreItem": {
+ "description": "Secure score item data model",
+ "readOnly": true,
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "Secure score item",
+ "readOnly": true,
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SecureScoreItemProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../common/v1/types.json#/definitions/Resource"
+ }
+ ]
+ },
+ "SecureScoreItemProperties": {
+ "description": "Describes properties of a calculated secure score.",
+ "readOnly": true,
+ "type": "object",
+ "properties": {
+ "displayName": {
+ "description": "The initiative’s name",
+ "readOnly": true,
+ "type": "string"
+ },
+ "score": {
+ "description": "score object",
+ "readOnly": true,
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ScoreDetails"
+ },
+ "weight": {
+ "description": "The relative weight for each subscription. Used when calculating an aggregated secure score for multiple subscriptions.",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "exclusiveMinimum": false
+ }
+ }
+ },
+ "ScoreDetails": {
+ "description": "Calculation result data",
+ "readOnly": true,
+ "type": "object",
+ "properties": {
+ "max": {
+ "description": "Maximum score available",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "exclusiveMinimum": false
+ },
+ "current": {
+ "description": "Current score",
+ "readOnly": true,
+ "type": "number",
+ "format": "double",
+ "minimum": 0.00,
+ "exclusiveMinimum": false
+ },
+ "percentage": {
+ "description": "Ratio of the current score divided by the maximum. Rounded to 4 digits after the decimal point",
+ "readOnly": true,
+ "type": "number",
+ "format": "double",
+ "minimum": 0.00,
+ "maximum": 1.00,
+ "exclusiveMinimum": false,
+ "exclusiveMaximum": false
+ }
+ }
+ },
+ "SecureScoreControlScore": {
+ "description": "Calculation result data",
+ "type": "object",
+ "properties": {
+ "max": {
+ "description": "Maximum control score (0..10)",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "maximum": 10,
+ "exclusiveMinimum": false
+ },
+ "current": {
+ "description": "Actual score for the control = (achieved points / total points) * max score. if total points is zeroed, the return number is 0.00",
+ "readOnly": true,
+ "type": "number",
+ "format": "double",
+ "minimum": 0.00,
+ "maximum": 10.00,
+ "exclusiveMinimum": false
+ },
+ "percentage": {
+ "description": "Ratio of the current score divided by the maximum. Rounded to 4 digits after the decimal point",
+ "readOnly": true,
+ "type": "number",
+ "format": "double",
+ "minimum": 0.00,
+ "maximum": 1.00,
+ "exclusiveMinimum": false,
+ "exclusiveMaximum": false
+ }
+ }
+ },
+ "SecureScoreControlList": {
+ "description": "List of security controls",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of security controls in this page",
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SecureScoreControlDetails"
+ }
+ },
+ "nextLink": {
+ "description": "The URI to fetch the next page.",
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ },
+ "SecureScoreControlDetails": {
+ "description": "Details of the security control, its score, and the health status of the relevant resources.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SecureScoreControlScoreDetails"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../common/v1/types.json#/definitions/Resource"
+ }
+ ]
+ },
+ "SecureScoreControlScoreDetails": {
+ "description": "Calculation result data in control level",
+ "type": "object",
+ "properties": {
+ "displayName": {
+ "description": "User friendly display name of the control",
+ "readOnly": true,
+ "type": "string"
+ },
+ "score": {
+ "description": "Actual score object for the control",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ScoreDetails"
+ },
+ "healthyResourceCount": {
+ "description": "Number of healthy resources in the control",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32"
+ },
+ "unhealthyResourceCount": {
+ "description": "Number of unhealthy resources in the control",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32"
+ },
+ "notApplicableResourceCount": {
+ "description": "Number of not applicable resources in the control",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32"
+ },
+ "weight": {
+ "description": "The relative weight for this specific control in each of your subscriptions. Used when calculating an aggregated score for this control across all of your subscriptions.",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "exclusiveMinimum": false
+ },
+ "definition": {
+ "$ref": "#/definitions/SecureScoreControlDefinitionItem"
+ }
+ }
+ },
+ "secureScoreControlDefinitionList": {
+ "description": "List of security controls definition",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of security controls definition in this page",
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SecureScoreControlDefinitionItem"
+ }
+ },
+ "nextLink": {
+ "description": "The URI to fetch the next page.",
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ },
+ "SecureScoreControlDefinitionItem": {
+ "description": "Information about the security control.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SecureScoreControlDefinitionItemProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../common/v1/types.json#/definitions/Resource"
+ }
+ ]
+ },
+ "SecureScoreControlDefinitionItemProperties": {
+ "description": "Security Control Definition Properties.",
+ "type": "object",
+ "properties": {
+ "displayName": {
+ "description": "User friendly display name of the control",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "User friendly description of the control",
+ "readOnly": true,
+ "type": "string",
+ "maxLength": 256
+ },
+ "maxScore": {
+ "description": "Maximum control score (0..10)",
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "maximum": 10,
+ "exclusiveMinimum": false
+ },
+ "source": {
+ "description": "Source object from which the control was created",
+ "readOnly": true,
+ "$ref": "#/definitions/SecureScoreControlDefinitionSource"
+ },
+ "assessmentDefinitions": {
+ "description": "Array of assessments metadata IDs that are included in this security control",
+ "readOnly": true,
+ "$ref": "../../../common/v1/types.json#/definitions/AzureResourceLinks"
+ }
+ }
+ },
+ "SecureScoreControlDefinitionSource": {
+ "description": "The type of the security control (For example, BuiltIn)",
+ "readOnly": true,
+ "type": "object",
+ "properties": {
+ "sourceType": {
+ "description": "The type of security control (for example, BuiltIn)",
+ "type": "string",
+ "enum": [
+ "BuiltIn",
+ "Custom"
+ ],
+ "x-ms-enum": {
+ "name": "controlType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "BuiltIn",
+ "description": "Azure Security Center managed assessments"
+ },
+ {
+ "value": "Custom",
+ "description": "Non Azure Security Center managed assessments"
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ExpandControlsDefinition": {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData expand. Optional.",
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "definition"
+ ],
+ "x-ms-enum": {
+ "name": "ExpandControlsEnum",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "definition",
+ "description": "Add definition object for each control"
+ }
+ ]
+ }
+ },
+ "secureScoreName": {
+ "name": "secureScoreName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The initiative name. For the ASC Default initiative, use 'ascScore' as in the sample request below.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/security/resource-manager/readme.md b/specification/security/resource-manager/readme.md
index 87e3b6b42e5f..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
@@ -198,12 +203,20 @@ input-file:
- Microsoft.Security/stable/2020-01-01/discoveredSecuritySolutions.json
- Microsoft.Security/stable/2020-01-01/securitySolutionsReferenceData.json
- Microsoft.Security/stable/2020-01-01/externalSecuritySolutions.json
-- Microsoft.Security/preview/2020-01-01-preview/secureScore.json
+- 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:
@@ -375,6 +388,22 @@ input-file:
- Microsoft.Security/stable/2020-01-01/jitNetworkAccessPolicies.json
- Microsoft.Security/stable/2020-01-01/serverVulnerabilityAssessments.json
- Microsoft.Security/stable/2020-01-01/topologies.json
+- Microsoft.Security/stable/2020-01-01/secureScore.json
+
+# Needed when there is more than one input file
+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:
@@ -389,7 +418,12 @@ These settings apply only when `--tag=package-2020-08-preview-only` is specified
input-file:
- 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:
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 682ca4c40b17..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"
@@ -7598,7 +7993,9 @@
"Azure Security Center",
"Azure Advanced Threat Protection",
"Azure Active Directory Identity Protection",
- "Azure Security Center for IoT"
+ "Azure Security Center for IoT",
+ "Office 365 Advanced Threat Protection",
+ "Microsoft Defender Advanced Threat Protection"
],
"type": "string",
"x-ms-enum": {
@@ -9041,11 +9438,11 @@
"$ref": "#/definitions/DataConnector"
}
],
- "description": "Represents threat intelligence data connector.",
+ "description": "Data connector to pull threat intelligence data from TIP products.",
"properties": {
"properties": {
"$ref": "#/definitions/TIDataConnectorProperties",
- "description": "TI (Threat Intelligence) data connector properties.",
+ "description": "Threat Intelligence Platforms data connector properties.",
"x-ms-client-flatten": true
}
},
@@ -9053,7 +9450,7 @@
"x-ms-discriminator-value": "ThreatIntelligence"
},
"TIDataConnectorDataTypes": {
- "description": "The available data types for TI (Threat Intelligence) data connector.",
+ "description": "The available data types for Threat Intelligence Platforms data connector.",
"properties": {
"indicators": {
"allOf": [
@@ -9061,7 +9458,7 @@
"$ref": "#/definitions/DataConnectorDataTypeCommon"
}
],
- "description": "Data type for indicators connection.",
+ "description": "Data type for Threat Intelligence Platforms data connector.",
"type": "object"
}
},
@@ -9073,7 +9470,7 @@
"$ref": "#/definitions/DataConnectorTenantId"
}
],
- "description": "TI (Threat Intelligence) data connector properties.",
+ "description": "Threat Intelligence Platforms data connector properties.",
"properties": {
"dataTypes": {
"$ref": "#/definitions/TIDataConnectorDataTypes",
@@ -9088,11 +9485,11 @@
"$ref": "#/definitions/DataConnectorsCheckRequirements"
}
],
- "description": "Represents threat intelligence requirements check request.",
+ "description": "Threat Intelligence Platforms data connector check requirements",
"properties": {
"properties": {
"$ref": "#/definitions/TICheckRequirementsProperties",
- "description": "TI (Threat Intelligence) requirements check properties.",
+ "description": "Threat Intelligence Platforms data connector check required properties",
"x-ms-client-flatten": true
}
},
@@ -9105,7 +9502,7 @@
"$ref": "#/definitions/DataConnectorTenantId"
}
],
- "description": "TI (Threat Intelligence) requirements check properties.",
+ "description": "Threat Intelligence Platforms data connector required properties.",
"properties": {},
"type": "object"
},
@@ -9115,11 +9512,11 @@
"$ref": "#/definitions/DataConnector"
}
],
- "description": "Represents threat intelligence taxii data connector.",
+ "description": "Data connector to pull Threat intelligence data from TAXII 2.0/2.1 server",
"properties": {
"properties": {
"$ref": "#/definitions/TiTaxiiDataConnectorProperties",
- "description": "Threat intelligence taxii client data connector properties.",
+ "description": "Threat intelligence TAXII data connector properties.",
"x-ms-client-flatten": true
}
},
@@ -9127,7 +9524,7 @@
"x-ms-discriminator-value": "ThreatIntelligenceTaxii"
},
"TiTaxiiDataConnectorDataTypes": {
- "description": "The available data types for Threat Intelligence taxii client data connector.",
+ "description": "The available data types for Threat Intelligence TAXII data connector.",
"properties": {
"taxiiClient": {
"allOf": [
@@ -9135,7 +9532,7 @@
"$ref": "#/definitions/DataConnectorDataTypeCommon"
}
],
- "description": "Data type for taxii client.",
+ "description": "Data type for TAXII connector.",
"type": "object"
}
},
@@ -9147,35 +9544,35 @@
"$ref": "#/definitions/DataConnectorTenantId"
}
],
- "description": "Threat Intelligence taxii client data connector properties.",
+ "description": "Threat Intelligence TAXII data connector properties.",
"properties": {
"workspaceId": {
"description": "The workspace id.",
"type": "string"
},
"friendlyName": {
- "description": "The friendly name for taxii client connector.",
+ "description": "The friendly name for the TAXII server.",
"type": "string"
},
"taxiiServer": {
- "description": "The API root server for taxii client.",
+ "description": "The API root for the TAXII server.",
"type": "string"
},
"collectionId": {
- "description": "The taxii collection id.",
+ "description": "The collection id of the TAXII server.",
"type": "string"
},
"userName": {
- "description": "The taxii server user name.",
+ "description": "The userName for the TAXII server.",
"type": "string"
},
"password": {
- "description": "The taxii server password.",
+ "description": "The password for the TAXII server.",
"type": "string"
},
"dataTypes": {
"$ref": "#/definitions/TiTaxiiDataConnectorDataTypes",
- "description": "The available data types for the connector."
+ "description": "The available data types for Threat Intelligence TAXII data connector."
}
},
"type": "object"
@@ -9186,11 +9583,11 @@
"$ref": "#/definitions/DataConnectorsCheckRequirements"
}
],
- "description": "Represents threat intelligence requirements check request.",
+ "description": "Threat Intelligence TAXII data connector check requirements",
"properties": {
"properties": {
"$ref": "#/definitions/TiTaxiiCheckRequirementsProperties",
- "description": "Ti Taxii (Threat Intelligence Taxii) requirements check properties.",
+ "description": "Threat Intelligence TAXII check required properties.",
"x-ms-client-flatten": true
}
},
@@ -9203,7 +9600,7 @@
"$ref": "#/definitions/DataConnectorTenantId"
}
],
- "description": "Threat Intelligence taxii client data connector properties.",
+ "description": "Threat Intelligence TAXII data connector required properties.",
"type": "object"
},
"ThreatIntelligence": {
@@ -9570,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": {
@@ -9600,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",
@@ -9686,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"
},
@@ -10392,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.cli.md b/specification/servicebus/resource-manager/readme.cli.md
index e1f6d11dfcc0..f1a8e278f7b1 100644
--- a/specification/servicebus/resource-manager/readme.cli.md
+++ b/specification/servicebus/resource-manager/readme.cli.md
@@ -8,6 +8,77 @@ This directory contains the Cli common model for the Dns service.
``` yaml
# Migrated from Powershell's readme
cli:
+ cli-name: servicebus
+ package-name: azure-mgmt-servicebus
+ namespace: azure.mgmt.servicebus
+ test-scenario:
+ - name: /Namespaces/put/NameSpaceCreate
+ - name: /Topics/put/TopicCreate
+ - name: /Queues/put/QueueCreate
+ - name: /DisasterRecoveryConfigs/put/SBAliasCreate
+ - name: /MigrationConfigs/put/MigrationConfigurationsStartMigration
+ - name: /Namespaces/put/NameSpaceNetworkRuleSetCreate
+ - name: /Namespaces/put/NameSpaceAuthorizationRuleCreate
+ - name: /Subscriptions/put/SubscriptionCreate
+ - name: /Queues/put/QueueAuthorizationRuleCreate
+ - name: /Topics/put/TopicAuthorizationRuleCreate
+ - name: /Rules/put/RulesCreateCorrelationFilter
+ - name: /Rules/put/RulesCreateSqlFilter
+ - name: /Rules/put/RulesCreateOrUpdate
+ - name: /DisasterRecoveryConfigs/get/DisasterRecoveryConfigsAuthorizationRuleGet
+ - name: /Rules/get/RulesGet
+ - name: /Topics/get/TopicAuthorizationRuleGet
+ - name: /Queues/get/QueueAuthorizationRuleGet
+ - name: /Rules/get/RulesListBySubscriptions
+ - name: /Subscriptions/get/SubscriptionGet
+ - name: /Subscriptions/get/SubscriptionListByTopic
+ - name: /DisasterRecoveryConfigs/get/NameSpaceAuthorizationRuleListAll
+ - name: /Namespaces/get/NameSpaceAuthorizationRuleGet
+ - name: /Namespaces/get/NameSpaceNetworkRuleSetGet
+ - name: /Topics/get/TopicAuthorizationRuleListAll
+ - name: /Queues/get/QueueAuthorizationRuleListAll
+ - name: /MigrationConfigs/get/MigrationConfigurationsGet
+ - name: /DisasterRecoveryConfigs/get/SBAliasGet
+ - name: /DisasterRecoveryConfigs/get/SBAliasList
+ - name: /Queues/get/QueueGet
+ - name: /Topics/get/TopicGet
+ - name: /MigrationConfigs/get/MigrationConfigurationsList
+ - name: /Namespaces/get/NameSpaceAuthorizationRuleListAll
+ - name: /Namespaces/get/NameSpaceNetworkRuleSetList
+ - name: /EventHubs/get/RulesCreateOrUpdate
+ - name: /Topics/get/TopicGet
+ - name: /Queues/get/QueueListByNameSpace
+ - name: /Namespaces/get/NameSpaceGet
+ - name: /Namespaces/get/NameSpaceListByResourceGroup
+ - name: /PremiumMessagingRegions/get/PremiumMessagingRegionsList
+ - name: /Regions/get/RegionsListBySku
+ - name: /Namespaces/get/NameSpaceList
+ - name: /Operations/get/OperationsList
+ - name: /DisasterRecoveryConfigs/post/DisasterRecoveryConfigsAuthorizationRuleListKey
+ - name: /Topics/post/TopicAuthorizationRuleRegenerateKey
+ - name: /Queues/post/QueueAuthorizationRuleRegenerateKey
+ - name: /Topics/post/TopicAuthorizationRuleListKey
+ - name: /Queues/post/QueueAuthorizationRuleListKey
+ - name: /Namespaces/post/NameSpaceAuthorizationRuleRegenerateKey
+ - name: /DisasterRecoveryConfigs/post/AliasNameAvailability
+ - name: /Namespaces/post/NameSpaceAuthorizationRuleListKey
+ - name: /MigrationConfigs/post/MigrationConfigurationsCompleteMigration
+ - name: /MigrationConfigs/post/MigrationConfigurationsRevert
+ - name: /DisasterRecoveryConfigs/post/SBEHAliasBreakPairing
+ - name: /DisasterRecoveryConfigs/post/SBAliasFailOver
+ - name: /Namespaces/post/NameSpaceUpdate
+ - name: /Namespaces/patch/NameSpaceUpdate
+ - name: /Namespaces/post/NameSpaceCheckNameAvailability
+ - name: /Rules/delete/RulesDelete
+ - name: /Queues/delete/QueueAuthorizationRuleDelete
+ - name: /Topics/delete/TopicAuthorizationRuleDelete
+ - name: /Subscriptions/delete/SubscriptionDelete
+ - name: /Namespaces/delete/NameSpaceAuthorizationRuleDelete
+ - name: /MigrationConfigs/delete/MigrationConfigurationsDelete
+ - name: /DisasterRecoveryConfigs/delete/SBAliasDelete
+ - name: /Topics/delete/TopicDelete
+ - name: /Queues/delete/QueueDelete
+ - name: /Namespaces/delete/NameSpaceDelete
cli-directive:
- select: 'operation'
where:
diff --git a/specification/servicebus/resource-manager/readme.md b/specification/servicebus/resource-manager/readme.md
index c9f4f4f4e15c..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
@@ -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
@@ -149,12 +149,26 @@ python:
package-version: 0.5.0
clear-output-folder: true
```
+``` yaml $(python) && $(track2)
+python-mode: create
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+namespace: azure.mgmt.servicebus
+package-name: azure-mgmt-servicebus
+package-version: 0.5.0
+clear-output-folder: true
+```
+
``` yaml $(python) && $(python-mode) == 'update'
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/servicebus/azure-mgmt-servicebus/azure/mgmt/servicebus
python:
no-namespace-folders: true
output-folder: $(python-sdks-folder)/servicebus/azure-mgmt-servicebus/azure/mgmt/servicebus
```
``` yaml $(python) && $(python-mode) == 'create'
+basic-setup-py: true
+output-folder: $(python-sdks-folder)/servicebus/azure-mgmt-servicebus
python:
basic-setup-py: true
output-folder: $(python-sdks-folder)/servicebus/azure-mgmt-servicebus
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/BackupPartition-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/BackupPartition-1.json
new file mode 100644
index 000000000000..2a7638588821
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/BackupPartition-1.json
@@ -0,0 +1,12 @@
+{
+ "operationId": "BackupPartition",
+ "description": "This example shows how to trigger backup of a partition now, which is already configured for periodic backups. The newly created backup will be saved at the same location where the periodic backups are being saved.",
+ "parameters": {
+ "api-version": "6.4",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "BackupPartitionDescription": {}
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/BackupPartition-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/BackupPartition-2.json
new file mode 100644
index 000000000000..9aa037a4d490
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/BackupPartition-2.json
@@ -0,0 +1,18 @@
+{
+ "operationId": "BackupPartition",
+ "description": "This example shows how to trigger backup of a partition now, and save the backup to a specific Azure blob storage account.",
+ "parameters": {
+ "api-version": "6.4",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "BackupPartitionDescription": {
+ "BackupStorage": {
+ "StorageKind": "AzureBlobStore",
+ "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=",
+ "ContainerName": "BackupContainer"
+ }
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/BackupPartition-3.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/BackupPartition-3.json
new file mode 100644
index 000000000000..3d9ef05b08e4
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/BackupPartition-3.json
@@ -0,0 +1,19 @@
+{
+ "operationId": "BackupPartition",
+ "description": "This example shows how to trigger backup of a partition now, and save the backup to a specific file share accessible from all cluster nodes.",
+ "parameters": {
+ "api-version": "6.4",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "BackupPartitionDescription": {
+ "BackupStorage": {
+ "StorageKind": "FileShare",
+ "Path": "\\\\myshare\\backupshare",
+ "PrimaryUserName": "mydomain\\backupaccount",
+ "PrimaryPassword": "abcd1234"
+ }
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/BackupPartition-4.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/BackupPartition-4.json
new file mode 100644
index 000000000000..e77b1a9f010d
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/BackupPartition-4.json
@@ -0,0 +1,18 @@
+{
+ "operationId": "BackupPartition",
+ "description": "This example shows how to trigger backup of a partition now, and save the backup to a specific Dsms Azure blob storage location.",
+ "parameters": {
+ "api-version": "6.4",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "BackupPartitionDescription": {
+ "BackupStorage": {
+ "StorageKind": "DsmsAzureBlobStore",
+ "StorageCredentialsSourceLocation": "https://sample-dsms.dsms.core.winows.net/dsms/samplecredentiallocation/storageaccounts/samplestorageac/servicefabricbackup/samplebackup",
+ "ContainerName": "BackupContainer"
+ }
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateApplication-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateApplication-1.json
new file mode 100644
index 000000000000..815b59ce3e50
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateApplication-1.json
@@ -0,0 +1,15 @@
+{
+ "operationId": "CreateApplication",
+ "description": "This example shows how to create a Service Fabric application without overriding any application parameter values.",
+ "parameters": {
+ "api-version": "6.0",
+ "ApplicationDescription": {
+ "Name": "fabric:/samples/CalcApp",
+ "TypeVersion": "1.0",
+ "TypeName": "CalculatorApp"
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateBackupPolicy-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateBackupPolicy-1.json
new file mode 100644
index 000000000000..a2bb056ee6d0
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateBackupPolicy-1.json
@@ -0,0 +1,34 @@
+{
+ "operationId": "CreateBackupPolicy",
+ "description": "This example shows how to create a backup policy which takes backup twice everyday at 9 AM and 5 PM UTC which shall get deleted after 3 months, with Azure blob store as the backup location.",
+ "parameters": {
+ "api-version": "6.4",
+ "BackupPolicyDescription": {
+ "Name": "DailyAzureBackupPolicy",
+ "AutoRestoreOnDataLoss": false,
+ "MaxIncrementalBackups": 3,
+ "Schedule": {
+ "ScheduleKind": "TimeBased",
+ "ScheduleFrequencyType": "Daily",
+ "RunTimes": [
+ "0001-01-01T09:00:00Z",
+ "0001-01-01T17:00:00Z"
+ ]
+ },
+ "Storage": {
+ "StorageKind": "AzureBlobStore",
+ "FriendlyName": "Azure_storagesample",
+ "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=",
+ "ContainerName": "BackupContainer"
+ },
+ "RetentionPolicy": {
+ "RetentionPolicyType": "Basic",
+ "MinimumNumberOfBackups": 20,
+ "RetentionDuration": "P3M"
+ }
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateBackupPolicy-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateBackupPolicy-2.json
new file mode 100644
index 000000000000..f688def9e59e
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateBackupPolicy-2.json
@@ -0,0 +1,31 @@
+{
+ "operationId": "CreateBackupPolicy",
+ "description": "This example shows how to create a backup policy which takes backup every 10 minutes which shall get deleted after 20 days, with file share as the backup location.",
+ "parameters": {
+ "api-version": "6.4",
+ "BackupPolicyDescription": {
+ "Name": "FileShare10MinBackupPolicy",
+ "AutoRestoreOnDataLoss": false,
+ "MaxIncrementalBackups": 3,
+ "Schedule": {
+ "ScheduleKind": "FrequencyBased",
+ "Interval": "PT10M"
+ },
+ "Storage": {
+ "StorageKind": "FileShare",
+ "FriendlyName": "FileShare_myshare",
+ "Path": "\\\\myshare\\backupshare",
+ "PrimaryUserName": "backupaccount",
+ "PrimaryPassword": "abcd1234"
+ },
+ "RetentionPolicy": {
+ "RetentionPolicyType": "Basic",
+ "MinimumNumberOfBackups": 20,
+ "RetentionDuration": "P20D"
+ }
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateBackupPolicy-3.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateBackupPolicy-3.json
new file mode 100644
index 000000000000..9c6068a735f8
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateBackupPolicy-3.json
@@ -0,0 +1,34 @@
+{
+ "operationId": "CreateBackupPolicy",
+ "description": "This example shows how to create a backup policy which takes backup twice everyday at 9 AM and 5 PM UTC which shall get deleted after 3 months, with Dsms Azure blob store as the backup location.",
+ "parameters": {
+ "api-version": "6.4",
+ "BackupPolicyDescription": {
+ "Name": "SampleDsmsBackupPolicy",
+ "AutoRestoreOnDataLoss": false,
+ "MaxIncrementalBackups": 3,
+ "Schedule": {
+ "ScheduleKind": "TimeBased",
+ "ScheduleFrequencyType": "Daily",
+ "RunTimes": [
+ "0001-01-01T09:00:00Z",
+ "0001-01-01T17:00:00Z"
+ ]
+ },
+ "Storage": {
+ "StorageKind": "DsmsAzureBlobStore",
+ "FriendlyName": "DsmsAzure_storagesample",
+ "StorageCredentialsSourceLocation": "https://sample-dsms.dsms.core.winows.net/dsms/samplecredentiallocation/storageaccounts/samplestorageac/servicefabricbackup/samplebackup",
+ "ContainerName": "BackupContainer"
+ },
+ "RetentionPolicy": {
+ "RetentionPolicyType": "Basic",
+ "MinimumNumberOfBackups": 20,
+ "RetentionDuration": "P3M"
+ }
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateName-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateName-1.json
new file mode 100644
index 000000000000..39588770e334
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateName-1.json
@@ -0,0 +1,13 @@
+{
+ "operationId": "CreateName",
+ "description": "This example shows how to create a new Service Fabric name. The name can be created under an existing name that represents an appliction or a service or under a completely new name.",
+ "parameters": {
+ "api-version": "6.0",
+ "NameDescription": {
+ "Name": "fabric:/samples/CalculatorApp/CalculatorService/Name-1"
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateService-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateService-1.json
new file mode 100644
index 000000000000..a969c12cd8a9
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateService-1.json
@@ -0,0 +1,21 @@
+{
+ "operationId": "CreateService",
+ "description": "This example shows how to create a basic stateless Service Fabric service.",
+ "parameters": {
+ "applicationId": "test",
+ "api-version": "6.0",
+ "ServiceDescription": {
+ "ServiceKind": "Stateless",
+ "ApplicationName": "fabric:/test",
+ "ServiceName": "fabric:/test/test1",
+ "ServiceTypeName": "StatelessFrontendService",
+ "PartitionDescription": {
+ "PartitionScheme": "Singleton"
+ },
+ "InstanceCount": 4
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateService-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateService-2.json
new file mode 100644
index 000000000000..bc7ada6bb8be
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateService-2.json
@@ -0,0 +1,23 @@
+{
+ "operationId": "CreateService",
+ "description": "This example shows how to create a basic stateful Service Fabric service.",
+ "parameters": {
+ "applicationId": "test",
+ "api-version": "6.0",
+ "ServiceDescription": {
+ "ServiceKind": "Stateful",
+ "ApplicationName": "fabric:/test",
+ "ServiceName": "fabric:/test/test2",
+ "ServiceTypeName": "StatefulBackendService",
+ "PartitionDescription": {
+ "PartitionScheme": "Singleton"
+ },
+ "TargetReplicaSetSize": 3,
+ "MinReplicaSetSize": 2,
+ "HasPersistedState": false
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateService-3.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateService-3.json
new file mode 100644
index 000000000000..75eaaea023df
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateService-3.json
@@ -0,0 +1,47 @@
+{
+ "operationId": "CreateService",
+ "description": "This example shows how to create a stateless Service Fabric service with a dns name definied and auto scaling based on cpu usage.",
+ "parameters": {
+ "applicationId": "test",
+ "api-version": "6.0",
+ "ServiceDescription": {
+ "ServiceKind": "Stateless",
+ "ApplicationName": "fabric:/test",
+ "ServiceName": "fabric:/test/test1",
+ "ServiceTypeName": "StatelessFrontendService",
+ "InitializationData": [],
+ "PartitionDescription": {
+ "PartitionScheme": "Singleton"
+ },
+ "InstanceCount": 2,
+ "PlacementConstraints": "Color==Blue",
+ "CorrelationScheme": [],
+ "ServiceLoadMetrics": [],
+ "ServicePlacementPolicies": [],
+ "DefaultMoveCost": "Low",
+ "IsDefaultMoveCostSpecified": true,
+ "ServicePackageActivationMode": "ExclusiveProcess",
+ "ServiceDnsName": "test1.test",
+ "ScalingPolicies": [
+ {
+ "ScalingTrigger": {
+ "Kind": "AveragePartitionLoad",
+ "MetricName": "servicefabric:/_CpuCores",
+ "LowerLoadThreshold": "0.300000",
+ "UpperLoadThreshold": "0.800000",
+ "ScaleIntervalInSeconds": 600
+ },
+ "ScalingMechanism": {
+ "Kind": "PartitionInstanceCount",
+ "MinInstanceCount": 1,
+ "MaxInstanceCount": 6,
+ "ScaleIncrement": 2
+ }
+ }
+ ]
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateService-4.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateService-4.json
new file mode 100644
index 000000000000..2211ae300e4b
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/CreateService-4.json
@@ -0,0 +1,46 @@
+{
+ "operationId": "CreateService",
+ "description": "This example shows how to create a stateful Service Fabric service with named partitions and scaling enabled based on memory usage.",
+ "parameters": {
+ "applicationId": "test",
+ "api-version": "6.0",
+ "ServiceDescription": {
+ "ServiceKind": "Stateful",
+ "ApplicationName": "fabric:/test",
+ "ServiceName": "fabric:/test/test2",
+ "ServiceTypeName": "StatefulBackendService",
+ "InitializationData": [],
+ "PartitionDescription": {
+ "PartitionScheme": "Named",
+ "Count": 1,
+ "Names": [
+ "0"
+ ]
+ },
+ "TargetReplicaSetSize": 3,
+ "MinReplicaSetSize": 2,
+ "HasPersistedState": true,
+ "ServicePackageActivationMode": "ExclusiveProcess",
+ "ScalingPolicies": [
+ {
+ "ScalingTrigger": {
+ "Kind": "AverageServiceLoad",
+ "MetricName": "servicefabric:/_MemoryInMB",
+ "LowerLoadThreshold": "500",
+ "UpperLoadThreshold": "900",
+ "ScaleIntervalInSeconds": 600
+ },
+ "ScalingMechanism": {
+ "Kind": "AddRemoveIncrementalNamedPartition",
+ "MinPartitionCount": 1,
+ "MaxPartitionCount": 3,
+ "ScaleIncrement": 1
+ }
+ }
+ ]
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/DeleteBackupPolicy.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/DeleteBackupPolicy.json
new file mode 100644
index 000000000000..d4796b5ede08
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/DeleteBackupPolicy.json
@@ -0,0 +1,11 @@
+{
+ "operationId": "DeleteBackupPolicy",
+ "description": "This example shows how to delete an existing backup policy which is currently not associated with any backup entity.",
+ "parameters": {
+ "api-version": "6.4",
+ "backupPolicyName": "SampleBackupPolicy"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/DisableApplicationBackup.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/DisableApplicationBackup.json
new file mode 100644
index 000000000000..964fdaa8c3f3
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/DisableApplicationBackup.json
@@ -0,0 +1,14 @@
+{
+ "operationId": "DisableApplicationBackup",
+ "description": "This example shows how to disable periodic backup for a stateful application which was previously enabled.",
+ "parameters": {
+ "api-version": "6.4",
+ "applicationId": "CalcApp",
+ "DisableBackupDescription": {
+ "CleanBackup": true
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/DisablePartitionBackup.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/DisablePartitionBackup.json
new file mode 100644
index 000000000000..1f6cc6b32ed3
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/DisablePartitionBackup.json
@@ -0,0 +1,14 @@
+{
+ "operationId": "DisablePartitionBackup",
+ "description": "This example shows how to disable periodic backup for a stateful partition which was previously enabled.",
+ "parameters": {
+ "api-version": "6.4",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "DisableBackupDescription": {
+ "CleanBackup": false
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/DisableServiceBackup.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/DisableServiceBackup.json
new file mode 100644
index 000000000000..14ca9acf4e25
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/DisableServiceBackup.json
@@ -0,0 +1,14 @@
+{
+ "operationId": "DisableServiceBackup",
+ "description": "This example shows how to disable periodic backup for a stateful service which was previously enabled.",
+ "parameters": {
+ "api-version": "6.4",
+ "serviceId": "CalcApp/CalcService",
+ "DisableBackupDescription": {
+ "CleanBackup": true
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/EnableApplicationBackup.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/EnableApplicationBackup.json
new file mode 100644
index 000000000000..b0e24cd35f67
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/EnableApplicationBackup.json
@@ -0,0 +1,14 @@
+{
+ "operationId": "EnableApplicationBackup",
+ "description": "This example shows how to enable periodic backup for a stateful application.",
+ "parameters": {
+ "api-version": "6.4",
+ "applicationId": "CalcApp",
+ "EnableBackupDescription": {
+ "BackupPolicyName": "DailyAzureBackupPolicy"
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/EnablePartitionBackup.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/EnablePartitionBackup.json
new file mode 100644
index 000000000000..739bd06ce60e
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/EnablePartitionBackup.json
@@ -0,0 +1,14 @@
+{
+ "operationId": "EnablePartitionBackup",
+ "description": "This example shows how to enable periodic backup for a stateful partition.",
+ "parameters": {
+ "api-version": "6.4",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "EnableBackupDescription": {
+ "BackupPolicyName": "DailyAzureBackupPolicy"
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/EnableServiceBackup.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/EnableServiceBackup.json
new file mode 100644
index 000000000000..0fe38fd714bc
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/EnableServiceBackup.json
@@ -0,0 +1,14 @@
+{
+ "operationId": "EnableServiceBackup",
+ "description": "This example shows how to enable periodic backup for a stateful service.",
+ "parameters": {
+ "api-version": "6.4",
+ "serviceId": "CalcApp/CalcService",
+ "EnableBackupDescription": {
+ "BackupPolicyName": "DailyAzureBackupPolicy"
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetAllEntitiesBackedUpByPolicy-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetAllEntitiesBackedUpByPolicy-1.json
new file mode 100644
index 000000000000..9f4e37d7fdf9
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetAllEntitiesBackedUpByPolicy-1.json
@@ -0,0 +1,27 @@
+{
+ "operationId": "GetAllEntitiesBackedUpByPolicy",
+ "description": "This example shows how to get list of backup entities that are currently associated with a backup policy. The number of results in a page are limited to maximum of two using the MaxResult parameter.",
+ "parameters": {
+ "api-version": "6.4",
+ "backupPolicyName": "DailyAzureBackupPolicy",
+ "MaxResults": 2
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "fabric:/DemoApp",
+ "Items": [
+ {
+ "EntityKind": "Application",
+ "ApplicationName": "fabric:/CalcApp"
+ },
+ {
+ "EntityKind": "Application",
+ "ApplicationName": "fabric:/DemoApp"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetAllEntitiesBackedUpByPolicy-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetAllEntitiesBackedUpByPolicy-2.json
new file mode 100644
index 000000000000..18f3467fc9ed
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetAllEntitiesBackedUpByPolicy-2.json
@@ -0,0 +1,24 @@
+{
+ "operationId": "GetAllEntitiesBackedUpByPolicy",
+ "description": "This example shows how to get list of backup entities that are currently associated with a backup policy. This example uses the ContinuationToken parameter. The value of this parameter is provided from the previous query; in this case the example shown above. The response contains the remaining results and an empty ContinuationToken. The empty ContinuationToken indicates that additional results are not available.",
+ "parameters": {
+ "api-version": "6.4",
+ "backupPolicyName": "DailyAzureBackupPolicy",
+ "MaxResults": 2,
+ "ContinuationToken": "fabric:/DemoApp"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "EntityKind": "Service",
+ "ServiceName": "fabric:/VotingApp/VotingActorService"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupConfigurationInfo-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupConfigurationInfo-1.json
new file mode 100644
index 000000000000..3d396dbf082d
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupConfigurationInfo-1.json
@@ -0,0 +1,39 @@
+{
+ "operationId": "GetApplicationBackupConfigurationInfo",
+ "description": "This example shows how to get list of backup configuration for this application and entities (services and partitions) under this application. The number of results in a page are limited to maximum of two using the MaxResult parameter.",
+ "parameters": {
+ "api-version": "6.4",
+ "applicationId": "CalcApp",
+ "MaxResults": 2
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "fabric:/CalcApp/CalcService",
+ "Items": [
+ {
+ "Kind": "Application",
+ "PolicyName": "BackupPolicy1",
+ "PolicyInheritedFrom": "Application",
+ "ApplicationName": "fabric:/CalcApp",
+ "SuspensionInfo": {
+ "IsSuspended": false,
+ "SuspensionInheritedFrom": "Invalid"
+ }
+ },
+ {
+ "Kind": "Service",
+ "PolicyName": "BackupPolicy2",
+ "PolicyInheritedFrom": "Service",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "SuspensionInfo": {
+ "IsSuspended": false,
+ "SuspensionInheritedFrom": "Invalid"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupConfigurationInfo-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupConfigurationInfo-2.json
new file mode 100644
index 000000000000..1ca86bee1983
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupConfigurationInfo-2.json
@@ -0,0 +1,31 @@
+{
+ "operationId": "GetApplicationBackupConfigurationInfo",
+ "description": "This example shows how to get list of backup configuration for this application and entities (services and partitions) under this application. The number of results in a page are limited to maximum of two using the MaxResult parameter. This example uses the ContinuationToken parameter. The value of this parameter is provided from the previous query; in this case the example shown above. The response contains the remaining results and an empty ContinuationToken. The empty ContinuationToken indicates that additional results are not available.",
+ "parameters": {
+ "api-version": "6.4",
+ "applicationId": "CalcApp",
+ "MaxResults": 2,
+ "ContinuationToken": "fabric:/CalcApp/CalcService"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "Kind": "Partition",
+ "PolicyName": "BackupPolicy2",
+ "PolicyInheritedFrom": "Service",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "SuspensionInfo": {
+ "IsSuspended": true,
+ "SuspensionInheritedFrom": "Partition"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupList-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupList-1.json
new file mode 100644
index 000000000000..bc89f402c6bd
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupList-1.json
@@ -0,0 +1,108 @@
+{
+ "operationId": "GetApplicationBackupList",
+ "description": "This example shows how to get list of application backups within a time range.",
+ "parameters": {
+ "api-version": "6.4",
+ "applicationId": "CalcApp",
+ "StartDateTimeFilter": "2018-01-01T00:00:00Z",
+ "EndDateTimeFilter": "2018-01-01T23:59:59Z"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "BackupId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 09.00.55.zip",
+ "BackupType": "Full",
+ "ServiceManifestVersion": "1.0.0",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "261",
+ "CreationTimeUtc": "2018-01-01T09:00:55Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "7903dc2a-228d-44b0-b7c8-a13a6c9b46bd",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 17.01.02.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "446",
+ "CreationTimeUtc": "2018-01-01T17:01:02Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "BackupChainId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "ServiceManifestVersion": "1.0.0",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "81645ec7-d260-4c59-9533-8f129bde8e83"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\81645ec7-d260-4c59-9533-8f129bde8e83\\2018-01-01 09.01.02.zip",
+ "BackupType": "Full",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "161",
+ "CreationTimeUtc": "2018-01-01T09:01:02Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "d55a2d98-258b-4a34-8fe5-2063e81af9dc",
+ "BackupChainId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "ServiceManifestVersion": "1.0.0",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "81645ec7-d260-4c59-9533-8f129bde8e83"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\81645ec7-d260-4c59-9533-8f129bde8e83\\2018-01-01 17.00.34.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "246",
+ "CreationTimeUtc": "2018-01-01T17:00:34Z",
+ "FailureError": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupList-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupList-2.json
new file mode 100644
index 000000000000..adb11bc306b8
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupList-2.json
@@ -0,0 +1,63 @@
+{
+ "operationId": "GetApplicationBackupList",
+ "description": "This example shows how to get the latest backup for each partition within an application.",
+ "parameters": {
+ "api-version": "6.4",
+ "applicationId": "CalcApp",
+ "Latest": true
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "BackupId": "7903dc2a-228d-44b0-b7c8-a13a6c9b46bd",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "ServiceManifestVersion": "1.0.0",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 17.01.02.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "446",
+ "CreationTimeUtc": "2018-01-01T17:01:02Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "d55a2d98-258b-4a34-8fe5-2063e81af9dc",
+ "BackupChainId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "81645ec7-d260-4c59-9533-8f129bde8e83"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\81645ec7-d260-4c59-9533-8f129bde8e83\\2018-01-01 17.00.34.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "246",
+ "CreationTimeUtc": "2018-01-01T17:00:34Z",
+ "FailureError": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupList-3.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupList-3.json
new file mode 100644
index 000000000000..189ba7d18cbf
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupList-3.json
@@ -0,0 +1,63 @@
+{
+ "operationId": "GetApplicationBackupList",
+ "description": "This example shows how to get list of application backups. The number of results in a page are limited to maximum of two using the MaxResult parameter.",
+ "parameters": {
+ "api-version": "6.4",
+ "applicationId": "CalcApp",
+ "MaxResults": 2
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "fabric:/CalcApp/CalcService#1daae3f5-7fd6-42e9-b1ba-8c05f873994d#7903dc2a-228d-44b0-b7c8-a13a6c9b46bd",
+ "Items": [
+ {
+ "BackupId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 09.00.55.zip",
+ "BackupType": "Full",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "261",
+ "CreationTimeUtc": "2018-01-01T09:00:55Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "7903dc2a-228d-44b0-b7c8-a13a6c9b46bd",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 17.01.02.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "446",
+ "CreationTimeUtc": "2018-01-01T17:01:02Z",
+ "FailureError": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupList-4.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupList-4.json
new file mode 100644
index 000000000000..537af235a0e2
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationBackupList-4.json
@@ -0,0 +1,64 @@
+{
+ "operationId": "GetApplicationBackupList",
+ "description": "This example shows how to get list of application backups. The number of results in a page are limited to maximum of two using the MaxResult parameter. This example uses the ContinuationToken parameter. The value of this parameter is provided from the previous query; in this case the example shown above. The response contains the remaining results and an empty ContinuationToken. The empty ContinuationToken indicates that additional results are not available.",
+ "parameters": {
+ "api-version": "6.4",
+ "applicationId": "CalcApp",
+ "MaxResults": 2,
+ "ContinuationToken": "fabric:/CalcApp/CalcService#1daae3f5-7fd6-42e9-b1ba-8c05f873994d#7903dc2a-228d-44b0-b7c8-a13a6c9b46bd"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "BackupId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "BackupChainId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "81645ec7-d260-4c59-9533-8f129bde8e83"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\81645ec7-d260-4c59-9533-8f129bde8e83\\2018-01-01 09.01.02.zip",
+ "BackupType": "Full",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "161",
+ "CreationTimeUtc": "2018-01-01T09:01:02Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "d55a2d98-258b-4a34-8fe5-2063e81af9dc",
+ "BackupChainId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "81645ec7-d260-4c59-9533-8f129bde8e83"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\81645ec7-d260-4c59-9533-8f129bde8e83\\2018-01-01 17.00.34.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "246",
+ "CreationTimeUtc": "2018-01-01T17:00:34Z",
+ "FailureError": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationEventList.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationEventList.json
new file mode 100644
index 000000000000..32bca288ae42
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationEventList.json
@@ -0,0 +1,27 @@
+{
+ "operationId": "GetApplicationEventList",
+ "description": "This example shows how to get all application-related events during a certain time window.",
+ "parameters": {
+ "applicationId": "app1",
+ "api-version": "6.4",
+ "StartTimeUtc": "2018-04-03T18:00:00Z",
+ "EndTimeUtc": "2018-04-04T18:00:00Z"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "Kind": "ApplicationCreated",
+ "ApplicationTypeName": "App1Type",
+ "ApplicationTypeVersion": "1.0.1",
+ "ApplicationDefinitionKind": "ServiceFabricApplicationDescription",
+ "ApplicationId": "app1",
+ "EventInstanceId": "8a7a0c42-67ca-4cd3-9160-edcdb822db10",
+ "TimeStamp": "2018-04-03T20:21:23.5774199Z",
+ "HasCorrelatedEvents": false
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationInfoByName-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationInfoByName-1.json
new file mode 100644
index 000000000000..fb15937b1e84
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationInfoByName-1.json
@@ -0,0 +1,33 @@
+{
+ "operationId": "GetApplicationInfo",
+ "description": "This example shows how to get information about an application using it's identifier. If the application is found, information about it is returned with 200 status code. If the application is not found, empty content is returned with 204 status code.",
+ "parameters": {
+ "api-version": "6.0",
+ "applicationId": "samples~CalculatorApp"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "Id": "samples~CalculatorApp",
+ "Name": "fabric:/samples/CalculatorApp",
+ "TypeName": "CalculatorApp",
+ "TypeVersion": "1.0",
+ "Status": "Ready",
+ "Parameters": [
+ {
+ "Key": "CalculatorAppParameter1",
+ "Value": "314"
+ },
+ {
+ "Key": "CalculatorAppParameter2",
+ "Value": "271"
+ }
+ ],
+ "HealthState": "Ok",
+ "ApplicationDefinitionKind": "ServiceFabricApplicationDescription"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationInfoList-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationInfoList-1.json
new file mode 100644
index 000000000000..2ca46b64e3a4
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationInfoList-1.json
@@ -0,0 +1,38 @@
+{
+ "operationId": "GetApplicationInfoList",
+ "description": "This example shows how to get information about applications on the cluster. The number of results in a page are limited to maximum of two using the MaxResult parameter.",
+ "parameters": {
+ "api-version": "6.1",
+ "MaxResults": 2
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "fabric:/samples/PQueueApp1",
+ "Items": [
+ {
+ "Id": "samples~CalculatorApp",
+ "Name": "fabric:/samples/CalculatorApp",
+ "TypeName": "CalculatorApp",
+ "TypeVersion": "1.0",
+ "Status": "Ready",
+ "Parameters": [],
+ "HealthState": "Ok",
+ "ApplicationDefinitionKind": "ServiceFabricApplicationDescription"
+ },
+ {
+ "Id": "samples~PQueueApp1",
+ "Name": "fabric:/samples/PQueueApp1",
+ "TypeName": "PersistentQueueApp",
+ "TypeVersion": "1.0",
+ "Status": "Ready",
+ "Parameters": [],
+ "HealthState": "Ok",
+ "ApplicationDefinitionKind": "ServiceFabricApplicationDescription"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationInfoList-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationInfoList-2.json
new file mode 100644
index 000000000000..c0755d26e14b
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationInfoList-2.json
@@ -0,0 +1,29 @@
+{
+ "operationId": "GetApplicationInfoList",
+ "description": "This example shows how to page through the information about applications on the cluster using the ContinuationToken parameter. The value of this parameter is provided from the previous query, in this case the example shown above. The response contains the remaining one result and an empty ContinuationToken. The empty ContinuationToken indicates that additional results are not available.",
+ "parameters": {
+ "api-version": "6.1",
+ "MaxResults": 2,
+ "ContinuationToken": "fabric:/samples/PQueueApp1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "Id": "samples~VQueueApp1",
+ "Name": "fabric:/samples/VQueueApp1",
+ "TypeName": "VolatileQueueApp",
+ "TypeVersion": "1.0",
+ "Status": "Ready",
+ "Parameters": [],
+ "HealthState": "Ok",
+ "ApplicationDefinitionKind": "ServiceFabricApplicationDescription"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationTypeInfoList-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationTypeInfoList-1.json
new file mode 100644
index 000000000000..bcb6a4e5e3b7
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationTypeInfoList-1.json
@@ -0,0 +1,85 @@
+{
+ "operationId": "GetApplicationTypeInfoList",
+ "description": "This example shows how to get information about application types that are provisioned or being provisioned in the cluster. The number of results in a page are limited to maximum of five using MaxResult parameter.",
+ "parameters": {
+ "api-version": "6.0",
+ "MaxResults": 5
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "PersistentQueueApp+2.0",
+ "Items": [
+ {
+ "Name": "CalculatorApp",
+ "Version": "1.0",
+ "DefaultParameterList": [
+ {
+ "Key": "ServiceInstanceCount",
+ "Value": "3"
+ }
+ ],
+ "Status": "Available"
+ },
+ {
+ "Name": "CalculatorApp",
+ "Version": "2.0",
+ "DefaultParameterList": [
+ {
+ "Key": "ServiceInstanceCount",
+ "Value": "3"
+ }
+ ],
+ "Status": "Available"
+ },
+ {
+ "Name": "GatewayApp",
+ "Version": "1.0",
+ "DefaultParameterList": [
+ {
+ "Key": "GatewayPort",
+ "Value": "8505"
+ },
+ {
+ "Key": "ServiceInstanceCount",
+ "Value": "1000"
+ }
+ ],
+ "Status": "Available"
+ },
+ {
+ "Name": "PersistentQueueApp",
+ "Version": "1.0",
+ "DefaultParameterList": [
+ {
+ "Key": "MinReplicaSetSize",
+ "Value": "2"
+ },
+ {
+ "Key": "TargetReplicaSetSize",
+ "Value": "3"
+ }
+ ],
+ "Status": "Available"
+ },
+ {
+ "Name": "PersistentQueueApp",
+ "Version": "2.0",
+ "DefaultParameterList": [
+ {
+ "Key": "MinReplicaSetSize",
+ "Value": "2"
+ },
+ {
+ "Key": "TargetReplicaSetSize",
+ "Value": "3"
+ }
+ ],
+ "Status": "Available"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationTypeInfoList-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationTypeInfoList-2.json
new file mode 100644
index 000000000000..a7c38cdedbe7
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationTypeInfoList-2.json
@@ -0,0 +1,49 @@
+{
+ "operationId": "GetApplicationTypeInfoList",
+ "description": "This example shows how to page through the information about application types that are provisioned or being provisioned in the cluster using ContinuationToken parameter. The value of this parameter is provided from the previous query, in this case the example shown above. The response contains the remaining two results and an empty ContinuationToken. The empty ContinuationToken indicates that additional results are not available.",
+ "parameters": {
+ "api-version": "6.0",
+ "MaxResults": 5,
+ "ContinuationToken": "PersistentQueueApp+2.0"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "Name": "VolatileQueueApp",
+ "Version": "1.0",
+ "DefaultParameterList": [
+ {
+ "Key": "MinReplicaSetSize",
+ "Value": "2"
+ },
+ {
+ "Key": "TargetReplicaSetSize",
+ "Value": "3"
+ }
+ ],
+ "Status": "Available"
+ },
+ {
+ "Name": "VolatileQueueApp",
+ "Version": "2.0",
+ "DefaultParameterList": [
+ {
+ "Key": "MinReplicaSetSize",
+ "Value": "2"
+ },
+ {
+ "Key": "TargetReplicaSetSize",
+ "Value": "3"
+ }
+ ],
+ "Status": "Available"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationTypeInfoList-3.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationTypeInfoList-3.json
new file mode 100644
index 000000000000..473565e56c6d
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationTypeInfoList-3.json
@@ -0,0 +1,60 @@
+{
+ "operationId": "GetApplicationTypeInfoList",
+ "description": "This example shows how to exclude application parameter in the result when getting the information about application types that are provisioned or being provisioned in the cluster.",
+ "parameters": {
+ "api-version": "6.0",
+ "ExcludeApplicationParameters": true
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "Name": "CalculatorApp",
+ "Version": "1.0",
+ "DefaultParameterList": [],
+ "Status": "Available"
+ },
+ {
+ "Name": "CalculatorApp",
+ "Version": "2.0",
+ "DefaultParameterList": [],
+ "Status": "Available"
+ },
+ {
+ "Name": "GatewayApp",
+ "Version": "1.0",
+ "DefaultParameterList": [],
+ "Status": "Available"
+ },
+ {
+ "Name": "PersistentQueueApp",
+ "Version": "1.0",
+ "DefaultParameterList": [],
+ "Status": "Available"
+ },
+ {
+ "Name": "PersistentQueueApp",
+ "Version": "2.0",
+ "DefaultParameterList": [],
+ "Status": "Available"
+ },
+ {
+ "Name": "VolatileQueueApp",
+ "Version": "1.0",
+ "DefaultParameterList": [],
+ "Status": "Available"
+ },
+ {
+ "Name": "VolatileQueueApp",
+ "Version": "2.0",
+ "DefaultParameterList": [],
+ "Status": "Available"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationsEventList.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationsEventList.json
new file mode 100644
index 000000000000..fa65ec159120
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetApplicationsEventList.json
@@ -0,0 +1,36 @@
+{
+ "operationId": "GetApplicationsEventList",
+ "description": "This example shows how to get all applications-related events during a certain time window.",
+ "parameters": {
+ "api-version": "6.4",
+ "StartTimeUtc": "2018-04-03T18:00:00Z",
+ "EndTimeUtc": "2018-04-04T18:00:00Z"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "Kind": "ApplicationCreated",
+ "ApplicationTypeName": "App1Type",
+ "ApplicationTypeVersion": "1.0.1",
+ "ApplicationDefinitionKind": "ServiceFabricApplicationDescription",
+ "ApplicationId": "app1",
+ "EventInstanceId": "8a7a0c42-67ca-4cd3-9160-edcdb822db10",
+ "TimeStamp": "2018-04-03T20:21:23.5774199Z",
+ "HasCorrelatedEvents": false
+ },
+ {
+ "Kind": "ApplicationCreated",
+ "ApplicationTypeName": "App2Type",
+ "ApplicationTypeVersion": "4.0.1",
+ "ApplicationDefinitionKind": "ServiceFabricApplicationDescription",
+ "ApplicationId": "app2",
+ "EventInstanceId": "d50574bc-6a31-4945-8275-7639bec7a0b3",
+ "TimeStamp": "2018-04-03T20:21:59.74842Z",
+ "HasCorrelatedEvents": false
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupPolicyByName.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupPolicyByName.json
new file mode 100644
index 000000000000..411b836109b2
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupPolicyByName.json
@@ -0,0 +1,36 @@
+{
+ "operationId": "GetBackupPolicyByName",
+ "description": "This example shows how to query a backup policy by name.",
+ "parameters": {
+ "api-version": "6.4",
+ "backupPolicyName": "DailyAzureBackupPolicy"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "Name": "DailyAzureBackupPolicy",
+ "AutoRestoreOnDataLoss": false,
+ "MaxIncrementalBackups": 3,
+ "Schedule": {
+ "ScheduleKind": "TimeBased",
+ "ScheduleFrequencyType": "Daily",
+ "RunTimes": [
+ "0001-01-01T09:00:00Z",
+ "0001-01-01T17:00:00Z"
+ ]
+ },
+ "Storage": {
+ "StorageKind": "AzureBlobStore",
+ "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=",
+ "ContainerName": "BackupContainer"
+ },
+ "RetentionPolicy": {
+ "RetentionPolicyType": "Basic",
+ "MinimumNumberOfBackups": 20,
+ "RetentionDuration": "P20D"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupPolicyList-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupPolicyList-1.json
new file mode 100644
index 000000000000..c3ad42774736
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupPolicyList-1.json
@@ -0,0 +1,87 @@
+{
+ "operationId": "GetBackupPolicyList",
+ "description": "This example shows how to get list of backup policies. The number of results in a page are limited to maximum of two using the MaxResult parameter.",
+ "parameters": {
+ "api-version": "6.4",
+ "MaxResults": 3
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "FileShare10MinBackupPolicy",
+ "Items": [
+ {
+ "Name": "DailyAzureBackupPolicy",
+ "AutoRestoreOnDataLoss": false,
+ "MaxIncrementalBackups": 3,
+ "Schedule": {
+ "ScheduleKind": "TimeBased",
+ "ScheduleFrequencyType": "Daily",
+ "RunTimes": [
+ "0001-01-01T09:00:00Z",
+ "0001-01-01T17:00:00Z"
+ ]
+ },
+ "Storage": {
+ "StorageKind": "AzureBlobStore",
+ "FriendlyName": "Azure_storagesample",
+ "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=",
+ "ContainerName": "BackupContainer"
+ },
+ "RetentionPolicy": {
+ "RetentionPolicyType": "Basic",
+ "MinimumNumberOfBackups": 30,
+ "RetentionDuration": "P29D"
+ }
+ },
+ {
+ "Name": "SampleDsmsBackupPolicy",
+ "AutoRestoreOnDataLoss": false,
+ "MaxIncrementalBackups": 3,
+ "Schedule": {
+ "ScheduleKind": "TimeBased",
+ "ScheduleFrequencyType": "Daily",
+ "RunTimes": [
+ "0001-01-01T09:00:00Z",
+ "0001-01-01T17:00:00Z"
+ ]
+ },
+ "Storage": {
+ "StorageKind": "DsmsAzureBlobStore",
+ "FriendlyName": "DsmsAzure_storagesample",
+ "StorageCredentialsSourceLocation": "https://sample-dsms.dsms.core.winows.net/dsms/samplecredentiallocation/storageaccounts/samplestorageac/servicefabricbackup/samplebackup",
+ "ContainerName": "BackupContainer"
+ },
+ "RetentionPolicy": {
+ "RetentionPolicyType": "Basic",
+ "MinimumNumberOfBackups": 10,
+ "RetentionDuration": "P3M"
+ }
+ },
+ {
+ "Name": "FileShare10MinBackupPolicy",
+ "AutoRestoreOnDataLoss": false,
+ "MaxIncrementalBackups": 3,
+ "Schedule": {
+ "ScheduleKind": "FrequencyBased",
+ "Interval": "PT10M"
+ },
+ "Storage": {
+ "StorageKind": "FileShare",
+ "FriendlyName": "FileShare_myshare",
+ "Path": "\\\\myshare\\backupshare",
+ "PrimaryUserName": "backupaccount",
+ "PrimaryPassword": "****"
+ },
+ "RetentionPolicy": {
+ "RetentionPolicyType": "Basic",
+ "MinimumNumberOfBackups": 20,
+ "RetentionDuration": "P20D"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupPolicyList-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupPolicyList-2.json
new file mode 100644
index 000000000000..f5f941d6eda8
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupPolicyList-2.json
@@ -0,0 +1,42 @@
+{
+ "operationId": "GetBackupPolicyList",
+ "description": "This example shows how to get list of backup policies. The number of results in a page are limited to maximum of two using the MaxResult parameter. This example uses the ContinuationToken parameter. The value of this parameter is provided from the previous query; in this case the example shown above. The response contains the remaining results and an empty ContinuationToken. The empty ContinuationToken indicates that additional results are not available.",
+ "parameters": {
+ "api-version": "6.4",
+ "MaxResults": 3,
+ "ContinuationToken": "FileShare10MinBackupPolicy"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "AutoRestoreOnDataLoss": false,
+ "Name": "SampleBackupPolicy",
+ "MaxIncrementalBackups": 5,
+ "Schedule": {
+ "ScheduleKind": "FrequencyBased",
+ "Interval": "PT4H5M"
+ },
+ "Storage": {
+ "Path": "\\\\myshare\\BackupStore",
+ "PrimaryUserName": "myuser1",
+ "PrimaryPassword": "****",
+ "SecondaryUserName": "myuser2",
+ "SecondaryPassword": "****",
+ "StorageKind": "FileShare",
+ "FriendlyName": ""
+ },
+ "RetentionPolicy": {
+ "RetentionPolicyType": "Basic",
+ "MinimumNumberOfBackups": 0,
+ "RetentionDuration": "P20D"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupsFromBackupLocation-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupsFromBackupLocation-1.json
new file mode 100644
index 000000000000..6925de02aeb5
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupsFromBackupLocation-1.json
@@ -0,0 +1,73 @@
+{
+ "operationId": "GetBackupsFromBackupLocation",
+ "description": "This example shows how to get list of application backups from a specified backup location. The number of results in a page are limited to maximum of two using the MaxResult parameter.",
+ "parameters": {
+ "api-version": "6.4",
+ "MaxResults": 2,
+ "GetBackupByStorageQueryDescription": {
+ "Storage": {
+ "StorageKind": "AzureBlobStore",
+ "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=",
+ "ContainerName": "BackupContainer"
+ },
+ "BackupEntity": {
+ "EntityKind": "Application",
+ "ApplicationName": "fabric:/CalcApp"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "fabric:/CalcApp/CalcService#1daae3f5-7fd6-42e9-b1ba-8c05f873994d#7903dc2a-228d-44b0-b7c8-a13a6c9b46bd",
+ "Items": [
+ {
+ "BackupId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 09.00.55.zip",
+ "BackupType": "Full",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "261",
+ "CreationTimeUtc": "2018-01-01T09:00:55Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "7903dc2a-228d-44b0-b7c8-a13a6c9b46bd",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 17.01.02.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "446",
+ "CreationTimeUtc": "2018-01-01T17:01:02Z",
+ "FailureError": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupsFromBackupLocation-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupsFromBackupLocation-2.json
new file mode 100644
index 000000000000..190f318797ab
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetBackupsFromBackupLocation-2.json
@@ -0,0 +1,74 @@
+{
+ "operationId": "GetBackupsFromBackupLocation",
+ "description": "This example shows how to get list of application backups. The number of results in a page are limited to maximum of two using the MaxResult parameter. This example uses the ContinuationToken parameter. The value of this parameter is provided from the previous query; in this case the example shown above. The response contains the remaining results and an empty ContinuationToken. The empty ContinuationToken indicates that additional results are not available.",
+ "parameters": {
+ "api-version": "6.4",
+ "MaxResults": 2,
+ "GetBackupByStorageQueryDescription": {
+ "Storage": {
+ "StorageKind": "AzureBlobStore",
+ "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=",
+ "ContainerName": "BackupContainer"
+ },
+ "BackupEntity": {
+ "EntityKind": "Application",
+ "ApplicationName": "fabric:/CalcApp"
+ }
+ },
+ "ContinuationToken": "fabric:/CalcApp/CalcService#1daae3f5-7fd6-42e9-b1ba-8c05f873994d#7903dc2a-228d-44b0-b7c8-a13a6c9b46bd"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "BackupId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "BackupChainId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "81645ec7-d260-4c59-9533-8f129bde8e83"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\81645ec7-d260-4c59-9533-8f129bde8e83\\2018-01-01 09.01.02.zip",
+ "BackupType": "Full",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "161",
+ "CreationTimeUtc": "2018-01-01T09:01:02Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "d55a2d98-258b-4a34-8fe5-2063e81af9dc",
+ "BackupChainId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "81645ec7-d260-4c59-9533-8f129bde8e83"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\81645ec7-d260-4c59-9533-8f129bde8e83\\2018-01-01 17.00.34.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "246",
+ "CreationTimeUtc": "2018-01-01T17:00:34Z",
+ "FailureError": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetChaosEvents.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetChaosEvents.json
new file mode 100644
index 000000000000..4e5d7bb0b4e3
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetChaosEvents.json
@@ -0,0 +1,62 @@
+{
+ "operationId": "GetChaosEvents",
+ "description": "This example shows how to get Chaos events in a single response message without the need for paging through ContinuationToken parameter.",
+ "parameters": {
+ "api-version": "6.2",
+ "StartTimeUtc": "0",
+ "EndTimeUtc": "3155378975999999999"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "History": [
+ {
+ "ChaosEvent": {
+ "Kind": "Started",
+ "TimeStampUtc": "2017-04-14T04:27:19.049Z",
+ "ChaosParameters": {
+ "MaxClusterStabilizationTimeoutInSeconds": 30,
+ "MaxConcurrentFaults": 3,
+ "WaitTimeBetweenIterationsInSeconds": 10,
+ "WaitTimeBetweenFaultsInSeconds": 1,
+ "TimeToRunInSeconds": "3600",
+ "EnableMoveReplicaFaults": true,
+ "ClusterHealthPolicy": {
+ "ConsiderWarningAsError": true,
+ "MaxPercentUnhealthyNodes": 0,
+ "MaxPercentUnhealthyApplications": 10,
+ "ApplicationTypeHealthPolicyMap": [
+ {
+ "Key": "myapp",
+ "Value": 3
+ }
+ ]
+ },
+ "Context": {
+ "Map": {
+ "k1": "v1",
+ "k2": "v2",
+ "k3": "v5"
+ }
+ }
+ }
+ }
+ },
+ {
+ "ChaosEvent": {
+ "Kind": "ExecutingFaults",
+ "TimeStampUtc": "2017-04-14T04:27:20.667Z",
+ "Faults": [
+ "ActionType: RestartReplica, ServiceUri: fabric:/TestApp1/PersistServ_6R_1, PartitionId: 6a91b09a-bd76-45da-afaa-ed0fd9bfe7d2, ReplicaId: 131366172775684622",
+ "ActionType: CodePackageRestart, NodeName: N0050, ApplicationName: fabric:/TestApp1, ServiceManifestName: SP1, ServiceManifestName: , CodePackageName: CP1.",
+ "ActionType: RestartReplica, ServiceUri: fabric:/TestApp1/PersistServ_6R_3, PartitionId: baa3a51e-5c42-435e-89d3-6e97b2164661, ReplicaId: 131366172988968762"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetClusterEventList.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetClusterEventList.json
new file mode 100644
index 000000000000..3a122bb8aec0
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetClusterEventList.json
@@ -0,0 +1,55 @@
+{
+ "operationId": "GetClusterEventList",
+ "description": "This example shows how to get all cluster-related events during a certain time window.",
+ "parameters": {
+ "api-version": "6.4",
+ "StartTimeUtc": "2018-04-03T18:00:00Z",
+ "EndTimeUtc": "2018-04-04T18:00:00Z"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "Kind": "ClusterUpgradeStarted",
+ "CurrentClusterVersion": "0.0.0.0:",
+ "TargetClusterVersion": "6.2:1.0",
+ "UpgradeType": "Rolling",
+ "RollingUpgradeMode": "UnmonitoredAuto",
+ "FailureAction": "Manual",
+ "EventInstanceId": "090add3c-8f56-4d35-8d57-a855745b6064",
+ "TimeStamp": "2018-04-03T20:18:59.4313064Z",
+ "HasCorrelatedEvents": false
+ },
+ {
+ "Kind": "ClusterUpgradeDomainCompleted",
+ "TargetClusterVersion": "6.2:1.0",
+ "UpgradeState": "RollingForward",
+ "UpgradeDomains": "(0 1 2)",
+ "UpgradeDomainElapsedTimeInMs": 78.5288,
+ "EventInstanceId": "090add3c-8f56-4d35-8d57-a855745b6064",
+ "TimeStamp": "2018-04-03T20:19:59.5729953Z",
+ "HasCorrelatedEvents": false
+ },
+ {
+ "Kind": "ClusterUpgradeDomainCompleted",
+ "TargetClusterVersion": "6.2:1.0",
+ "UpgradeState": "RollingForward",
+ "UpgradeDomains": "(3 4)",
+ "UpgradeDomainElapsedTimeInMs": 0.0,
+ "EventInstanceId": "090add3c-8f56-4d35-8d57-a855745b6064",
+ "TimeStamp": "2018-04-03T20:20:59.6271949Z",
+ "HasCorrelatedEvents": false
+ },
+ {
+ "Kind": "ClusterUpgradeCompleted",
+ "TargetClusterVersion": "6.2:1.0",
+ "OverallUpgradeElapsedTimeInMs": 120196.5212,
+ "EventInstanceId": "090add3c-8f56-4d35-8d57-a855745b6064",
+ "TimeStamp": "2018-04-03T20:20:59.8134457Z",
+ "HasCorrelatedEvents": false
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetClusterVersion-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetClusterVersion-1.json
new file mode 100644
index 000000000000..fd3b6fbf55b8
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetClusterVersion-1.json
@@ -0,0 +1,15 @@
+{
+ "operationId": "GetClusterVersion",
+ "description": "This example retrieves the current (or lowest version during upgrade) cluster version.",
+ "parameters": {
+ "api-version": "6.4"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "Version": "6.4.514.9494"
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetContainerLogsDeployedOnNode-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetContainerLogsDeployedOnNode-1.json
new file mode 100644
index 000000000000..1be29fb8e6ef
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetContainerLogsDeployedOnNode-1.json
@@ -0,0 +1,19 @@
+{
+ "operationId": "GetContainerLogsDeployedOnNode",
+ "description": "This example shows how to get container logs for container deployed on a Service Fabric node for the given code package.",
+ "parameters": {
+ "api-version": "6.2",
+ "nodeName": "_Node_0",
+ "applicationId": "SimpleHttpServerApp",
+ "ServiceManifestName": "SimpleHttpServerSvcPkg",
+ "CodePackageName": "Code"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "Content": "HTTP Server started listening on port 8080\r\n"
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetContainerLogsDeployedOnNode-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetContainerLogsDeployedOnNode-2.json
new file mode 100644
index 000000000000..9f1025363561
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetContainerLogsDeployedOnNode-2.json
@@ -0,0 +1,20 @@
+{
+ "operationId": "GetContainerLogsDeployedOnNode",
+ "description": "This example shows how to get last 10 lines of container logs for container deployed on a Service Fabric node for the given code package.",
+ "parameters": {
+ "api-version": "6.2",
+ "nodeName": "_Node_0",
+ "applicationId": "SimpleHttpServerApp",
+ "ServiceManifestName": "SimpleHttpServerSvcPkg",
+ "CodePackageName": "Code",
+ "Tail": "10"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "Content": "UTC Time Now: 04/02/2018 22:06:31\r\nUTC Time Now: 04/02/2018 22:06:32\r\nUTC Time Now: 04/02/2018 22:06:33\r\nUTC Time Now: 04/02/2018 22:06:344\r\nUTC Time Now: 04/02/2018 22:06:35\r\nUTC Time Now: 04/02/2018 22:06:36\r\nUTC Time Now: 04/02/2018 22:06:37\r\nUTC Time Now: 04/02/2018 22:06:38\r\nUTC Time Now: 04/02/2018 22:06:39\r\nUTC Time Now: 04/02/2018 22:06:40\r\n"
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetContainerLogsDeployedOnNode-3.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetContainerLogsDeployedOnNode-3.json
new file mode 100644
index 000000000000..2ca6cad4f774
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetContainerLogsDeployedOnNode-3.json
@@ -0,0 +1,20 @@
+{
+ "operationId": "GetContainerLogsDeployedOnNode",
+ "description": "This example shows how to get container logs of previous dead container on a Service Fabric node for the given code package.",
+ "parameters": {
+ "api-version": "6.2",
+ "nodeName": "_Node_0",
+ "applicationId": "SimpleHttpServerApp",
+ "ServiceManifestName": "SimpleHttpServerSvcPkg",
+ "CodePackageName": "Code",
+ "Previous": true
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "Content": "Exception encountered: System.Net.Http.HttpRequestException: Response status code does not indicate success: 500 (Internal Server Error).\r\n\tat System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()\r\n"
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetCorrelatedEventList.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetCorrelatedEventList.json
new file mode 100644
index 000000000000..7e271b230d90
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetCorrelatedEventList.json
@@ -0,0 +1,31 @@
+{
+ "operationId": "GetCorrelatedEventList",
+ "description": "This example shows how to get all correlated events for a given eventInstanceId.",
+ "parameters": {
+ "eventInstanceId": "e00fa5b7-f747-40dd-9e09-f5a031e96de4",
+ "api-version": "6.4"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "Kind": "PartitionPrimaryMoveAnalysis",
+ "WhenMoveCompleted": "2018-04-03T20:06:55.966073Z",
+ "PreviousNode": "node3(b9d52c016a15a8f57673d3b8041e2d35)",
+ "CurrentNode": "node1(cf68563e16a44f808e86197a9cf83de5)",
+ "MoveReason": "ApplicationHostDown",
+ "RelevantTraces": "",
+ "PartitionId": "f2a6a893-39be-4c7d-b07f-72bc2d36de89",
+ "EventInstanceId": "59dde2bc-a833-412e-a56d-8f6ada0c7963",
+ "TimeStamp": "2018-04-03T20:07:55.966073Z",
+ "HasCorrelatedEvents": true,
+ "Metadata": {
+ "Delay": "00:00:20",
+ "Duration": "00:01:59"
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDataLossProgress-Running.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDataLossProgress-Running.json
new file mode 100644
index 000000000000..90590fff4f2f
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDataLossProgress-Running.json
@@ -0,0 +1,18 @@
+{
+ "operationId": "GetDataLossProgress",
+ "description": "This shows an example of output when a data loss operation is in a Running State. If the State has a value of Running, only the State field will have a value.",
+ "parameters": {
+ "serviceId": "fabric:/myapp/myservice",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "OperationId": "7216486c-1ee9-4b00-99b2-92b26fcb07f5",
+ "api-version": "6.0"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "State": "Running"
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDataLossProgress.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDataLossProgress.json
new file mode 100644
index 000000000000..89d341f05c26
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDataLossProgress.json
@@ -0,0 +1,25 @@
+{
+ "operationId": "GetDataLossProgress",
+ "description": "This shows an example of possible output when GetDataLossProgress has reached a State of Completed. If the State has a value of Running, only the State field will have a value.",
+ "parameters": {
+ "serviceId": "fabric:/myapp/myservice",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "OperationId": "7216486c-1ee9-4b00-99b2-92b26fcb07f5",
+ "api-version": "6.0"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "State": "Completed",
+ "InvokeDataLossResult": {
+ "ErrorCode": 0,
+ "SelectedPartition": {
+ "ServiceName": "fabric:/myapp/myservice",
+ "PartitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDeployedApplicationInfoByName-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDeployedApplicationInfoByName-1.json
new file mode 100644
index 000000000000..8552057cbe2f
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDeployedApplicationInfoByName-1.json
@@ -0,0 +1,26 @@
+{
+ "operationId": "GetDeployedApplicationInfoList",
+ "description": "This example shows how to get information about an application deployed on a specified node by using an application identifier. If the application is found it's information is returned with 200 status code. An empty response with status code 204 is returned, if the specified application is not deployed on the node.",
+ "parameters": {
+ "api-version": "6.1",
+ "nodeName": "_Node_0",
+ "applicationId": "samples~CalculatorApp",
+ "IncludeHealthState": true
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "Id": "samples~CalculatorApp",
+ "Name": "fabric:/samples/CalculatorApp",
+ "TypeName": "CalculatorApp",
+ "Status": "Active",
+ "WorkDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_1\\CalculatorApp_App0\\work",
+ "LogDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_1\\CalculatorApp_App0\\log",
+ "TempDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_1\\CalculatorApp_App0\\temp",
+ "HealthState": "Ok"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDeployedApplicationInfoList-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDeployedApplicationInfoList-1.json
new file mode 100644
index 000000000000..c19d4e2a841c
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDeployedApplicationInfoList-1.json
@@ -0,0 +1,39 @@
+{
+ "operationId": "GetDeployedApplicationInfoList",
+ "description": "This example shows how to specify the number of applications returned by the query when getting information about applications deployed on a specific node. The number of results in a page are limited to maximum of 2 using the MaxResult parameter. Health state is not requested in this example, so the returned health state will be Unknown.",
+ "parameters": {
+ "api-version": "6.1",
+ "nodeName": "_Node_0",
+ "MaxResults": 2
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "fabric:/samples/PQueueApp1",
+ "Items": [
+ {
+ "Id": "samples~CalculatorApp",
+ "Name": "fabric:/samples/CalculatorApp",
+ "TypeName": "CalculatorApp",
+ "Status": "Active",
+ "WorkDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\CalculatorApp_App0\\work",
+ "LogDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\CalculatorApp_App0\\log",
+ "TempDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\CalculatorApp_App0\\temp",
+ "HealthState": "Unknown"
+ },
+ {
+ "Id": "samples~PQueueApp1",
+ "Name": "fabric:/samples/PQueueApp1",
+ "TypeName": "PersistentQueueApp",
+ "Status": "Active",
+ "WorkDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\PersistentQueueApp_App1\\work",
+ "LogDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\PersistentQueueApp_App1\\log",
+ "TempDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\PersistentQueueApp_App1\\temp",
+ "HealthState": "Unknown"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDeployedApplicationInfoList-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDeployedApplicationInfoList-2.json
new file mode 100644
index 000000000000..7f6320e69e6d
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDeployedApplicationInfoList-2.json
@@ -0,0 +1,29 @@
+{
+ "operationId": "GetDeployedApplicationInfoListByName",
+ "description": "This example demonstrates the paging functionality available when getting information about applications deployed on a specific node. This example uses the ContinuationToken parameter. The value of this parameter is provided from the previous query; in this case the example shown above. The response contains the remaining results and an empty ContinuationToken. The empty ContinuationToken indicates that additional results are not available.",
+ "parameters": {
+ "api-version": "6.1",
+ "nodeName": "_Node_0",
+ "ContinuationToken": "fabric:/samples/PQueueApp1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "Id": "samples~VQueueApp1",
+ "Name": "fabric:/samples/VQueueApp1",
+ "TypeName": "VolatileQueueApp",
+ "Status": "Active",
+ "WorkDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\VolatileQueueApp_App2\\work",
+ "LogDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\VolatileQueueApp_App2\\log",
+ "TempDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\VolatileQueueApp_App2\\temp",
+ "HealthState": "Unknown"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDeployedApplicationInfoList-3.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDeployedApplicationInfoList-3.json
new file mode 100644
index 000000000000..01cad866d3c1
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetDeployedApplicationInfoList-3.json
@@ -0,0 +1,49 @@
+{
+ "operationId": "GetDeployedApplicationInfoList",
+ "description": "This example shows how to include the health state of each deployed application when getting information about applications deployed on a specific node.",
+ "parameters": {
+ "api-version": "6.1",
+ "nodeName": "_Node_0",
+ "IncludeHealthState": true
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "Id": "samples~CalculatorApp",
+ "Name": "fabric:/samples/CalculatorApp",
+ "TypeName": "CalculatorApp",
+ "Status": "Active",
+ "WorkDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\CalculatorApp_App0\\work",
+ "LogDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\CalculatorApp_App0\\log",
+ "TempDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\CalculatorApp_App0\\temp",
+ "HealthState": "Ok"
+ },
+ {
+ "Id": "samples~PQueueApp1",
+ "Name": "fabric:/samples/PQueueApp1",
+ "TypeName": "PersistentQueueApp",
+ "Status": "Active",
+ "WorkDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\PersistentQueueApp_App1\\work",
+ "LogDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\PersistentQueueApp_App1\\log",
+ "TempDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\PersistentQueueApp_App1\\temp",
+ "HealthState": "Ok"
+ },
+ {
+ "Id": "samples~VQueueApp1",
+ "Name": "fabric:/samples/VQueueApp1",
+ "TypeName": "VolatileQueueApp",
+ "Status": "Active",
+ "WorkDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\VolatileQueueApp_App2\\work",
+ "LogDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\VolatileQueueApp_App2\\log",
+ "TempDirectory": "C:\\SfDevCluster\\Data\\_App\\_Node_0\\VolatileQueueApp_App2\\temp",
+ "HealthState": "Ok"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetFaultOperationList.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetFaultOperationList.json
new file mode 100644
index 000000000000..c7194dad614a
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetFaultOperationList.json
@@ -0,0 +1,51 @@
+{
+ "operationId": "GetFaultOperationList",
+ "description": "This shows an example of possible output for GetFaultOperationList",
+ "parameters": {
+ "TypeFilter": "0xFF",
+ "StateFilter": "0xFF",
+ "api-version": "6.0"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "OperationId": "00000000-0000-0000-0000-000000000010",
+ "State": "Completed",
+ "Type": "PartitionDataLoss"
+ },
+ {
+ "OperationId": "00000000-0000-0000-0000-000000000020",
+ "State": "Completed",
+ "Type": "PartitionQuorumLoss"
+ },
+ {
+ "OperationId": "00000000-0000-0000-0000-000000000030",
+ "State": "Completed",
+ "Type": "PartitionRestart"
+ },
+ {
+ "OperationId": "00000000-0000-0000-0000-000000000500",
+ "State": "Faulted",
+ "Type": "NodeTransition"
+ },
+ {
+ "OperationId": "00000000-0000-0000-0000-000000000700",
+ "State": "Completed",
+ "Type": "NodeTransition"
+ },
+ {
+ "OperationId": "00000000-0000-0000-0000-000000000710",
+ "State": "Completed",
+ "Type": "NodeTransition"
+ },
+ {
+ "OperationId": "88ef90f9-0b94-46b0-b817-a6ea20c07f8a",
+ "State": "Completed",
+ "Type": "PartitionRestart"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetImageStoreContent.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetImageStoreContent.json
new file mode 100644
index 000000000000..7e912c407a79
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetImageStoreContent.json
@@ -0,0 +1,91 @@
+{
+ "operationId": "GetImageStoreContent",
+ "description": "This example shows how to get image store content under the given relative path.",
+ "parameters": {
+ "api-version": "6.2",
+ "contentPath": "Store\\CalcServiceApp"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "StoreFiles": [
+ {
+ "StoreRelativePath": "Store\\CalcServiceApp\\ApplicationManifest.2.0.xml",
+ "FileVersion": {
+ "EpochDataLossNumber": "131510254310497004",
+ "VersionNumber": "23",
+ "EpochConfigurationNumber": "25769803776"
+ },
+ "FileSize": "897",
+ "ModifiedDate": "2017-09-28T17:44:22.609Z"
+ },
+ {
+ "StoreRelativePath": "Store\\CalcServiceApp\\CalcService.Code.2.0.checksum",
+ "FileVersion": {
+ "EpochDataLossNumber": "131510254310497004",
+ "VersionNumber": "25",
+ "EpochConfigurationNumber": "25769803776"
+ },
+ "FileSize": "66",
+ "ModifiedDate": "2017-09-28T17:44:22.468Z"
+ },
+ {
+ "StoreRelativePath": "Store\\CalcServiceApp\\CalcService.Config.1.0.checksum",
+ "FileVersion": {
+ "EpochDataLossNumber": "131510254310497004",
+ "VersionNumber": "26",
+ "EpochConfigurationNumber": "25769803776"
+ },
+ "FileSize": "66",
+ "ModifiedDate": "2017-09-28T17:44:22.468Z"
+ },
+ {
+ "StoreRelativePath": "Store\\CalcServiceApp\\CalcService.Data.2.0.checksum",
+ "FileVersion": {
+ "EpochDataLossNumber": "131510254310497004",
+ "VersionNumber": "27",
+ "EpochConfigurationNumber": "25769803776"
+ },
+ "FileSize": "66",
+ "ModifiedDate": "2017-09-28T17:44:22.468Z"
+ },
+ {
+ "StoreRelativePath": "Store\\CalcServiceApp\\CalcService.Manifest.2.0.xml",
+ "FileVersion": {
+ "EpochDataLossNumber": "131510254310497004",
+ "VersionNumber": "19",
+ "EpochConfigurationNumber": "25769803776"
+ },
+ "FileSize": "744",
+ "ModifiedDate": "2017-09-28T17:44:22.578Z"
+ },
+ {
+ "StoreRelativePath": "Store\\CalcServiceApp\\CalcService.Manifest.2.0.xml.checksum",
+ "FileVersion": {
+ "EpochDataLossNumber": "131510254310497004",
+ "VersionNumber": "24",
+ "EpochConfigurationNumber": "25769803776"
+ },
+ "FileSize": "66",
+ "ModifiedDate": "2017-09-28T17:44:22.484Z"
+ }
+ ],
+ "StoreFolders": [
+ {
+ "StoreRelativePath": "Store\\CalcServiceApp\\CalcService.Code.2.0",
+ "FileCount": "2"
+ },
+ {
+ "StoreRelativePath": "Store\\CalcServiceApp\\CalcService.Config.1.0",
+ "FileCount": "2"
+ },
+ {
+ "StoreRelativePath": "Store\\CalcServiceApp\\CalcService.Data.2.0",
+ "FileCount": "2"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetImageStoreInfo.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetImageStoreInfo.json
new file mode 100644
index 000000000000..e4360622b5fd
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetImageStoreInfo.json
@@ -0,0 +1,36 @@
+{
+ "operationId": "GetImageStoreInfo",
+ "description": "This example shows how to get ImageStore information.",
+ "parameters": {
+ "api-version": "6.5"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "DiskInfo": {
+ "Capacity": "500090007552",
+ "AvailableSpace": "228851900416"
+ },
+ "UsedByMetadata": {
+ "UsedSpace": "23093248",
+ "FileCount": 6
+ },
+ "UsedByStaging": {
+ "UsedSpace": "6291456",
+ "FileCount": 9
+ },
+ "UsedByCopy": {
+ "UsedSpace": "4194304",
+ "FileCount": 2
+ },
+ "UsedByRegister": {
+ "UsedSpace": "4194304",
+ "FileCount": 3
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeEventList.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeEventList.json
new file mode 100644
index 000000000000..4368ae718d58
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeEventList.json
@@ -0,0 +1,32 @@
+{
+ "operationId": "GetNodeEventList",
+ "description": "This example shows how to get all node-related events during a certain time window.",
+ "parameters": {
+ "nodeName": "node1",
+ "api-version": "6.4",
+ "StartTimeUtc": "2018-04-03T18:00:00Z",
+ "EndTimeUtc": "2018-04-04T18:00:00Z"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "Kind": "NodeOpenSucceeded",
+ "NodeInstance": 131672596159209215,
+ "NodeId": "ba001a8bb353543e646be031afb10f1e",
+ "UpgradeDomain": "0",
+ "FaultDomain": "fd:/0",
+ "IpAddressOrFQDN": "100.78.240.56",
+ "Hostname": "RD0003FF5089AA",
+ "IsSeedNode": false,
+ "NodeVersion": "6.2:1.0",
+ "NodeName": "node1",
+ "EventInstanceId": "ecbce04a-a42b-4b70-a800-dfc6bc4f9b89",
+ "TimeStamp": "2018-04-03T20:06:55.966073Z",
+ "HasCorrelatedEvents": false
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeInfo-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeInfo-1.json
new file mode 100644
index 000000000000..24b8cfac97f7
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeInfo-1.json
@@ -0,0 +1,41 @@
+{
+ "operationId": "GetNodeInfo",
+ "description": "This example shows how to get information about an node using it's identifier. If the node is found, information about it is returned with 200 status code. If the node is not found, empty content is returned with 204 status code.",
+ "parameters": {
+ "api-version": "6.0",
+ "nodeName": "_Node_1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "Name": "_testnode_0",
+ "IpAddressOrFQDN": "10.0.0.4",
+ "Type": "testnode",
+ "CodeVersion": "6.3.139.9494",
+ "ConfigVersion": "5",
+ "NodeStatus": "Up",
+ "NodeUpTimeInSeconds": "18688",
+ "HealthState": "Ok",
+ "IsSeedNode": true,
+ "UpgradeDomain": "0",
+ "FaultDomain": "fd:/0",
+ "Id": {
+ "Id": "2acb9f55540659b1c95f27cc128ab326"
+ },
+ "InstanceId": "131738240209152398",
+ "NodeDeactivationInfo": {
+ "NodeDeactivationIntent": "Invalid",
+ "NodeDeactivationStatus": "None",
+ "NodeDeactivationTask": [],
+ "PendingSafetyChecks": []
+ },
+ "IsStopped": false,
+ "NodeDownTimeInSeconds": "0",
+ "NodeUpAt": "2018-06-18T19:33:52.944Z",
+ "NodeDownAt": "2018-06-18T19:33:39.514Z"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeInfoList-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeInfoList-1.json
new file mode 100644
index 000000000000..c494bff622c5
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeInfoList-1.json
@@ -0,0 +1,72 @@
+{
+ "operationId": "GetNodeInfoList",
+ "description": "This example shows how to get information about the nodes in the cluster when the number of results returned is limited by the MaxResults parameter.",
+ "parameters": {
+ "api-version": "6.3",
+ "MaxResults": 2
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "2acb9f55540659b1c95f27cc128ab326",
+ "Items": [
+ {
+ "Name": "_testnode_1",
+ "IpAddressOrFQDN": "10.0.0.5",
+ "Type": "testnode",
+ "CodeVersion": "6.3.139.9494",
+ "ConfigVersion": "5",
+ "NodeStatus": "Up",
+ "NodeUpTimeInSeconds": "102016",
+ "HealthState": "Ok",
+ "IsSeedNode": true,
+ "UpgradeDomain": "1",
+ "FaultDomain": "fd:/1",
+ "Id": {
+ "Id": "ebd986a1134b3643a8117fb41b259bf"
+ },
+ "InstanceId": "131738274982501335",
+ "NodeDeactivationInfo": {
+ "NodeDeactivationIntent": "Invalid",
+ "NodeDeactivationStatus": "None",
+ "NodeDeactivationTask": [],
+ "PendingSafetyChecks": []
+ },
+ "IsStopped": false,
+ "NodeDownTimeInSeconds": "0",
+ "NodeUpAt": "2018-06-18T20:31:39.842Z",
+ "NodeDownAt": "2018-06-18T20:31:37.374Z"
+ },
+ {
+ "Name": "_testnode_0",
+ "IpAddressOrFQDN": "10.0.0.4",
+ "Type": "testnode",
+ "CodeVersion": "6.3.139.9494",
+ "ConfigVersion": "5",
+ "NodeStatus": "Up",
+ "NodeUpTimeInSeconds": "105483",
+ "HealthState": "Ok",
+ "IsSeedNode": true,
+ "UpgradeDomain": "0",
+ "FaultDomain": "fd:/0",
+ "Id": {
+ "Id": "2acb9f55540659b1c95f27cc128ab326"
+ },
+ "InstanceId": "131738240209152398",
+ "NodeDeactivationInfo": {
+ "NodeDeactivationIntent": "Invalid",
+ "NodeDeactivationStatus": "None",
+ "NodeDeactivationTask": [],
+ "PendingSafetyChecks": []
+ },
+ "IsStopped": false,
+ "NodeDownTimeInSeconds": "0",
+ "NodeUpAt": "2018-06-18T19:33:52.944Z",
+ "NodeDownAt": "2018-06-18T19:33:39.514Z"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeInfoList-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeInfoList-2.json
new file mode 100644
index 000000000000..79bbd1bf1af7
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeInfoList-2.json
@@ -0,0 +1,99 @@
+{
+ "operationId": "GetNodeInfoList",
+ "description": "This example shows how to get information about nodes in the cluster which appear on a sequential page, by using the ContinuationToken parameter.",
+ "parameters": {
+ "api-version": "6.3",
+ "ContinuationToken": "2acb9f55540659b1c95f27cc128ab326"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "Name": "_Node_4",
+ "IpAddressOrFQDN": "10.0.0.8",
+ "Type": "testnode",
+ "CodeVersion": "6.3.139.9494",
+ "ConfigVersion": "5",
+ "NodeStatus": "Up",
+ "NodeUpTimeInSeconds": "101547",
+ "HealthState": "Ok",
+ "IsSeedNode": true,
+ "UpgradeDomain": "4",
+ "FaultDomain": "fd:/4",
+ "Id": {
+ "Id": "ba9383d728221add7fa996bf67b757fb"
+ },
+ "InstanceId": "131737415865259763",
+ "NodeDeactivationInfo": {
+ "NodeDeactivationIntent": "Invalid",
+ "NodeDeactivationStatus": "None",
+ "NodeDeactivationTask": [],
+ "PendingSafetyChecks": []
+ },
+ "IsStopped": false,
+ "NodeDownTimeInSeconds": "0",
+ "NodeUpAt": "2018-06-17T20:40:07.378Z",
+ "NodeDownAt": "2018-06-17T20:33:11.877Z"
+ },
+ {
+ "Name": "_Node_3",
+ "IpAddressOrFQDN": "10.0.0.7",
+ "Type": "testnode",
+ "CodeVersion": "6.3.139.9494",
+ "ConfigVersion": "5",
+ "NodeStatus": "Up",
+ "NodeUpTimeInSeconds": "15615",
+ "HealthState": "Ok",
+ "IsSeedNode": true,
+ "UpgradeDomain": "3",
+ "FaultDomain": "fd:/3",
+ "Id": {
+ "Id": "d6a18a0935a3e39aeae2a049eb97255d"
+ },
+ "InstanceId": "131738275300526952",
+ "NodeDeactivationInfo": {
+ "NodeDeactivationIntent": "Invalid",
+ "NodeDeactivationStatus": "None",
+ "NodeDeactivationTask": [],
+ "PendingSafetyChecks": []
+ },
+ "IsStopped": false,
+ "NodeDownTimeInSeconds": "0",
+ "NodeUpAt": "2018-06-18T20:32:18.884Z",
+ "NodeDownAt": "2018-06-18T20:31:59.128Z"
+ },
+ {
+ "Name": "_Node_2",
+ "IpAddressOrFQDN": "10.0.0.6",
+ "Type": "testnode",
+ "CodeVersion": "6.3.139.9494",
+ "ConfigVersion": "5",
+ "NodeStatus": "Up",
+ "NodeUpTimeInSeconds": "19819",
+ "HealthState": "Ok",
+ "IsSeedNode": true,
+ "UpgradeDomain": "2",
+ "FaultDomain": "fd:/2",
+ "Id": {
+ "Id": "f2af91e5e9c8254dedb75b1424a9e3fc"
+ },
+ "InstanceId": "131738233282843485",
+ "NodeDeactivationInfo": {
+ "NodeDeactivationIntent": "Invalid",
+ "NodeDeactivationStatus": "None",
+ "NodeDeactivationTask": [],
+ "PendingSafetyChecks": []
+ },
+ "IsStopped": false,
+ "NodeDownTimeInSeconds": "0",
+ "NodeUpAt": "2018-06-18T19:22:15.272Z",
+ "NodeDownAt": "2018-06-18T19:22:02.740Z"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeInfoList.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeInfoList.json
new file mode 100644
index 000000000000..d38a618440a9
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeInfoList.json
@@ -0,0 +1,152 @@
+{
+ "operationId": "GetNodeInfoList",
+ "description": "This example shows how to get information about all the nodes in the cluster when the information fits in a single response message without the need for paging through ContinuationToken parameter.",
+ "parameters": {
+ "api-version": "6.3"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "Name": "_Node_1",
+ "IpAddressOrFQDN": "10.0.0.5",
+ "Type": "testnode",
+ "CodeVersion": "6.3.139.9494",
+ "ConfigVersion": "5",
+ "NodeStatus": "Up",
+ "NodeUpTimeInSeconds": "15275",
+ "HealthState": "Ok",
+ "IsSeedNode": true,
+ "UpgradeDomain": "1",
+ "FaultDomain": "fd:/1",
+ "Id": {
+ "Id": "ebd986a1134b3643a8117fb41b259bf"
+ },
+ "InstanceId": "131738274982501335",
+ "NodeDeactivationInfo": {
+ "NodeDeactivationIntent": "Invalid",
+ "NodeDeactivationStatus": "None",
+ "NodeDeactivationTask": [],
+ "PendingSafetyChecks": []
+ },
+ "IsStopped": false,
+ "NodeDownTimeInSeconds": "0",
+ "NodeUpAt": "2018-06-18T20:31:39.842Z",
+ "NodeDownAt": "2018-06-18T20:31:37.374Z"
+ },
+ {
+ "Name": "_Node_0",
+ "IpAddressOrFQDN": "10.0.0.4",
+ "Type": "testnode",
+ "CodeVersion": "6.3.139.9494",
+ "ConfigVersion": "5",
+ "NodeStatus": "Up",
+ "NodeUpTimeInSeconds": "18742",
+ "HealthState": "Ok",
+ "IsSeedNode": true,
+ "UpgradeDomain": "0",
+ "FaultDomain": "fd:/0",
+ "Id": {
+ "Id": "2acb9f55540659b1c95f27cc128ab326"
+ },
+ "InstanceId": "131738240209152398",
+ "NodeDeactivationInfo": {
+ "NodeDeactivationIntent": "Invalid",
+ "NodeDeactivationStatus": "None",
+ "NodeDeactivationTask": [],
+ "PendingSafetyChecks": []
+ },
+ "IsStopped": false,
+ "NodeDownTimeInSeconds": "0",
+ "NodeUpAt": "2018-06-18T19:33:52.944Z",
+ "NodeDownAt": "2018-06-18T19:33:39.514Z"
+ },
+ {
+ "Name": "_Node_4",
+ "IpAddressOrFQDN": "10.0.0.8",
+ "Type": "testnode",
+ "CodeVersion": "6.3.139.9494",
+ "ConfigVersion": "5",
+ "NodeStatus": "Up",
+ "NodeUpTimeInSeconds": "101168",
+ "HealthState": "Ok",
+ "IsSeedNode": true,
+ "UpgradeDomain": "4",
+ "FaultDomain": "fd:/4",
+ "Id": {
+ "Id": "ba9383d728221add7fa996bf67b757fb"
+ },
+ "InstanceId": "131737415865259763",
+ "NodeDeactivationInfo": {
+ "NodeDeactivationIntent": "Invalid",
+ "NodeDeactivationStatus": "None",
+ "NodeDeactivationTask": [],
+ "PendingSafetyChecks": []
+ },
+ "IsStopped": false,
+ "NodeDownTimeInSeconds": "0",
+ "NodeUpAt": "2018-06-17T20:40:07.378Z",
+ "NodeDownAt": "2018-06-17T20:33:11.877Z"
+ },
+ {
+ "Name": "_Node_3",
+ "IpAddressOrFQDN": "10.0.0.7",
+ "Type": "testnode",
+ "CodeVersion": "6.3.139.9494",
+ "ConfigVersion": "5",
+ "NodeStatus": "Up",
+ "NodeUpTimeInSeconds": "15236",
+ "HealthState": "Ok",
+ "IsSeedNode": true,
+ "UpgradeDomain": "3",
+ "FaultDomain": "fd:/3",
+ "Id": {
+ "Id": "d6a18a0935a3e39aeae2a049eb97255d"
+ },
+ "InstanceId": "131738275300526952",
+ "NodeDeactivationInfo": {
+ "NodeDeactivationIntent": "Invalid",
+ "NodeDeactivationStatus": "None",
+ "NodeDeactivationTask": [],
+ "PendingSafetyChecks": []
+ },
+ "IsStopped": false,
+ "NodeDownTimeInSeconds": "0",
+ "NodeUpAt": "2018-06-18T20:32:18.884Z",
+ "NodeDownAt": "2018-06-18T20:31:59.128Z"
+ },
+ {
+ "Name": "_Node_2",
+ "IpAddressOrFQDN": "10.0.0.6",
+ "Type": "testnode",
+ "CodeVersion": "6.3.139.9494",
+ "ConfigVersion": "5",
+ "NodeStatus": "Up",
+ "NodeUpTimeInSeconds": "19440",
+ "HealthState": "Ok",
+ "IsSeedNode": true,
+ "UpgradeDomain": "2",
+ "FaultDomain": "fd:/2",
+ "Id": {
+ "Id": "f2af91e5e9c8254dedb75b1424a9e3fc"
+ },
+ "InstanceId": "131738233282843485",
+ "NodeDeactivationInfo": {
+ "NodeDeactivationIntent": "Invalid",
+ "NodeDeactivationStatus": "None",
+ "NodeDeactivationTask": [],
+ "PendingSafetyChecks": []
+ },
+ "IsStopped": false,
+ "NodeDownTimeInSeconds": "0",
+ "NodeUpAt": "2018-06-18T19:22:15.272Z",
+ "NodeDownAt": "2018-06-18T19:22:02.740Z"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeTransitionProgress-Running.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeTransitionProgress-Running.json
new file mode 100644
index 000000000000..62ad5c37ec58
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeTransitionProgress-Running.json
@@ -0,0 +1,17 @@
+{
+ "operationId": "GetNodeTransitionProgress",
+ "description": "This shows an example of output when GetTransitionProgress has a State of Running.",
+ "parameters": {
+ "nodeName": "N0060",
+ "OperationId": "ed903556-acf1-489c-9f33-b484c31f9087",
+ "api-version": "6.0"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "State": "Running"
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeTransitionProgress.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeTransitionProgress.json
new file mode 100644
index 000000000000..474ab826b8df
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodeTransitionProgress.json
@@ -0,0 +1,24 @@
+{
+ "operationId": "GetNodeTransitionProgress",
+ "description": "This shows an example of possible output when GetTransitionProgress has reached a State of Completed. If the State has a value of Running, only the State field will have a value.",
+ "parameters": {
+ "nodeName": "N0060",
+ "OperationId": "a9c24269-88e9-4812-b4ad-a0bf2b724ad4",
+ "api-version": "6.0"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "State": "Completed",
+ "NodeTransitionResult": {
+ "ErrorCode": 0,
+ "NodeResult": {
+ "NodeName": "N0060",
+ "NodeInstanceId": "131366982707950527"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodesEventList.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodesEventList.json
new file mode 100644
index 000000000000..7aed70b97f31
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetNodesEventList.json
@@ -0,0 +1,46 @@
+{
+ "operationId": "GetNodesEventList",
+ "description": "This example shows how to get all nodes-related events during a certain time window.",
+ "parameters": {
+ "api-version": "6.4",
+ "StartTimeUtc": "2018-04-03T18:00:00Z",
+ "EndTimeUtc": "2018-04-04T18:00:00Z"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "Kind": "NodeOpenSucceeded",
+ "NodeInstance": 131672596159209215,
+ "NodeId": "ba001a8bb353543e646be031afb10f1e",
+ "UpgradeDomain": "0",
+ "FaultDomain": "fd:/0",
+ "IpAddressOrFQDN": "100.78.240.56",
+ "Hostname": "RD0003FF5089AA",
+ "IsSeedNode": false,
+ "NodeVersion": "6.2:1.0",
+ "NodeName": "node1",
+ "EventInstanceId": "ecbce04a-a42b-4b70-a800-dfc6bc4f9b89",
+ "TimeStamp": "2018-04-03T20:06:55.966073Z",
+ "HasCorrelatedEvents": false
+ },
+ {
+ "Kind": "NodeOpenSucceeded",
+ "NodeInstance": 131672596186027906,
+ "NodeId": "ba03ef91259835c54d674889849a7cee",
+ "UpgradeDomain": "3",
+ "FaultDomain": "fd:/3",
+ "IpAddressOrFQDN": "100.72.76.122",
+ "Hostname": "RD0003FF6047A8",
+ "IsSeedNode": false,
+ "NodeVersion": "6.2:1.0",
+ "NodeName": "node2",
+ "EventInstanceId": "67730c48-752c-4209-bf28-3c121555a4c0",
+ "TimeStamp": "2018-04-03T20:06:58.6357365Z",
+ "HasCorrelatedEvents": false
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupConfigurationInfo.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupConfigurationInfo.json
new file mode 100644
index 000000000000..dd97740de85f
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupConfigurationInfo.json
@@ -0,0 +1,24 @@
+{
+ "operationId": "GetPartitionBackupConfigurationInfo",
+ "description": "This example shows how to get backup configuration for a partition.",
+ "parameters": {
+ "api-version": "6.4",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "Kind": "Partition",
+ "PolicyName": "BackupPolicy2",
+ "PolicyInheritedFrom": "Service",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "SuspensionInfo": {
+ "IsSuspended": true,
+ "SuspensionInheritedFrom": "Partition"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupList-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupList-1.json
new file mode 100644
index 000000000000..2c5fb63a2bc3
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupList-1.json
@@ -0,0 +1,64 @@
+{
+ "operationId": "GetPartitionBackupList",
+ "description": "This example shows how to get list of partition backups within a time range.",
+ "parameters": {
+ "api-version": "6.4",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "StartDateTimeFilter": "2018-01-01T00:00:00Z",
+ "EndDateTimeFilter": "2018-01-01T23:59:59Z"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "BackupId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 09.00.55.zip",
+ "BackupType": "Full",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "261",
+ "CreationTimeUtc": "2018-01-01T09:00:55Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "7903dc2a-228d-44b0-b7c8-a13a6c9b46bd",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 17.01.02.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "446",
+ "CreationTimeUtc": "2018-01-01T17:01:02Z",
+ "FailureError": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupList-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupList-2.json
new file mode 100644
index 000000000000..cc627b382457
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupList-2.json
@@ -0,0 +1,41 @@
+{
+ "operationId": "GetPartitionBackupList",
+ "description": "This example shows how to get the latest backup for the specified partition.",
+ "parameters": {
+ "api-version": "6.4",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "Latest": true
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "BackupId": "be06a49c-be67-4eb1-a602-b983605be862",
+ "BackupChainId": "be06a49c-be67-4eb1-a602-b983605be862",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-02 08.59.53.zip",
+ "BackupType": "Full",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "639",
+ "CreationTimeUtc": "2018-01-02T08:59:53Z",
+ "FailureError": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupList-3.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupList-3.json
new file mode 100644
index 000000000000..2cddad80321f
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupList-3.json
@@ -0,0 +1,63 @@
+{
+ "operationId": "GetPartitionBackupList",
+ "description": "This example shows how to get list of partition backups. The number of results in a page are limited to maximum of two using the MaxResult parameter.",
+ "parameters": {
+ "api-version": "6.4",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "MaxResults": 2
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "fabric:/CalcApp/CalcService#1daae3f5-7fd6-42e9-b1ba-8c05f873994d#7903dc2a-228d-44b0-b7c8-a13a6c9b46bd",
+ "Items": [
+ {
+ "BackupId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 09.00.55.zip",
+ "BackupType": "Full",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "261",
+ "CreationTimeUtc": "2018-01-01T09:00:55Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "7903dc2a-228d-44b0-b7c8-a13a6c9b46bd",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 17.01.02.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "446",
+ "CreationTimeUtc": "2018-01-01T17:01:02Z",
+ "FailureError": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupList-4.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupList-4.json
new file mode 100644
index 000000000000..c73aaece09c8
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupList-4.json
@@ -0,0 +1,42 @@
+{
+ "operationId": "GetPartitionBackupList",
+ "description": "This example shows how to get list of partition backups. The number of results in a page are limited to maximum of two using the MaxResult parameter. This example uses the ContinuationToken parameter. The value of this parameter is provided from the previous query; in this case the example shown above. The response contains the remaining results and an empty ContinuationToken. The empty ContinuationToken indicates that additional results are not available.",
+ "parameters": {
+ "api-version": "6.4",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "MaxResults": 2,
+ "ContinuationToken": "fabric:/CalcApp/CalcService#1daae3f5-7fd6-42e9-b1ba-8c05f873994d#7903dc2a-228d-44b0-b7c8-a13a6c9b46bd"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "BackupId": "be06a49c-be67-4eb1-a602-b983605be862",
+ "BackupChainId": "be06a49c-be67-4eb1-a602-b983605be862",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-02 08.59.53.zip",
+ "BackupType": "Full",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "639",
+ "CreationTimeUtc": "2018-01-02T08:59:53Z",
+ "FailureError": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupProgress.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupProgress.json
new file mode 100644
index 000000000000..9d0df23312a6
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionBackupProgress.json
@@ -0,0 +1,25 @@
+{
+ "operationId": "GetPartitionBackupProgress",
+ "description": "This shows an example of possible output when GetPartitionBackupProgress has reached a BackupState of Success. If the BackupState has a value of BackupInProgress, only the BackupState field will have a value.",
+ "parameters": {
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "api-version": "6.4"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "BackupState": "Success",
+ "TimeStampUtc": "2018-01-01T09:00:55Z",
+ "BackupId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 09.00.55.zip",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "261",
+ "FailureError": null
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionEventList.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionEventList.json
new file mode 100644
index 000000000000..bbfca06712e9
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionEventList.json
@@ -0,0 +1,37 @@
+{
+ "operationId": "GetPartitionEventList",
+ "description": "This example shows how to get all partition-related events during a certain time window.",
+ "parameters": {
+ "partitionId": "f2a6a893-39be-4c7d-b07f-72bc2d36de89",
+ "api-version": "6.4",
+ "StartTimeUtc": "2018-04-03T18:00:00Z",
+ "EndTimeUtc": "2018-04-04T18:00:00Z"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "Kind": "PartitionReconfigured",
+ "NodeName": "node1",
+ "NodeInstanceId": "ba001a8bb353543e646be031afb10f1e",
+ "ServiceType": "Svc1Type",
+ "CcEpochDataLossVersion": 131672604833413107,
+ "CcEpochConfigVersion": 8589934595,
+ "ReconfigType": "Other",
+ "Result": "Completed",
+ "Phase0DurationMs": 0.0,
+ "Phase1DurationMs": 0.0,
+ "Phase2DurationMs": 203.1935,
+ "Phase3DurationMs": 0.0262,
+ "Phase4DurationMs": 628.8527,
+ "TotalDurationMs": 832.0724,
+ "PartitionId": "f2a6a893-39be-4c7d-b07f-72bc2d36de89",
+ "EventInstanceId": "e00fa5b7-f747-40dd-9e09-f5a031e96de4",
+ "TimeStamp": "2018-04-03T20:21:47.3778996Z",
+ "HasCorrelatedEvents": true
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionRestartProgress.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionRestartProgress.json
new file mode 100644
index 000000000000..074289b470a2
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionRestartProgress.json
@@ -0,0 +1,25 @@
+{
+ "operationId": "GetPartitionRestartProgress",
+ "description": "This shows an example of possible output when GetPartitionRestartProgress has reached a State of Completed. If the State has a value of Running, only the State field will have a value.",
+ "parameters": {
+ "serviceId": "fabric:/myapp/myservice",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "OperationId": "6eb7f0d3-49ca-4cb1-81b7-ac2d56b5c5d1",
+ "api-version": "6.0"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "State": "Completed",
+ "RestartPartitionResult": {
+ "ErrorCode": 0,
+ "SelectedPartition": {
+ "ServiceName": "fabric:/myapp/myservice",
+ "PartitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionRestoreProgress.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionRestoreProgress.json
new file mode 100644
index 000000000000..da52d1a100b9
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionRestoreProgress.json
@@ -0,0 +1,23 @@
+{
+ "operationId": "GetPartitionRestoreProgress",
+ "description": "This shows an example of possible output when GetPartitionRestoreProgress has reached a RestoreState of Success. If the RestoreState has a value of RestoreInProgress, only the RestoreState field will have a value.",
+ "parameters": {
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "api-version": "6.4"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "RestoreState": "Success",
+ "TimeStampUtc": "2018-01-01T09:00:55Z",
+ "RestoredEpoch": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "RestoredLsn": "261",
+ "FailureError": null
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionsEventList.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionsEventList.json
new file mode 100644
index 000000000000..e49c5e402b00
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPartitionsEventList.json
@@ -0,0 +1,56 @@
+{
+ "operationId": "GetPartitionsEventList",
+ "description": "This example shows how to get all partitions-related events during a certain time window.",
+ "parameters": {
+ "api-version": "6.4",
+ "StartTimeUtc": "2018-04-03T18:00:00Z",
+ "EndTimeUtc": "2018-04-04T18:00:00Z"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "Kind": "PartitionReconfigured",
+ "NodeName": "node1",
+ "NodeInstanceId": "ba001a8bb353543e646be031afb10f1e",
+ "ServiceType": "Svc1Type",
+ "CcEpochDataLossVersion": 131672604833413107,
+ "CcEpochConfigVersion": 8589934595,
+ "ReconfigType": "Other",
+ "Result": "Completed",
+ "Phase0DurationMs": 0.0,
+ "Phase1DurationMs": 0.0,
+ "Phase2DurationMs": 203.1935,
+ "Phase3DurationMs": 0.0262,
+ "Phase4DurationMs": 628.8527,
+ "TotalDurationMs": 832.0724,
+ "PartitionId": "f2a6a893-39be-4c7d-b07f-72bc2d36de89",
+ "EventInstanceId": "e00fa5b7-f747-40dd-9e09-f5a031e96de4",
+ "TimeStamp": "2018-04-03T20:21:47.3778996Z",
+ "HasCorrelatedEvents": true
+ },
+ {
+ "Kind": "PartitionReconfigured",
+ "NodeName": "node2",
+ "NodeInstanceId": "ba0459d257b028296deba8bd5add33cb",
+ "ServiceType": "Svc1Type",
+ "CcEpochDataLossVersion": 131672604833413107,
+ "CcEpochConfigVersion": 8589934596,
+ "ReconfigType": "Other",
+ "Result": "Completed",
+ "Phase0DurationMs": 0.0,
+ "Phase1DurationMs": 0.0,
+ "Phase2DurationMs": 205.667,
+ "Phase3DurationMs": 407.7781,
+ "Phase4DurationMs": 630.0935,
+ "TotalDurationMs": 1243.5386,
+ "PartitionId": "e12acfb3-2a43-4a1a-a252-aa5388ef1aec",
+ "EventInstanceId": "9aeb234a-16ef-4e8a-974e-26c60d6f2b86",
+ "TimeStamp": "2018-04-03T20:21:49.5155104Z",
+ "HasCorrelatedEvents": false
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPropertyInfo-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPropertyInfo-1.json
new file mode 100644
index 000000000000..ca5def4be2fb
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPropertyInfo-1.json
@@ -0,0 +1,29 @@
+{
+ "operationId": "GetPropertyInfo",
+ "description": "This example shows how to get a Service Fabric property under a given name.",
+ "parameters": {
+ "api-version": "6.0",
+ "nameId": "samples/apps",
+ "PropertyName": "AppData"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "Name": "CalculatorAppData",
+ "Value": {
+ "Kind": "String",
+ "Data": "1+2=3"
+ },
+ "Metadata": {
+ "TypeId": "String",
+ "CustomTypeId": "EquationType",
+ "Parent": "fabric:/samples/apps",
+ "SizeInBytes": 12,
+ "LastModifiedUtcTimestamp": "2017-07-17T04:27:19.049Z",
+ "SequenceNumber": "12"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPropertyInfoList-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPropertyInfoList-1.json
new file mode 100644
index 000000000000..5729c6a4e4a2
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPropertyInfoList-1.json
@@ -0,0 +1,41 @@
+{
+ "operationId": "GetPropertyInfoList",
+ "description": "This example shows how to get all Service Fabric properties under a given name.",
+ "parameters": {
+ "api-version": "6.0",
+ "nameId": "samples/apps"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "PersistentQueueAppData$131439231986491349",
+ "IsConsistent": true,
+ "Properties": [
+ {
+ "Name": "CalculatorAppData",
+ "Metadata": {
+ "TypeId": "Int64",
+ "CustomTypeId": "",
+ "Parent": "fabric:/samples/apps",
+ "SizeInBytes": 5,
+ "LastModifiedUtcTimestamp": "2017-07-17T04:27:19.049Z",
+ "SequenceNumber": "10"
+ }
+ },
+ {
+ "Name": "PersistentQueueAppData",
+ "Metadata": {
+ "TypeId": "Binary",
+ "CustomTypeId": "InitializationDataType",
+ "Parent": "fabric:/samples/apps",
+ "SizeInBytes": 5,
+ "LastModifiedUtcTimestamp": "2017-07-17T04:36:19.049Z",
+ "SequenceNumber": "12"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPropertyInfoList-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPropertyInfoList-2.json
new file mode 100644
index 000000000000..6a172f23f09a
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPropertyInfoList-2.json
@@ -0,0 +1,56 @@
+{
+ "operationId": "GetPropertyInfoList",
+ "description": "This example shows how to get all Service Fabric properties and their values under a given name.",
+ "parameters": {
+ "api-version": "6.0",
+ "nameId": "samples/apps",
+ "IncludeValues": true
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "PersistentQueueAppData$131439231986491349",
+ "IsConsistent": true,
+ "Properties": [
+ {
+ "Name": "CalculatorAppData",
+ "Value": {
+ "Kind": "Int64",
+ "Data": "4534"
+ },
+ "Metadata": {
+ "TypeId": "Int64",
+ "CustomTypeId": "",
+ "Parent": "fabric:/samples/apps",
+ "SizeInBytes": 8,
+ "LastModifiedUtcTimestamp": "2017-07-17T04:27:19.049Z",
+ "SequenceNumber": "10"
+ }
+ },
+ {
+ "Name": "PersistentQueueAppData",
+ "Value": {
+ "Kind": "Binary",
+ "Data": [
+ 6,
+ 7,
+ 8,
+ 9,
+ 10
+ ]
+ },
+ "Metadata": {
+ "TypeId": "Binary",
+ "CustomTypeId": "InitializationDataType",
+ "Parent": "fabric:/samples/apps",
+ "SizeInBytes": 5,
+ "LastModifiedUtcTimestamp": "2017-07-17T04:36:19.049Z",
+ "SequenceNumber": "12"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPropertyInfoList-3.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPropertyInfoList-3.json
new file mode 100644
index 000000000000..ce12465b6ce6
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetPropertyInfoList-3.json
@@ -0,0 +1,36 @@
+{
+ "operationId": "GetPropertyInfoList",
+ "description": "This example shows how to page through the information about properties under a given Service Fabric name using ContinuationToken parameter. The value of this parameter is provided from the previous query, in this case the example shown above. The response contains the remaining two results and an empty ContinuationToken. The empty ContinuationToken indicates that additional results are not available.",
+ "parameters": {
+ "api-version": "6.0",
+ "nameId": "samples/apps",
+ "IncludeValues": true,
+ "ContinuationToken": "PersistentQueueAppData$131439231986491349"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "IsConsistent": true,
+ "Properties": [
+ {
+ "Name": "VolatileQueueAppData",
+ "Value": {
+ "Kind": "Double",
+ "Data": 67.89
+ },
+ "Metadata": {
+ "TypeId": "Double",
+ "CustomTypeId": "",
+ "Parent": "fabric:/samples/apps",
+ "SizeInBytes": 8,
+ "LastModifiedUtcTimestamp": "2017-07-17T04:01:19.049Z",
+ "SequenceNumber": "8"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetQuorumLossProgress-Running.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetQuorumLossProgress-Running.json
new file mode 100644
index 000000000000..203fb157db03
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetQuorumLossProgress-Running.json
@@ -0,0 +1,18 @@
+{
+ "operationId": "GetQuorumLossProgress",
+ "description": "This shows an example of possible output when GetQuorumLossProgress has a State of Running. If the State has a value of Running, only the State field will have a value.",
+ "parameters": {
+ "serviceId": "fabric:/myapp/myservice",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "OperationId": "81fbaee7-4f49-44bb-a350-4cb2b51dbf26",
+ "api-version": "6.0"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "State": "Running"
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetQuorumLossProgress.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetQuorumLossProgress.json
new file mode 100644
index 000000000000..c86fd0d2b31d
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetQuorumLossProgress.json
@@ -0,0 +1,25 @@
+{
+ "operationId": "GetQuorumLossProgress",
+ "description": "This shows an example of possible output when GetQuorumLossProgress has reached a State of Completed. If the State has a value of Running, only the State field will have a value.",
+ "parameters": {
+ "serviceId": "fabric:/myapp/myservice",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "OperationId": "81fbaee7-4f49-44bb-a350-4cb2b51dbf26",
+ "api-version": "6.0"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "State": "Completed",
+ "InvokeQuorumLossResult": {
+ "ErrorCode": 0,
+ "SelectedPartition": {
+ "ServiceName": "fabric:/myapp/myservice",
+ "PartitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetReplicaEventList.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetReplicaEventList.json
new file mode 100644
index 000000000000..a3b517117bac
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetReplicaEventList.json
@@ -0,0 +1,35 @@
+{
+ "operationId": "GetPartitionReplicaEventList",
+ "description": "This example shows how to get all replica-related events during a certain time window.",
+ "parameters": {
+ "partitionId": "f2a6a893-39be-4c7d-b07f-72bc2d36de89",
+ "replicaId": 131672608994209130,
+ "api-version": "6.4",
+ "StartTimeUtc": "2018-04-03T18:00:00Z",
+ "EndTimeUtc": "2018-04-04T18:00:00Z"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "Kind": "StatefulReplicaNewHealthReport",
+ "ReplicaInstanceId": 131672608994209130,
+ "SourceId": "TestSource",
+ "Property": "",
+ "HealthState": "Error",
+ "TimeToLiveMs": 922337203685477,
+ "SequenceNumber": 131672654189677787,
+ "Description": "",
+ "RemoveWhenExpired": false,
+ "SourceUtcTimestamp": "2018-04-03T21:43:38Z",
+ "PartitionId": "f2a6a893-39be-4c7d-b07f-72bc2d36de89",
+ "ReplicaId": 131672608994209130,
+ "EventInstanceId": "b2684da3-df81-4add-8baa-201f73e9195d",
+ "TimeStamp": "2018-04-03T21:43:38.8904013Z",
+ "HasCorrelatedEvents": false
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetReplicasEventList.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetReplicasEventList.json
new file mode 100644
index 000000000000..1d2e9212dfcc
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetReplicasEventList.json
@@ -0,0 +1,51 @@
+{
+ "operationId": "GetPartitionReplicasEventList",
+ "description": "This example shows how to get all replicas-related events during a certain time window.",
+ "parameters": {
+ "partitionId": "f2a6a893-39be-4c7d-b07f-72bc2d36de89",
+ "api-version": "6.4",
+ "StartTimeUtc": "2018-04-03T18:00:00Z",
+ "EndTimeUtc": "2018-04-04T18:00:00Z"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "Kind": "StatefulReplicaNewHealthReport",
+ "ReplicaInstanceId": 131672608994209130,
+ "SourceId": "TestSource",
+ "Property": "",
+ "HealthState": "Error",
+ "TimeToLiveMs": 922337203685477,
+ "SequenceNumber": 131672654189677787,
+ "Description": "",
+ "RemoveWhenExpired": false,
+ "SourceUtcTimestamp": "2018-04-03T21:43:38Z",
+ "PartitionId": "f2a6a893-39be-4c7d-b07f-72bc2d36de89",
+ "ReplicaId": 131672608994209130,
+ "EventInstanceId": "b2684da3-df81-4add-8baa-201f73e9195d",
+ "TimeStamp": "2018-04-03T21:43:38.8904013Z",
+ "HasCorrelatedEvents": false
+ },
+ {
+ "Kind": "StatefulReplicaNewHealthReport",
+ "ReplicaInstanceId": 177872608994339550,
+ "SourceId": "TestSource",
+ "Property": "",
+ "HealthState": "Error",
+ "TimeToLiveMs": 922337203685477,
+ "SequenceNumber": 131672654189677788,
+ "Description": "",
+ "RemoveWhenExpired": false,
+ "SourceUtcTimestamp": "2018-04-03T21:44:38Z",
+ "PartitionId": "f549f3b3-08c2-4ec4-adb4-415e024cb0ef",
+ "ReplicaId": 177872608994339550,
+ "EventInstanceId": "4a8851d8-35a3-4618-b4ac-03ffa191c350",
+ "TimeStamp": "2018-04-03T21:44:38.8904013Z",
+ "HasCorrelatedEvents": false
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupConfigurationInfo-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupConfigurationInfo-1.json
new file mode 100644
index 000000000000..ab37c65b803f
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupConfigurationInfo-1.json
@@ -0,0 +1,40 @@
+{
+ "operationId": "GetServiceBackupConfigurationInfo",
+ "description": "This example shows how to get list of backup configuration for this service and partitions under this service. The number of results in a page are limited to maximum of two using the MaxResult parameter.",
+ "parameters": {
+ "api-version": "6.4",
+ "serviceId": "CalcApp/CalcService",
+ "MaxResults": 2
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "fabric:/CalcApp/CalcService#1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "Items": [
+ {
+ "Kind": "Service",
+ "PolicyName": "BackupPolicy1",
+ "PolicyInheritedFrom": "Application",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "SuspensionInfo": {
+ "IsSuspended": false,
+ "SuspensionInheritedFrom": "Invalid"
+ }
+ },
+ {
+ "Kind": "Partition",
+ "PolicyName": "BackupPolicy2",
+ "PolicyInheritedFrom": "Partition",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "SuspensionInfo": {
+ "IsSuspended": false,
+ "SuspensionInheritedFrom": "Invalid"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupConfigurationInfo-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupConfigurationInfo-2.json
new file mode 100644
index 000000000000..76e7e948550d
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupConfigurationInfo-2.json
@@ -0,0 +1,31 @@
+{
+ "operationId": "GetServiceBackupConfigurationInfo",
+ "description": "This example shows how to get list of backup configuration for this service and partitions under this service. The number of results in a page are limited to maximum of two using the MaxResult parameter. This example uses the ContinuationToken parameter. The value of this parameter is provided from the previous query; in this case the example shown above. The response contains the remaining results and an empty ContinuationToken. The empty ContinuationToken indicates that additional results are not available.",
+ "parameters": {
+ "api-version": "6.4",
+ "serviceId": "CalcApp/CalcService",
+ "MaxResults": 2,
+ "ContinuationToken": "fabric:/CalcApp/CalcService#1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "Kind": "Partition",
+ "PolicyName": "BackupPolicy1",
+ "PolicyInheritedFrom": "Application",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionId": "7216486c-1ee9-4b00-99b2-92b26fcb07f6",
+ "SuspensionInfo": {
+ "IsSuspended": true,
+ "SuspensionInheritedFrom": "Partition"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupList-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupList-1.json
new file mode 100644
index 000000000000..b561b1b20f84
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupList-1.json
@@ -0,0 +1,108 @@
+{
+ "operationId": "GetServiceBackupList",
+ "description": "This example shows how to get list of service backups within a time range.",
+ "parameters": {
+ "api-version": "6.4",
+ "serviceId": "CalcApp/CalcService",
+ "StartDateTimeFilter": "2018-01-01T00:00:00Z",
+ "EndDateTimeFilter": "2018-01-01T23:59:59Z"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "BackupId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 09.00.55.zip",
+ "BackupType": "Full",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "261",
+ "CreationTimeUtc": "2018-01-01T09:00:55Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "7903dc2a-228d-44b0-b7c8-a13a6c9b46bd",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 17.01.02.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "446",
+ "CreationTimeUtc": "2018-01-01T17:01:02Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "BackupChainId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "81645ec7-d260-4c59-9533-8f129bde8e83"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\81645ec7-d260-4c59-9533-8f129bde8e83\\2018-01-01 09.01.02.zip",
+ "BackupType": "Full",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "161",
+ "CreationTimeUtc": "2018-01-01T09:01:02Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "d55a2d98-258b-4a34-8fe5-2063e81af9dc",
+ "BackupChainId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "81645ec7-d260-4c59-9533-8f129bde8e83"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\81645ec7-d260-4c59-9533-8f129bde8e83\\2018-01-01 17.00.34.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "246",
+ "CreationTimeUtc": "2018-01-01T17:00:34Z",
+ "FailureError": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupList-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupList-2.json
new file mode 100644
index 000000000000..df570db76649
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupList-2.json
@@ -0,0 +1,63 @@
+{
+ "operationId": "GetServiceBackupList",
+ "description": "This example shows how to get the latest backup for each partition within a service.",
+ "parameters": {
+ "api-version": "6.4",
+ "serviceId": "CalcApp/CalcService",
+ "Latest": true
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "BackupId": "7903dc2a-228d-44b0-b7c8-a13a6c9b46bd",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 17.01.02.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "446",
+ "CreationTimeUtc": "2018-01-01T17:01:02Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "d55a2d98-258b-4a34-8fe5-2063e81af9dc",
+ "BackupChainId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "81645ec7-d260-4c59-9533-8f129bde8e83"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\81645ec7-d260-4c59-9533-8f129bde8e83\\2018-01-01 17.00.34.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "246",
+ "CreationTimeUtc": "2018-01-01T17:00:34Z",
+ "FailureError": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupList-3.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupList-3.json
new file mode 100644
index 000000000000..5b162231a889
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupList-3.json
@@ -0,0 +1,63 @@
+{
+ "operationId": "GetServiceBackupList",
+ "description": "This example shows how to get list of service backups. The number of results in a page are limited to maximum of two using the MaxResult parameter.",
+ "parameters": {
+ "api-version": "6.4",
+ "serviceId": "CalcApp/CalcService",
+ "MaxResults": 2
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "fabric:/CalcApp/CalcService#1daae3f5-7fd6-42e9-b1ba-8c05f873994d#7903dc2a-228d-44b0-b7c8-a13a6c9b46bd",
+ "Items": [
+ {
+ "BackupId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 09.00.55.zip",
+ "BackupType": "Full",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "261",
+ "CreationTimeUtc": "2018-01-01T09:00:55Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "7903dc2a-228d-44b0-b7c8-a13a6c9b46bd",
+ "BackupChainId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 17.01.02.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "446",
+ "CreationTimeUtc": "2018-01-01T17:01:02Z",
+ "FailureError": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupList-4.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupList-4.json
new file mode 100644
index 000000000000..7420d61aca49
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceBackupList-4.json
@@ -0,0 +1,64 @@
+{
+ "operationId": "GetServiceBackupList",
+ "description": "This example shows how to get list of service backups. The number of results in a page are limited to maximum of two using the MaxResult parameter. This example uses the ContinuationToken parameter. The value of this parameter is provided from the previous query; in this case the example shown above. The response contains the remaining results and an empty ContinuationToken. The empty ContinuationToken indicates that additional results are not available.",
+ "parameters": {
+ "api-version": "6.4",
+ "serviceId": "CalcApp/CalcService",
+ "MaxResults": 2,
+ "ContinuationToken": "fabric:/CalcApp/CalcService#1daae3f5-7fd6-42e9-b1ba-8c05f873994d#7903dc2a-228d-44b0-b7c8-a13a6c9b46bd"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "BackupId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "BackupChainId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "81645ec7-d260-4c59-9533-8f129bde8e83"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\81645ec7-d260-4c59-9533-8f129bde8e83\\2018-01-01 09.01.02.zip",
+ "BackupType": "Full",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "161",
+ "CreationTimeUtc": "2018-01-01T09:01:02Z",
+ "FailureError": null
+ },
+ {
+ "BackupId": "d55a2d98-258b-4a34-8fe5-2063e81af9dc",
+ "BackupChainId": "0ff4fdbe-131c-4dfb-8249-7b4029ddc014",
+ "ApplicationName": "fabric:/CalcApp",
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceName": "fabric:/CalcApp/CalcService",
+ "PartitionInformation": {
+ "LowKey": "-9223372036854775808",
+ "HighKey": "9223372036854775807",
+ "ServicePartitionKind": "Int64Range",
+ "Id": "81645ec7-d260-4c59-9533-8f129bde8e83"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\81645ec7-d260-4c59-9533-8f129bde8e83\\2018-01-01 17.00.34.zip",
+ "BackupType": "Incremental",
+ "EpochOfLastBackupRecord": {
+ "DataLossVersion": "131462452931584510",
+ "ConfigurationVersion": "8589934592"
+ },
+ "LsnOfLastBackupRecord": "246",
+ "CreationTimeUtc": "2018-01-01T17:00:34Z",
+ "FailureError": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceEventList.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceEventList.json
new file mode 100644
index 000000000000..fdaa115873cd
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceEventList.json
@@ -0,0 +1,34 @@
+{
+ "operationId": "GetServiceEventList",
+ "description": "This example shows how to get all service-related events during a certain time window.",
+ "parameters": {
+ "serviceId": "app1~svc1",
+ "api-version": "6.4",
+ "StartTimeUtc": "2018-04-03T18:00:00Z",
+ "EndTimeUtc": "2018-04-04T18:00:00Z"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "Kind": "ServiceCreated",
+ "ServiceTypeName": "Svc1Type",
+ "ApplicationName": "fabric:/app1",
+ "ApplicationTypeName": "App1Type",
+ "ServiceInstance": 131672605579916062,
+ "IsStateful": true,
+ "PartitionCount": 2,
+ "TargetReplicaSetSize": 3,
+ "MinReplicaSetSize": 2,
+ "ServicePackageVersion": "1.0:1.0",
+ "PartitionId": "bd936249-183d-4e29-94ab-2e198e4e2e87",
+ "ServiceId": "app1/svc1",
+ "EventInstanceId": "8ba26506-4a93-4b8c-ae14-29a2841b3003",
+ "TimeStamp": "2018-04-03T20:22:38.0560496Z",
+ "HasCorrelatedEvents": false
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceTypeInfoByName-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceTypeInfoByName-1.json
new file mode 100644
index 000000000000..4340954856fe
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceTypeInfoByName-1.json
@@ -0,0 +1,36 @@
+{
+ "operationId": "GetServiceTypeInfoByName",
+ "description": "This example shows how to get information about a specific service type. A 204 response is returned if the specified service type is not found in the cluster.",
+ "parameters": {
+ "api-version": "6.0",
+ "applicationTypeName": "Application2Type",
+ "ApplicationTypeVersion": "1.0.0",
+ "serviceTypeName": "Actor1ActorServiceType"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ServiceTypeDescription": {
+ "IsStateful": true,
+ "ServiceTypeName": "Actor1ActorServiceType",
+ "PlacementConstraints": "",
+ "HasPersistedState": true,
+ "Kind": "Stateful",
+ "Extensions": [
+ {
+ "Key": "__GeneratedServiceType__",
+ "Value": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n "
+ }
+ ],
+ "LoadMetrics": [],
+ "ServicePlacementPolicies": []
+ },
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceManifestName": "Actor1Pkg",
+ "IsServiceGroup": false
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceTypeInfoList-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceTypeInfoList-1.json
new file mode 100644
index 000000000000..a4481bfa08c0
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServiceTypeInfoList-1.json
@@ -0,0 +1,36 @@
+{
+ "operationId": "GetServiceTypeInfoList",
+ "description": "This example shows how to get information about service types that are supported by a provisioned application type in a Service Fabric cluster.",
+ "parameters": {
+ "api-version": "6.0",
+ "applicationTypeName": "Application2Type",
+ "ApplicationTypeVersion": "1.0.0"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "ServiceTypeDescription": {
+ "IsStateful": true,
+ "ServiceTypeName": "Actor1ActorServiceType",
+ "PlacementConstraints": "",
+ "HasPersistedState": true,
+ "Kind": "Stateful",
+ "Extensions": [
+ {
+ "Key": "__GeneratedServiceType__",
+ "Value": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n "
+ }
+ ],
+ "LoadMetrics": [],
+ "ServicePlacementPolicies": []
+ },
+ "ServiceManifestVersion": "1.0.0",
+ "ServiceManifestName": "Actor1Pkg",
+ "IsServiceGroup": false
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServicesEventList.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServicesEventList.json
new file mode 100644
index 000000000000..2d5863180a5a
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetServicesEventList.json
@@ -0,0 +1,50 @@
+{
+ "operationId": "GetServicesEventList",
+ "description": "This example shows how to get all services-related events during a certain time window.",
+ "parameters": {
+ "api-version": "6.4",
+ "StartTimeUtc": "2018-04-03T18:00:00Z",
+ "EndTimeUtc": "2018-04-04T18:00:00Z"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "Kind": "ServiceCreated",
+ "ServiceTypeName": "Svc1Type",
+ "ApplicationName": "fabric:/app1",
+ "ApplicationTypeName": "App1Type",
+ "ServiceInstance": 131672605579916062,
+ "IsStateful": true,
+ "PartitionCount": 2,
+ "TargetReplicaSetSize": 3,
+ "MinReplicaSetSize": 2,
+ "ServicePackageVersion": "1.0:1.0",
+ "PartitionId": "bd936249-183d-4e29-94ab-2e198e4e2e87",
+ "ServiceId": "app1/svc1",
+ "EventInstanceId": "8ba26506-4a93-4b8c-ae14-29a2841b3003",
+ "TimeStamp": "2018-04-03T20:22:38.0560496Z",
+ "HasCorrelatedEvents": false
+ },
+ {
+ "Kind": "ServiceCreated",
+ "ServiceTypeName": "Svc2Type",
+ "ApplicationName": "fabric:/app1",
+ "ApplicationTypeName": "App1Type",
+ "ServiceInstance": 131672605579916062,
+ "IsStateful": true,
+ "PartitionCount": 2,
+ "TargetReplicaSetSize": 3,
+ "MinReplicaSetSize": 2,
+ "ServicePackageVersion": "1.0:1.0",
+ "PartitionId": "87413d64-0134-4b23-a439-c2692c4e3ec3",
+ "ServiceId": "app1/svc2",
+ "EventInstanceId": "03246d3b-77f5-4ca2-b065-7b8671711318",
+ "TimeStamp": "2018-04-03T20:22:38.056197Z",
+ "HasCorrelatedEvents": false
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetSubNameInfoList-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetSubNameInfoList-1.json
new file mode 100644
index 000000000000..282319140d86
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetSubNameInfoList-1.json
@@ -0,0 +1,21 @@
+{
+ "operationId": "GetSubNameInfoList",
+ "description": "This example shows how to get information about all sub names of a given Service Fabric name.",
+ "parameters": {
+ "api-version": "6.0",
+ "nameId": "samples"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "IsConsistent": true,
+ "SubNames": [
+ "fabric:/samples/CalculatorApp",
+ "fabric:/samples/mynames"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetSubNameInfoList-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetSubNameInfoList-2.json
new file mode 100644
index 000000000000..15391854f370
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetSubNameInfoList-2.json
@@ -0,0 +1,27 @@
+{
+ "operationId": "GetSubNameInfoList",
+ "description": "This example shows how to recursively get information about all child sub names of a given Service Fabric name.",
+ "parameters": {
+ "api-version": "6.0",
+ "nameId": "samples",
+ "Recursive": true
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "IsConsistent": true,
+ "SubNames": [
+ "fabric:/samples/apps",
+ "fabric:/samples/data",
+ "fabric:/samples/CalculatorApp",
+ "fabric:/samples/CalculatorApp/CalculatorService",
+ "fabric:/samples/CalculatorApp/CalculatorService/Name-1",
+ "fabric:/samples/CalculatorApp/CalculatorService/Name-2",
+ "fabric:/samples/mynames/name-1"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetSubNameInfoList-3.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetSubNameInfoList-3.json
new file mode 100644
index 000000000000..bf07c9c58bc4
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetSubNameInfoList-3.json
@@ -0,0 +1,23 @@
+{
+ "operationId": "GetSubNameInfoList",
+ "description": "This example shows how to page through the information about sub names under a given Service Fabric name using ContinuationToken parameter. The value of this parameter is provided from the previous query, in this case the example shown above. The response contains the remaining two results and an empty ContinuationToken. The empty ContinuationToken indicates that additional results are not available.",
+ "parameters": {
+ "api-version": "6.0",
+ "nameId": "samples",
+ "Recursive": true,
+ "ContinuationToken": "fabric:/samples/apps/PersistentQueueApp$131439231986491349"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "IsConsistent": true,
+ "SubNames": [
+ "fabric:/samples/apps/VolatileQueueApp",
+ "fabric:/samples/apps/NotepadApp"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetUploadSessionById.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetUploadSessionById.json
new file mode 100644
index 000000000000..c565a13cfcbc
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetUploadSessionById.json
@@ -0,0 +1,33 @@
+{
+ "operationId": "GetImageStoreUploadSessionById",
+ "description": "This example shows how to get image store upload session by a given ID.",
+ "parameters": {
+ "api-version": "6.0",
+ "session-id": "4a2340e8-d8d8-497c-95fe-cdaa1052f33b"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "UploadSessions": [
+ {
+ "StoreRelativePath": "SwaggerTest\\Common.dll",
+ "SessionId": "4a2340e8-d8d8-497c-95fe-cdaa1052f33b",
+ "FileSize": "2097152",
+ "ModifiedDate": "2017-09-28T17:06:37.260Z",
+ "ExpectedRanges": [
+ {
+ "StartPosition": "0",
+ "EndPosition": "402128"
+ },
+ {
+ "StartPosition": "730105",
+ "EndPosition": "2097151"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetUploadSessionByPath.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetUploadSessionByPath.json
new file mode 100644
index 000000000000..8dc66b6d107d
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/GetUploadSessionByPath.json
@@ -0,0 +1,49 @@
+{
+ "operationId": "GetImageStoreUploadSessionByPath",
+ "description": "This example shows how to get image store upload session by a given relative path.",
+ "parameters": {
+ "api-version": "6.0",
+ "contentPath": "SwaggerTest\\Common.dll"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "UploadSessions": [
+ {
+ "StoreRelativePath": "SwaggerTest\\Common.dll",
+ "SessionId": "2032ac6c-a348-4594-86da-dab0f2bb1ae1",
+ "FileSize": "2097152",
+ "ModifiedDate": "2017-09-28T17:28:11.627Z",
+ "ExpectedRanges": [
+ {
+ "StartPosition": "0",
+ "EndPosition": "207615"
+ },
+ {
+ "StartPosition": "626977",
+ "EndPosition": "2097151"
+ }
+ ]
+ },
+ {
+ "StoreRelativePath": "SwaggerTest\\Common.dll",
+ "SessionId": "fb2da2b2-7cb4-45d2-a2e6-c4888d205bc5",
+ "FileSize": "2097152",
+ "ModifiedDate": "2017-09-28T17:28:11.643Z",
+ "ExpectedRanges": [
+ {
+ "StartPosition": "0",
+ "EndPosition": "616947"
+ },
+ {
+ "StartPosition": "1087529",
+ "EndPosition": "2097151"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/InvokeContainerApi.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/InvokeContainerApi.json
new file mode 100644
index 000000000000..bfe285758eec
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/InvokeContainerApi.json
@@ -0,0 +1,27 @@
+{
+ "operationId": "InvokeContainerApi",
+ "description": "This example shows how to call container API with HTTP GET for a code package deployed on a node.",
+ "parameters": {
+ "api-version": "6.2",
+ "nodeName": "Node01",
+ "applicationId": "samples/winnodejs",
+ "ServiceManifestName": "NodeServicePackage",
+ "CodePackageName": "NodeService.Code",
+ "CodePackageInstanceId": "131668159770315380",
+ "ContainerApiRequestBody": {
+ "UriPath": "/containers/{id}/logs?stdout=true&stderr=true"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContainerApiResult": {
+ "Status": 200,
+ "Content-Type": "text/plain; charset=utf-8",
+ "Body": "vEthernet (Container NIC ec5c19b2) 172.17.201.44\n"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/InvokeContainerApi_Post.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/InvokeContainerApi_Post.json
new file mode 100644
index 000000000000..0042fd341de0
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/InvokeContainerApi_Post.json
@@ -0,0 +1,29 @@
+{
+ "operationId": "InvokeContainerApi",
+ "description": "This example shows how to call container API with HTTP POST for a code package deployed on a node.",
+ "parameters": {
+ "api-version": "6.2",
+ "nodeName": "N0020",
+ "applicationId": "samples/nodejs1",
+ "ServiceManifestName": "NodeOnSF",
+ "CodePackageName": "Code",
+ "CodePackageInstanceId": "131673596679688285",
+ "ContainerApiRequestBody": {
+ "HttpVerb": "POST",
+ "UriPath": "/containers/{id}/update",
+ "Body": "{ \"CpuShares\": 512}"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContainerApiResult": {
+ "Status": 200,
+ "Content-Type": "application/json",
+ "Body": "{\"Warnings\":null}\n"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/PutProperty-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/PutProperty-1.json
new file mode 100644
index 000000000000..8eee209e7c7b
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/PutProperty-1.json
@@ -0,0 +1,25 @@
+{
+ "operationId": "PutProperty",
+ "description": "This example shows how to create or update a Service Fabric property under a given name.",
+ "parameters": {
+ "api-version": "6.0",
+ "nameId": "samples/apps/CalculatorApp",
+ "PropertyDescription": {
+ "PropertyName": "AppData",
+ "Value": {
+ "Kind": "Binary",
+ "Data": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/PutProperty-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/PutProperty-2.json
new file mode 100644
index 000000000000..5db6a9ad77f7
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/PutProperty-2.json
@@ -0,0 +1,19 @@
+{
+ "operationId": "PutProperty",
+ "description": "This example shows how to create or update a Service Fabric property under a given name with a custom type.",
+ "parameters": {
+ "api-version": "6.0",
+ "nameId": "samples/apps/CalculatorApp",
+ "PropertyDescription": {
+ "PropertyName": "AppData",
+ "Value": {
+ "Kind": "String",
+ "Data": "1+2=3"
+ },
+ "CustomTypeId": "EquationType"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/Replicas/CodePackages/get_logs.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/Replicas/CodePackages/get_logs.json
new file mode 100644
index 000000000000..5f17ef376d9d
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/Replicas/CodePackages/get_logs.json
@@ -0,0 +1,18 @@
+{
+ "operationId": "MeshCodePackage_GetContainerLogs",
+ "description": "This example shows how to get logs from the container of service replica. If the container exists, the logs are returned with an OK (200) status code, otherwise an error is returned with an appropriate status code.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "applicationResourceName": "sbzDocApp",
+ "serviceResourceName": "sbzDocService",
+ "replicaName": "0",
+ "codePackageName": "sbzDocCode"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "Content": " * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)\n * Downloading style https://assets-cdn.github.com/assets/frameworks-8f281eb0a8d2308ceb36e714ba3c3aec.css\n * Downloading style https://assets-cdn.github.com/assets/github-a698da0d53574b056d3c79ac732d4a70.css\n * Downloading style https://assets-cdn.github.com/assets/site-83dc1f7ebc9c7461fe1eab799b56c4c4.css\n * Cached all downloads in /root/.grip/cache-4.5.2\n167.220.0.83 - - [06/Apr/2018 07:16:02] \"GET / HTTP/1.1\" 200 -\n167.220.0.83 - - [06/Apr/2018 07:16:02] \"GET /__/grip/asset/frameworks-8f281eb0a8d2308ceb36e714ba3c3aec.css HTTP/1.1\" 200 -\n167.220.0.83 - - [06/Apr/2018 07:16:02] \"GET /__/grip/asset/site-83dc1f7ebc9c7461fe1eab799b56c4c4.css HTTP/1.1\" 200 -\n167.220.0.83 - - [06/Apr/2018 07:16:02] \"GET /__/grip/asset/github-a698da0d53574b056d3c79ac732d4a70.css HTTP/1.1\" 200 -\n167.220.0.83 - - [06/Apr/2018 07:16:02] \"GET /__/grip/static/octicons/octicons.css HTTP/1.1\" 200 -\n167.220.0.83 - - [06/Apr/2018 07:16:03] \"GET /__/grip/static/octicons/octicons.woff2?ef21c39f0ca9b1b5116e5eb7ac5eabe6 HTTP/1.1\" 200 -\n167.220.0.83 - - [06/Apr/2018 07:16:03] \"GET /__/grip/static/favicon.ico HTTP/1.1\" 200 -\n167.220.0.83 - - [06/Apr/2018 07:16:05] \"GET /seabreeze-index.md HTTP/1.1\" 200 -\n167.220.0.83 - - [06/Apr/2018 07:16:09] \"GET /seabreeze-api-application_get.md HTTP/1.1\" 200 -\n"
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/Replicas/get.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/Replicas/get.json
new file mode 100644
index 000000000000..bb373e90c328
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/Replicas/get.json
@@ -0,0 +1,57 @@
+{
+ "operationId": "MeshServiceReplica_Get",
+ "description": "This example shows how to get information about given replica of a service. If the replica exists, its description is returned along with an OK (200) status code. If the replica does not exist, an error is returned with an appropriate status code.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "applicationResourceName": "sampleApplication",
+ "serviceResourceName": "helloWorldService",
+ "replicaName": "0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "osType": "Linux",
+ "codePackages": [
+ {
+ "name": "helloWorldCode",
+ "image": "seabreeze/sbz-helloworld:1.0-alpine",
+ "endpoints": [
+ {
+ "name": "helloWorldListener",
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "memoryInGB": 1,
+ "cpu": 1
+ }
+ },
+ "instanceView": {
+ "restartCount": 1,
+ "currentState": {
+ "state": "Running",
+ "exitCode": "0"
+ },
+ "previousState": {
+ "state": "NotSpecified",
+ "exitCode": "0"
+ }
+ }
+ }
+ ],
+ "networkRefs": [
+ {
+ "name": "sampleNetwork",
+ "endpointRefs": [
+ {
+ "name": "helloWorldListener"
+ }
+ ]
+ }
+ ],
+ "replicaName": "0"
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/Replicas/list.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/Replicas/list.json
new file mode 100644
index 000000000000..1fe9b30fb836
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/Replicas/list.json
@@ -0,0 +1,105 @@
+{
+ "operationId": "MeshServiceReplica_List",
+ "description": "This example shows how to list replicas of a service resources for a given application.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "applicationResourceName": "sampleApplication",
+ "serviceResourceName": "helloWorldService"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "osType": "Linux",
+ "codePackages": [
+ {
+ "name": "helloWorldCode",
+ "image": "seabreeze/sbz-helloworld:1.0-alpine",
+ "endpoints": [
+ {
+ "name": "helloWorldListener",
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "memoryInGB": 1,
+ "cpu": 1
+ }
+ },
+ "instanceView": {
+ "restartCount": 1,
+ "currentState": {
+ "state": "Running",
+ "exitCode": "0"
+ },
+ "previousState": {
+ "state": "NotSpecified",
+ "exitCode": "0"
+ }
+ }
+ }
+ ],
+ "networkRefs": [
+ {
+ "name": "sampleNetwork",
+ "endpointRefs": [
+ {
+ "name": "helloWorldListener"
+ }
+ ]
+ }
+ ],
+ "replicaName": "0"
+ },
+ {
+ "osType": "Linux",
+ "codePackages": [
+ {
+ "name": "helloWorldCode",
+ "image": "seabreeze/sbz-helloworld:1.0-alpine",
+ "endpoints": [
+ {
+ "name": "helloWorldListener",
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "memoryInGB": 1,
+ "cpu": 1
+ }
+ },
+ "instanceView": {
+ "restartCount": 1,
+ "currentState": {
+ "state": "Running",
+ "exitCode": "0"
+ },
+ "previousState": {
+ "state": "NotSpecified",
+ "exitCode": "0"
+ }
+ }
+ }
+ ],
+ "networkRefs": [
+ {
+ "name": "sampleNetwork",
+ "endpointRefs": [
+ {
+ "name": "helloWorldListener"
+ }
+ ]
+ }
+ ],
+ "replicaName": "1"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/get.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/get.json
new file mode 100644
index 000000000000..45224d3a66f8
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/get.json
@@ -0,0 +1,51 @@
+{
+ "operationId": "MeshService_Get",
+ "description": "This example shows how to get a service resource for a given application. If the service resource exists, its description is returned along with an OK (200) status code. If the service resource does not exist, an error is returned with an appropriate status code.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "applicationResourceName": "sampleApplication",
+ "serviceResourceName": "helloWorldService"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "helloWorldService",
+ "properties": {
+ "osType": "Linux",
+ "codePackages": [
+ {
+ "name": "helloWorldCode",
+ "image": "seabreeze/sbz-helloworld:1.0-alpine",
+ "endpoints": [
+ {
+ "name": "helloWorldListener",
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "memoryInGB": 1,
+ "cpu": 1
+ }
+ }
+ }
+ ],
+ "networkRefs": [
+ {
+ "name": "sampleNetwork",
+ "endpointRefs": [
+ {
+ "name": "helloWorldListener"
+ }
+ ]
+ }
+ ],
+ "description": "SeaBreeze Hello World Service.",
+ "replicaCount": 1,
+ "healthState": "Ok",
+ "status": "Ready"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/list.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/list.json
new file mode 100644
index 000000000000..3df5e396c764
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/Services/list.json
@@ -0,0 +1,56 @@
+{
+ "operationId": "MeshService_List",
+ "description": "This example shows how to list all service resources for a given application.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "applicationResourceName": "sampleApplication"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "name": "helloWorldService",
+ "properties": {
+ "osType": "Linux",
+ "codePackages": [
+ {
+ "name": "helloWorldCode",
+ "image": "seabreeze/sbz-helloworld:1.0-alpine",
+ "endpoints": [
+ {
+ "name": "helloWorldListener",
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "memoryInGB": 1,
+ "cpu": 1
+ }
+ }
+ }
+ ],
+ "networkRefs": [
+ {
+ "name": "sampleNetwork",
+ "endpointRefs": [
+ {
+ "name": "helloWorldListener"
+ }
+ ]
+ }
+ ],
+ "description": "SeaBreeze Hello World Service.",
+ "replicaCount": 1,
+ "healthState": "Ok",
+ "status": "Ready"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/create_update.autoscale.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/create_update.autoscale.json
new file mode 100644
index 000000000000..16b621f6a572
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/create_update.autoscale.json
@@ -0,0 +1,102 @@
+{
+ "operationId": "MeshApplication_CreateOrUpdate",
+ "description": "This example shows how to create or update a application resource with services that autoscale based on the policies.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "applicationResourceName": "sampleApplication",
+ "applicationResourceDescription": {
+ "name": "sampleApplication",
+ "properties": {
+ "description": "Service Fabric Mesh sample application.",
+ "services": [
+ {
+ "name": "helloWorldService",
+ "properties": {
+ "description": "SeaBreeze Hello World Service.",
+ "osType": "Linux",
+ "codePackages": [
+ {
+ "name": "helloWorldCode",
+ "image": "seabreeze/sbz-helloworld:1.0-alpine",
+ "endpoints": [
+ {
+ "name": "helloWorldListener",
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "memoryInGB": 1,
+ "cpu": 1
+ }
+ }
+ }
+ ],
+ "replicaCount": 1,
+ "autoScalingPolicies": [
+ {
+ "name": "MyAutoScaleRule",
+ "trigger": {
+ "kind": "AverageLoad",
+ "metric": {
+ "kind": "Resource",
+ "name": "cpu"
+ },
+ "lowerLoadThreshold": 0.3,
+ "upperLoadThreshold": 0.8,
+ "scaleIntervalInSeconds": 3600
+ },
+ "mechanism": {
+ "kind": "AddRemoveReplica",
+ "minCount": 1,
+ "maxCount": 4,
+ "scaleIncrement": 1
+ }
+ }
+ ],
+ "networkRefs": [
+ {
+ "name": "sampleNetwork",
+ "endpointRefs": [
+ {
+ "name": "helloWorldListener"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sampleApplication",
+ "properties": {
+ "description": "Service Fabric Mesh sample application.",
+ "serviceNames": [
+ "helloWorldService"
+ ],
+ "healthState": "Ok",
+ "status": "Ready"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "sampleApplication",
+ "properties": {
+ "description": "Service Fabric Mesh sample application.",
+ "serviceNames": [
+ "helloWorldService"
+ ],
+ "healthState": "Unknown",
+ "status": "Creating"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/create_update.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/create_update.json
new file mode 100644
index 000000000000..8066c046fd00
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/create_update.json
@@ -0,0 +1,139 @@
+{
+ "operationId": "MeshApplication_CreateOrUpdate",
+ "description": "This example shows how to create or update a application resource.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "applicationResourceName": "sampleApplication",
+ "applicationResourceDescription": {
+ "name": "sampleApplication",
+ "properties": {
+ "description": "Service Fabric Mesh sample application.",
+ "services": [
+ {
+ "name": "helloWorldService",
+ "properties": {
+ "description": "SeaBreeze Hello World Service.",
+ "identityRefs": [
+ {
+ "name": "ServiceIdentity1",
+ "identityRef": "/subscriptions/c1089427-83d3-4286-9f35-5af546a6eb67/resourcegroups/myGroup/providers/Microsoft.Identity/Identities/identity1"
+ },
+ {
+ "name": "ServiceIdentity2",
+ "identityRef": "SystemAssigned"
+ }
+ ],
+ "osType": "Linux",
+ "codePackages": [
+ {
+ "name": "helloWorldCode",
+ "image": "seabreeze/sbz-helloworld:1.0-alpine",
+ "endpoints": [
+ {
+ "name": "helloWorldListener",
+ "port": 80
+ }
+ ],
+ "resources": {
+ "requests": {
+ "memoryInGB": 1,
+ "cpu": 1
+ }
+ }
+ }
+ ],
+ "replicaCount": 1,
+ "networkRefs": [
+ {
+ "name": "sampleNetwork",
+ "endpointRefs": [
+ {
+ "name": "helloWorldListener"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ "identity": {
+ "type": "SystemAssigned,UserAssigned",
+ "tokenServiceEndpoint": "http://tokenservice",
+ "tenantId": "D47A6CD5-E870-4ADF-8C00-1C0B758BC567",
+ "principalId": "84DFA616-1F44-4D63-BC08-43B5F758D16C",
+ "userAssignedIdentities": {
+ "/subscriptions/c1089427-83d3-4286-9f35-5af546a6eb67/resourcegroups/myGroup/providers/Microsoft.Identity/Identities/identity1": {
+ "clientId": "5287A675-78D2-4E49-BF09-D3BFE02493D4",
+ "principalId": "7D6F0B1C-AF9F-4E21-9B3C-AE22F4D926F8"
+ },
+ "/subscriptions/c1089427-83d3-4286-9f35-5af546a6eb67/resourcegroups/myGroup/providers/Microsoft.Identity/Identities/identity2": {
+ "clientId": "AF1509EC-9B5F-43CC-8A6F-FA7CC84AEBE1",
+ "principalId": "31144ACF-46F4-4639-A711-A257229EE0C0"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sampleApplication",
+ "properties": {
+ "description": "Service Fabric Mesh sample application.",
+ "serviceNames": [
+ "helloWorldService"
+ ],
+ "healthState": "Ok",
+ "status": "Ready"
+ },
+ "identity": {
+ "type": "SystemAssigned,UserAssigned",
+ "tokenServiceEndpoint": "http://tokenservice",
+ "tenantId": "D47A6CD5-E870-4ADF-8C00-1C0B758BC567",
+ "principalId": "84DFA616-1F44-4D63-BC08-43B5F758D16C",
+ "userAssignedIdentities": {
+ "/subscriptions/c1089427-83d3-4286-9f35-5af546a6eb67/resourcegroups/myGroup/providers/Microsoft.Identity/Identities/identity1": {
+ "clientId": "5287A675-78D2-4E49-BF09-D3BFE02493D4",
+ "principalId": "7D6F0B1C-AF9F-4E21-9B3C-AE22F4D926F8"
+ },
+ "/subscriptions/c1089427-83d3-4286-9f35-5af546a6eb67/resourcegroups/myGroup/providers/Microsoft.Identity/Identities/identity2": {
+ "clientId": "AF1509EC-9B5F-43CC-8A6F-FA7CC84AEBE1",
+ "principalId": "31144ACF-46F4-4639-A711-A257229EE0C0"
+ }
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "sampleApplication",
+ "properties": {
+ "description": "Service Fabric Mesh sample application.",
+ "serviceNames": [
+ "helloWorldService"
+ ],
+ "healthState": "Unknown",
+ "status": "Creating"
+ },
+ "identity": {
+ "type": "SystemAssigned,UserAssigned",
+ "tokenServiceEndpoint": "http://tokenservice",
+ "tenantId": "D47A6CD5-E870-4ADF-8C00-1C0B758BC567",
+ "principalId": "84DFA616-1F44-4D63-BC08-43B5F758D16C",
+ "userAssignedIdentities": {
+ "/subscriptions/c1089427-83d3-4286-9f35-5af546a6eb67/resourcegroups/myGroup/providers/Microsoft.Identity/Identities/identity1": {
+ "clientId": "5287A675-78D2-4E49-BF09-D3BFE02493D4",
+ "principalId": "7D6F0B1C-AF9F-4E21-9B3C-AE22F4D926F8"
+ },
+ "/subscriptions/c1089427-83d3-4286-9f35-5af546a6eb67/resourcegroups/myGroup/providers/Microsoft.Identity/Identities/identity2": {
+ "clientId": "AF1509EC-9B5F-43CC-8A6F-FA7CC84AEBE1",
+ "principalId": "31144ACF-46F4-4639-A711-A257229EE0C0"
+ }
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/delete.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/delete.json
new file mode 100644
index 000000000000..b51511b0865d
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/delete.json
@@ -0,0 +1,13 @@
+{
+ "operationId": "MeshApplication_Delete",
+ "description": "This example shows how to delete an existing application resource. If the application resource exists and is deleted successfully, an empty response with 200 status code is returned. If the application resource does not exist, an empty response with 204 status code is returned.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "applicationResourceName": "sampleApplication"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/get.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/get.json
new file mode 100644
index 000000000000..208ccd280bbd
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/get.json
@@ -0,0 +1,39 @@
+{
+ "operationId": "MeshApplication_Get",
+ "description": "This example shows how to get a application resource. If the application resource exists, its description is returned along with an OK (200) status code. If the application resource does not exist, an error is returned with an appropriate status code.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "applicationResourceName": "sampleApplication"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sampleApplication",
+ "properties": {
+ "description": "Service Fabric Mesh sample application.",
+ "serviceNames": [
+ "helloWorldService"
+ ],
+ "healthState": "Ok",
+ "status": "Ready"
+ },
+ "identity": {
+ "type": "SystemAssigned,UserAssigned",
+ "tokenServiceEndpoint": "http://tokenservice",
+ "tenantId": "D47A6CD5-E870-4ADF-8C00-1C0B758BC567",
+ "principalId": "84DFA616-1F44-4D63-BC08-43B5F758D16C",
+ "userAssignedIdentities": {
+ "/subscriptions/c1089427-83d3-4286-9f35-5af546a6eb67/resourcegroups/myGroup/providers/Microsoft.Identity/Identities/identity1": {
+ "clientId": "5287A675-78D2-4E49-BF09-D3BFE02493D4",
+ "principalId": "7D6F0B1C-AF9F-4E21-9B3C-AE22F4D926F8"
+ },
+ "/subscriptions/c1089427-83d3-4286-9f35-5af546a6eb67/resourcegroups/myGroup/providers/Microsoft.Identity/Identities/identity2": {
+ "clientId": "AF1509EC-9B5F-43CC-8A6F-FA7CC84AEBE1",
+ "principalId": "31144ACF-46F4-4639-A711-A257229EE0C0"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/get_upgrade.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/get_upgrade.json
new file mode 100644
index 000000000000..61be95fa11b7
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/get_upgrade.json
@@ -0,0 +1,30 @@
+{
+ "operationId": "MeshApplication_GetUpgradeProgress",
+ "description": "This example shows how to get a application resource upgrade. If the application resource exists, its description is returned along with an OK (200) status code. If the application resource does not exist, an error is returned with an appropriate status code.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "applicationResourceName": "sampleApplication"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "Name": "sampleApplication",
+ "TargetApplicationTypeVersion": "v1",
+ "StartTimestampUtc": "0001-01-01T00:00:00.000Z",
+ "UpgradeState": "RollingForward",
+ "PercentCompleted": "0",
+ "ServiceUpgradeProgress": [
+ {
+ "ServiceName": "helloWorldService",
+ "CompletedReplicaCount": "0",
+ "PendingReplicaCount": "3"
+ }
+ ],
+ "RollingUpgradeMode": "Monitored",
+ "UpgradeDuration": "PT0H0M2.31669S",
+ "ApplicationUpgradeStatusDetails": "Deployment upgrading from version: v0 to version: v1.",
+ "UpgradeReplicaSetCheckTimeoutInSeconds": 4294967295
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/list.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/list.json
new file mode 100644
index 000000000000..2f34f40e3488
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Applications/list.json
@@ -0,0 +1,44 @@
+{
+ "operationId": "MeshApplication_List",
+ "description": "This example shows how to list all application resources.",
+ "parameters": {
+ "api-version": "6.4-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "name": "sampleApplication",
+ "properties": {
+ "description": "Service Fabric Mesh sample application.",
+ "serviceNames": [
+ "helloWorldService"
+ ],
+ "healthState": "Ok",
+ "status": "Ready"
+ },
+ "identity": {
+ "type": "SystemAssigned,UserAssigned",
+ "tokenServiceEndpoint": "http://tokenservice",
+ "tenantId": "D47A6CD5-E870-4ADF-8C00-1C0B758BC567",
+ "principalId": "84DFA616-1F44-4D63-BC08-43B5F758D16C",
+ "userAssignedIdentities": {
+ "/subscriptions/c1089427-83d3-4286-9f35-5af546a6eb67/resourcegroups/myGroup/providers/Microsoft.Identity/Identities/identity1": {
+ "clientId": "5287A675-78D2-4E49-BF09-D3BFE02493D4",
+ "principalId": "7D6F0B1C-AF9F-4E21-9B3C-AE22F4D926F8"
+ },
+ "/subscriptions/c1089427-83d3-4286-9f35-5af546a6eb67/resourcegroups/myGroup/providers/Microsoft.Identity/Identities/identity2": {
+ "clientId": "AF1509EC-9B5F-43CC-8A6F-FA7CC84AEBE1",
+ "principalId": "31144ACF-46F4-4639-A711-A257229EE0C0"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Gateways/create_update.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Gateways/create_update.json
new file mode 100644
index 000000000000..2ded194ec7cc
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Gateways/create_update.json
@@ -0,0 +1,193 @@
+{
+ "operationId": "MeshGateway_CreateOrUpdate",
+ "description": "This example shows how to create or update a gateway resource.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "gatewayResourceName": "sampleGateway",
+ "gatewayResourceDescription": {
+ "name": "sampleGateway",
+ "properties": {
+ "description": "Service Fabric Mesh sample gateway.",
+ "sourceNetwork": {
+ "name": "Open"
+ },
+ "destinationNetwork": {
+ "name": "helloWorldNetwork"
+ },
+ "tcp": [
+ {
+ "name": "web",
+ "port": 80,
+ "destination": {
+ "applicationName": "helloWorldApp",
+ "serviceName": "helloWorldService",
+ "endpointName": "helloWorldListener"
+ }
+ }
+ ],
+ "http": [
+ {
+ "name": "contosoWebsite",
+ "port": 8081,
+ "hosts": [
+ {
+ "name": "contoso.com",
+ "routes": [
+ {
+ "name": "index",
+ "match": {
+ "path": {
+ "value": "/index",
+ "rewrite": "/",
+ "type": "prefix"
+ },
+ "headers": [
+ {
+ "name": "accept",
+ "value": "application/json",
+ "type": "exact"
+ }
+ ]
+ },
+ "destination": {
+ "applicationName": "httpHelloWorldApp",
+ "serviceName": "indexService",
+ "endpointName": "indexHttpEndpoint"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sampleGateway",
+ "properties": {
+ "description": "Service Fabric Mesh sample gateway.",
+ "sourceNetwork": {
+ "name": "Open"
+ },
+ "destinationNetwork": {
+ "name": "helloWorldNetwork"
+ },
+ "tcp": [
+ {
+ "name": "web",
+ "port": 80,
+ "destination": {
+ "applicationName": "helloWorldApp",
+ "serviceName": "helloWorldService",
+ "endpointName": "helloWorldListener"
+ }
+ }
+ ],
+ "http": [
+ {
+ "name": "contosoWebsite",
+ "port": 8081,
+ "hosts": [
+ {
+ "name": "contoso.com",
+ "routes": [
+ {
+ "name": "index",
+ "match": {
+ "path": {
+ "value": "/index",
+ "rewrite": "/",
+ "type": "prefix"
+ },
+ "headers": [
+ {
+ "name": "accept",
+ "value": "application/json",
+ "type": "exact"
+ }
+ ]
+ },
+ "destination": {
+ "applicationName": "httpHelloWorldApp",
+ "serviceName": "indexService",
+ "endpointName": "indexHttpEndpoint"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "status": "Ready",
+ "ipAddress": "192.168.1.1"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "sampleGateway",
+ "properties": {
+ "description": "Service Fabric Mesh Hello World sample gateway.",
+ "sourceNetwork": {
+ "name": "Open"
+ },
+ "destinationNetwork": {
+ "name": "helloWorldNetwork"
+ },
+ "tcp": [
+ {
+ "name": "web",
+ "port": 80,
+ "destination": {
+ "applicationName": "helloWorldApp",
+ "serviceName": "helloWorldService",
+ "endpointName": "helloWorldListener"
+ }
+ }
+ ],
+ "http": [
+ {
+ "name": "contosoWebsite",
+ "port": 8081,
+ "hosts": [
+ {
+ "name": "contoso.com",
+ "routes": [
+ {
+ "name": "index",
+ "match": {
+ "path": {
+ "value": "/index",
+ "rewrite": "/",
+ "type": "prefix"
+ },
+ "headers": [
+ {
+ "name": "accept",
+ "value": "application/json",
+ "type": "exact"
+ }
+ ]
+ },
+ "destination": {
+ "applicationName": "httpHelloWorldApp",
+ "serviceName": "indexService",
+ "endpointName": "indexHttpEndpoint"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "status": "Creating",
+ "ipAddress": ""
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Gateways/delete.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Gateways/delete.json
new file mode 100644
index 000000000000..63ed69926752
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Gateways/delete.json
@@ -0,0 +1,13 @@
+{
+ "operationId": "MeshGateway_Delete",
+ "description": "This example shows how to delete an existing gateway resource. If the gateway resource exists and is deleted successfully, an empty response with 200 status code is returned. If the gateway resource does not exist, an empty response with 204 status code is returned.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "gatewayResourceName": "sampleGateway"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Gateways/get.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Gateways/get.json
new file mode 100644
index 000000000000..c85b652cbc45
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Gateways/get.json
@@ -0,0 +1,72 @@
+{
+ "operationId": "MeshGateway_Get",
+ "description": "This example shows how to get a gateway resource. If the gateway resource exists, its description is returned along with an OK (200) status code. If the gateway resource does not exist, an error is returned with an appropriate status code.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "gatewayResourceName": "sampleGateway"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sampleGateway",
+ "properties": {
+ "description": "Service Fabric Mesh sample gateway.",
+ "sourceNetwork": {
+ "name": "Open"
+ },
+ "destinationNetwork": {
+ "name": "helloWorldNetwork"
+ },
+ "tcp": [
+ {
+ "name": "web",
+ "port": 80,
+ "destination": {
+ "applicationName": "helloWorldApp",
+ "serviceName": "helloWorldService",
+ "endpointName": "helloWorldListener"
+ }
+ }
+ ],
+ "http": [
+ {
+ "name": "contosoWebsite",
+ "port": 8081,
+ "hosts": [
+ {
+ "name": "contoso.com",
+ "routes": [
+ {
+ "name": "index",
+ "match": {
+ "path": {
+ "value": "/index",
+ "rewrite": "/",
+ "type": "prefix"
+ },
+ "headers": [
+ {
+ "name": "accept",
+ "value": "application/json",
+ "type": "exact"
+ }
+ ]
+ },
+ "destination": {
+ "applicationName": "httpHelloWorldApp",
+ "serviceName": "indexService",
+ "endpointName": "indexHttpEndpoint"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "status": "Ready",
+ "ipAddress": "192.168.1.1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Gateways/list.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Gateways/list.json
new file mode 100644
index 000000000000..5ad53b7d580f
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Gateways/list.json
@@ -0,0 +1,77 @@
+{
+ "operationId": "MeshGateway_List",
+ "description": "This example shows how to list all gateway resources.",
+ "parameters": {
+ "api-version": "6.4-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "name": "sampleGateway",
+ "properties": {
+ "description": "Service Fabric Mesh sample gateway.",
+ "sourceNetwork": {
+ "name": "Open"
+ },
+ "destinationNetwork": {
+ "name": "helloWorldNetwork"
+ },
+ "tcp": [
+ {
+ "name": "web",
+ "port": 80,
+ "destination": {
+ "applicationName": "helloWorldApp",
+ "serviceName": "helloWorldService",
+ "endpointName": "helloWorldListener"
+ }
+ }
+ ],
+ "http": [
+ {
+ "name": "contosoWebsite",
+ "port": 8081,
+ "hosts": [
+ {
+ "name": "contoso.com",
+ "routes": [
+ {
+ "name": "index",
+ "match": {
+ "path": {
+ "value": "/index",
+ "rewrite": "/",
+ "type": "prefix"
+ },
+ "headers": [
+ {
+ "name": "accept",
+ "value": "application/json",
+ "type": "exact"
+ }
+ ]
+ },
+ "destination": {
+ "applicationName": "httpHelloWorldApp",
+ "serviceName": "indexService",
+ "endpointName": "indexHttpEndpoint"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "status": "Ready",
+ "ipAddress": "192.168.1.1"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Networks/create_update.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Networks/create_update.json
new file mode 100644
index 000000000000..faf2a3960b48
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Networks/create_update.json
@@ -0,0 +1,41 @@
+{
+ "operationId": "MeshNetwork_CreateOrUpdate",
+ "description": "This example shows how to create or update a network resource.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "networkResourceName": "sampleNetwork",
+ "networkResourceDescription": {
+ "name": "sampleNetwork",
+ "properties": {
+ "kind": "Local",
+ "description": "Service Fabric Mesh sample network.",
+ "networkAddressPrefix": "2.0.0.0/16"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sampleNetwork",
+ "properties": {
+ "kind": "Local",
+ "description": "Service Fabric Mesh sample network.",
+ "networkAddressPrefix": "2.0.0.0/16",
+ "status": "Ready"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "sampleNetwork",
+ "properties": {
+ "kind": "Local",
+ "description": "Service Fabric Mesh sample network.",
+ "networkAddressPrefix": "2.0.0.0/16",
+ "status": "Creating"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Networks/delete.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Networks/delete.json
new file mode 100644
index 000000000000..aea2170b7316
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Networks/delete.json
@@ -0,0 +1,13 @@
+{
+ "operationId": "MeshGateway_Delete",
+ "description": "This example shows how to delete an existing network resource. If the network resource exists and is deleted successfully, an empty response with 200 status code is returned. If the network resource does not exist, an empty response with 204 status code is returned.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "networkResourceName": "sampleNetwork"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Networks/get.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Networks/get.json
new file mode 100644
index 000000000000..1afaee298e7d
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Networks/get.json
@@ -0,0 +1,21 @@
+{
+ "operationId": "MeshGateway_Get",
+ "description": "This example shows how to get a network resource. If the network resource exists, its description is returned along with an OK (200) status code. If the network resource does not exist, an error is returned with an appropriate status code.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "networkResourceName": "sampleNetwork"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sampleNetwork",
+ "properties": {
+ "kind": "Local",
+ "description": "Service Fabric Mesh sample network.",
+ "networkAddressPrefix": "2.0.0.0/16",
+ "status": "Ready"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Networks/list.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Networks/list.json
new file mode 100644
index 000000000000..6cf521d8582c
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Networks/list.json
@@ -0,0 +1,26 @@
+{
+ "operationId": "MeshGateway_List",
+ "description": "This example shows how to list all network resources.",
+ "parameters": {
+ "api-version": "6.4-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "name": "sampleNetwork",
+ "properties": {
+ "kind": "Local",
+ "description": "Service Fabric Mesh sample network.",
+ "networkAddressPrefix": "2.0.0.0/16",
+ "status": "Ready"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/create_update.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/create_update.json
new file mode 100644
index 000000000000..aab0125db5a5
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/create_update.json
@@ -0,0 +1,41 @@
+{
+ "operationId": "MeshSecret_CreateOrUpdate",
+ "description": "This example shows how to create or update a secret resource.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "secretResourceName": "dbConnectionString",
+ "secretResourceDescription": {
+ "name": "dbConnectionString",
+ "properties": {
+ "kind": "inlinedValue",
+ "contentType": "text/plain",
+ "description": "Mongo DB connection string for backend database!"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "dbConnectionString",
+ "properties": {
+ "kind": "inlinedValue",
+ "contentType": "text/plain",
+ "description": "Mongo DB connection string for backend database!",
+ "status": "Ready"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "dbConnectionString",
+ "properties": {
+ "kind": "inlinedValue",
+ "contentType": "text/plain",
+ "description": "Mongo DB connection string for backend database!",
+ "status": "Creating"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/delete.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/delete.json
new file mode 100644
index 000000000000..ffe68fd3ddc7
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/delete.json
@@ -0,0 +1,13 @@
+{
+ "operationId": "MeshSecret_Delete",
+ "description": "This example shows how to delete an existing secret resource. If the secret resource exists and is deleted successfully, an empty response with 200 status code is returned. If the secret resource does not exist, an empty response with 204 status code is returned.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "secretResourceName": "dbConnectionString"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/get.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/get.json
new file mode 100644
index 000000000000..f358e51722dd
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/get.json
@@ -0,0 +1,21 @@
+{
+ "operationId": "MeshSecret_Get",
+ "description": "This example shows how to get a secret resource. If the secret resource exists, its description is returned along with an OK (200) status code. If the secret resource does not exist, an error is returned with an appropriate status code.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "secretResourceName": "dbConnectionString"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "dbConnectionString",
+ "properties": {
+ "kind": "inlinedValue",
+ "contentType": "text/plain",
+ "description": "Mongo DB connection string for backend database!",
+ "status": "Ready"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/list.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/list.json
new file mode 100644
index 000000000000..b46d7f8ff341
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/list.json
@@ -0,0 +1,35 @@
+{
+ "operationId": "MeshSecret_List",
+ "description": "This example shows how to list all secret resources.",
+ "parameters": {
+ "api-version": "6.4-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "name": "dbConnectionString",
+ "properties": {
+ "kind": "inlinedValue",
+ "contentType": "text/plain",
+ "description": "Mongo DB connection string for backend database!",
+ "status": "Ready"
+ }
+ },
+ {
+ "name": "contosoServiceApiKey",
+ "properties": {
+ "kind": "inlinedValue",
+ "contentType": "text/plain",
+ "description": "API Key to access contoso service APIs",
+ "status": "Ready"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/create.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/create.json
new file mode 100644
index 000000000000..8cd0824452fd
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/create.json
@@ -0,0 +1,34 @@
+{
+ "operationId": "MeshSecretValue_AddValue",
+ "description": "This example shows how to add a new value of a secret resource; the secret value is provided as plaintext.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "secretResourceName": "dbConnectionString",
+ "secretValueResourceName": "v1",
+ "secretValueResourceDescription": {
+ "name": "v1",
+ "properties": {
+ "value": "mongodb://contoso123:0Fc3IolnL12312asdfawejunASDF@asdfYXX2t8a97kghVcUzcDv98hawelufhawefafnoQRGwNj2nMPL1Y9qsIr9Srdw==@contoso123.documents.azure.com:10255/mydatabase?ssl=true"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "v1",
+ "properties": {
+ "value": null
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "v1",
+ "properties": {
+ "value": null
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/delete.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/delete.json
new file mode 100644
index 000000000000..ad4b3ef9540b
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/delete.json
@@ -0,0 +1,14 @@
+{
+ "operationId": "MeshSecretValue_Delete",
+ "description": "This example shows how to delete a secret value. If the specified named value exists and is deleted successfully, an empty response with 200 status code is returned. If the specified named value does not exist, an empty response with 204 status code is returned.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "secretResourceName": "dbConnectionString",
+ "secretValueResourceName": "v1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/get.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/get.json
new file mode 100644
index 000000000000..a6491634ef44
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/get.json
@@ -0,0 +1,19 @@
+{
+ "operationId": "MeshSecretValue_Get",
+ "description": "This example shows how to get the specified secret value resource. If the specified named value exists, its information is returned along with status code 200. The information does not include the value. To get the unecnrypted value use ListMeshSecretValue operation. If the specified named value does not exist, an error is returned with an appropriate status code.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "secretResourceName": "dbConnectionString",
+ "secretValueResourceName": "v1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "v1",
+ "properties": {
+ "value": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/list.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/list.json
new file mode 100644
index 000000000000..0610d6d83c48
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/list.json
@@ -0,0 +1,29 @@
+{
+ "operationId": "MeshSecretValue_List",
+ "description": "This example shows how to list names of all values of a secret resource, not including their respective values.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "secretResourceName": "dbConnectionString"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "name": "v1",
+ "properties": {
+ "value": null
+ }
+ },
+ {
+ "name": "v2",
+ "properties": {
+ "value": null
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/list_value.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/list_value.json
new file mode 100644
index 000000000000..b8d09ce2e23c
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Secrets/values/list_value.json
@@ -0,0 +1,16 @@
+{
+ "operationId": "MeshSecretValue_Show",
+ "description": "This example shows how to get the unencrypted value of the secret. If the specified named value resource exists, its unencrypted value is returned along with status code 200. If the specified named value does not exist, an error is returned with an appropriate status code.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "secretResourceName": "dbConnectionString",
+ "secretValueResourceName": "v1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": "mongodb://contoso123:0Fc3IolnL12312asdfawejunASDF@asdfYXX2t8a97kghVcUzcDv98hawelufhawefafnoQRGwNj2nMPL1Y9qsIr9Srdw==@contoso123.documents.azure.com:10255/mydatabase?ssl=true"
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Volumes/create_update.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Volumes/create_update.json
new file mode 100644
index 000000000000..ba2623cdc556
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Volumes/create_update.json
@@ -0,0 +1,53 @@
+{
+ "operationId": "MeshVolume_CreateOrUpdate",
+ "description": "This example shows how to create or update a volume resource.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "volumeResourceName": "sampleVolume",
+ "volumeResourceDescription": {
+ "name": "sampleVolume",
+ "properties": {
+ "description": "Service Fabric Mesh sample volume.",
+ "provider": "SFAzureFile",
+ "azureFileParameters": {
+ "accountName": "sbzdemoaccount",
+ "accountKey": "provide-account-key-here",
+ "shareName": "sharel"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sampleVolume",
+ "properties": {
+ "description": "Service Fabric Mesh sample volume.",
+ "provider": "SFAzureFile",
+ "azureFileParameters": {
+ "accountName": "sbzdemoaccount",
+ "accountKey": null,
+ "shareName": "sharel"
+ },
+ "status": "Ready"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "sampleVolume",
+ "properties": {
+ "description": "Service Fabric Mesh Hello World sample volume.",
+ "provider": "SFAzureFile",
+ "azureFileParameters": {
+ "accountName": "sbzdemoaccount",
+ "accountKey": null,
+ "shareName": "sharel"
+ },
+ "status": "Creating"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Volumes/delete.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Volumes/delete.json
new file mode 100644
index 000000000000..efaa1f836ae1
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Volumes/delete.json
@@ -0,0 +1,13 @@
+{
+ "operationId": "MeshVolume_Delete",
+ "description": "This example shows how to delete an existing volume resource. If the volume resource exists and is deleted successfully, an empty response with 200 status code is returned. If the volume resource does not exist, an empty response with 204 status code is returned.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "volumeResourceName": "sampleVolume"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Volumes/get.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Volumes/get.json
new file mode 100644
index 000000000000..9d08f3b00a82
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Volumes/get.json
@@ -0,0 +1,25 @@
+{
+ "operationId": "MeshVolume_Get",
+ "description": "This example shows how to get a volume resource. If the volume resource exists, its description is returned along with an OK (200) status code. If the volume resource does not exist, an error is returned with an appropriate status code.",
+ "parameters": {
+ "api-version": "6.4-preview",
+ "volumeResourceName": "sampleVolume"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sampleVolume",
+ "properties": {
+ "description": "Service Fabric Mesh sample volume.",
+ "provider": "SFAzureFile",
+ "azureFileParameters": {
+ "accountName": "sbzdemoaccount",
+ "accountKey": null,
+ "shareName": "sharel"
+ },
+ "status": "Ready"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Volumes/list.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Volumes/list.json
new file mode 100644
index 000000000000..3bf83798904b
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/Resources/Volumes/list.json
@@ -0,0 +1,30 @@
+{
+ "operationId": "MeshVolume_List",
+ "description": "This example shows how to list all volume resources.",
+ "parameters": {
+ "api-version": "6.4-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "ContinuationToken": "",
+ "Items": [
+ {
+ "name": "sampleVolume",
+ "properties": {
+ "description": "Service Fabric Mesh sample volume.",
+ "provider": "SFAzureFile",
+ "azureFileParameters": {
+ "accountName": "sbzdemoaccount",
+ "accountKey": null,
+ "shareName": "sharel"
+ },
+ "status": "Ready"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/RestorePartition.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/RestorePartition.json
new file mode 100644
index 000000000000..1e97e0557113
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/RestorePartition.json
@@ -0,0 +1,20 @@
+{
+ "operationId": "RestorePartition",
+ "description": "This example shows how to trigger restore of a partition now by specifying the backup to be used to restore.",
+ "parameters": {
+ "api-version": "6.4",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d",
+ "RestorePartitionDescription": {
+ "BackupId": "3a056ac9-7206-43c3-8424-6f6103003eba",
+ "BackupStorage": {
+ "StorageKind": "AzureBlobStore",
+ "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=",
+ "ContainerName": "BackupContainer"
+ },
+ "BackupLocation": "CalcApp\\CalcService\\1daae3f5-7fd6-42e9-b1ba-8c05f873994d\\2018-01-01 09.00.55.zip"
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/ResumeApplicationBackup.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/ResumeApplicationBackup.json
new file mode 100644
index 000000000000..b25a7ac545ec
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/ResumeApplicationBackup.json
@@ -0,0 +1,11 @@
+{
+ "operationId": "ResumeApplicationBackup",
+ "description": "This example shows how to resume periodic backup for a stateful application which was previously suspended.",
+ "parameters": {
+ "api-version": "6.4",
+ "applicationId": "CalcApp"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/ResumePartitionBackup.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/ResumePartitionBackup.json
new file mode 100644
index 000000000000..feb701118438
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/ResumePartitionBackup.json
@@ -0,0 +1,11 @@
+{
+ "operationId": "ResumePartitionBackup",
+ "description": "This example shows how to resume periodic backup for a stateful partition which was previously suspended.",
+ "parameters": {
+ "api-version": "6.4",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/ResumeServiceBackup.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/ResumeServiceBackup.json
new file mode 100644
index 000000000000..9037dfa23d9e
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/ResumeServiceBackup.json
@@ -0,0 +1,11 @@
+{
+ "operationId": "ResumeServiceBackup",
+ "description": "This example shows how to resume periodic backup for a stateful service which was previously suspended.",
+ "parameters": {
+ "api-version": "6.4",
+ "serviceId": "CalcApp/CalcService"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/StartApplicationUpgrade-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/StartApplicationUpgrade-1.json
new file mode 100644
index 000000000000..fd0317e28196
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/StartApplicationUpgrade-1.json
@@ -0,0 +1,30 @@
+{
+ "operationId": "StartApplicationUpgrade",
+ "description": "This example shows how to start upgrading an application in a Service Fabric cluster.",
+ "parameters": {
+ "api-version": "6.0",
+ "applicationId": "samples~CalculatorApp",
+ "ApplicationUpgradeDescription": {
+ "Name": "fabric:/samples/CalculatorApp",
+ "TargetApplicationTypeVersion": "2.0",
+ "Parameters": [
+ {
+ "Key": "CalculatorAppParameter1",
+ "Value": "314"
+ },
+ {
+ "Key": "CalculatorAppParameter2",
+ "Value": "271"
+ }
+ ],
+ "UpgradeKind": "Rolling",
+ "RollingUpgradeMode": "Monitored",
+ "MonitoringPolicy": {
+ "FailureAction": "Rollback"
+ }
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/StartClusterConfigurationUpgrade-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/StartClusterConfigurationUpgrade-1.json
new file mode 100644
index 000000000000..2f8fd59a474e
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/StartClusterConfigurationUpgrade-1.json
@@ -0,0 +1,40 @@
+{
+ "operationId": "StartClusterConfigurationUpgrade",
+ "description": "This example shows how to start upgrading the configuration of a Service Fabric standalone cluster.",
+ "parameters": {
+ "api-version": "6.0",
+ "nameId": "samples/apps/CalculatorApp",
+ "ClusterConfigurationUpgradeDescription": {
+ "ClusterConfig": "",
+ "ApplicationHealthPolicies": {
+ "ApplicationHealthPolicyMap": [
+ {
+ "Key": "fabric:/samples/CalculatorApp",
+ "Value": {
+ "ConsiderWarningAsError": true,
+ "MaxPercentUnhealthyDeployedApplications": 10,
+ "DefaultServiceTypeHealthPolicy": {
+ "MaxPercentUnhealthyPartitionsPerService": 0,
+ "MaxPercentUnhealthyReplicasPerPartition": 0,
+ "MaxPercentUnhealthyServices": 0
+ },
+ "ServiceTypeHealthPolicyMap": [
+ {
+ "Key": "Svc1Type",
+ "Value": {
+ "MaxPercentUnhealthyPartitionsPerService": 0,
+ "MaxPercentUnhealthyReplicasPerPartition": 0,
+ "MaxPercentUnhealthyServices": 10
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/SubmitPropertyBatch-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/SubmitPropertyBatch-1.json
new file mode 100644
index 000000000000..05410c96edc2
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/SubmitPropertyBatch-1.json
@@ -0,0 +1,71 @@
+{
+ "operationId": "SubmitPropertyBatch",
+ "description": "This example shows how to submit a property batch. This batch ensures that a property exists, checks that the property has the expected sequence number, and edits the property only if the previous conditions succeed. It then performs a get operation to get the property's current info. \r\n If all of the operations succeed, the batch is committed in a transactional manner and a success response is returned with 200 status code. \r\n If the batch fails then a failed response is returned with 409 status code. The failed response below shows batch failure because the property does not have expected sequence number.",
+ "parameters": {
+ "api-version": "6.0",
+ "nameId": "samples/apps",
+ "PropertyBatchDescriptionList": {
+ "Operations": [
+ {
+ "Kind": "CheckExists",
+ "PropertyName": "PersistentQueueAppData",
+ "Exists": true
+ },
+ {
+ "Kind": "CheckSequence",
+ "PropertyName": "PersistentQueueAppData",
+ "SequenceNumber": "12"
+ },
+ {
+ "Kind": "Put",
+ "PropertyName": "PersistentQueueAppData",
+ "Value": {
+ "Kind": "Binary",
+ "Data": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5
+ ]
+ },
+ "CustomTypeId": "InitializationData"
+ },
+ {
+ "Kind": "Get",
+ "PropertyName": "PersistentQueueAppData",
+ "IncludeValue": false
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "Kind": "Successful",
+ "Properties": {
+ "3": {
+ "Name": "PersistentQueueAppData",
+ "Metadata": {
+ "TypeId": "Binary",
+ "CustomTypeId": "InitializationData",
+ "Parent": "fabric:/samples/apps",
+ "SizeInBytes": 5,
+ "LastModifiedUtcTimestamp": "2017-07-17T05:01:19.049Z",
+ "SequenceNumber": "13"
+ }
+ }
+ }
+ }
+ },
+ "409": {
+ "headers": {},
+ "body": {
+ "Kind": "Failed",
+ "ErrorMessage": "FABRIC_E_PROPERTY_CHECK_FAILED",
+ "OperationIndex": 1
+ }
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/SuspendApplicationBackup.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/SuspendApplicationBackup.json
new file mode 100644
index 000000000000..75bdad71a95e
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/SuspendApplicationBackup.json
@@ -0,0 +1,11 @@
+{
+ "operationId": "SuspendApplicationBackup",
+ "description": "This example shows how to suspend backup for a stateful application which is configured for periodic backup.",
+ "parameters": {
+ "api-version": "6.4",
+ "applicationId": "CalcApp"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/SuspendPartitionBackup.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/SuspendPartitionBackup.json
new file mode 100644
index 000000000000..b14619dd6fe8
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/SuspendPartitionBackup.json
@@ -0,0 +1,11 @@
+{
+ "operationId": "SuspendPartitionBackup",
+ "description": "This example shows how to suspend backup for a stateful partition which is configured for periodic backup.",
+ "parameters": {
+ "api-version": "6.4",
+ "partitionId": "1daae3f5-7fd6-42e9-b1ba-8c05f873994d"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/SuspendServiceBackup.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/SuspendServiceBackup.json
new file mode 100644
index 000000000000..14d0575c509e
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/SuspendServiceBackup.json
@@ -0,0 +1,11 @@
+{
+ "operationId": "SuspendServiceBackup",
+ "description": "This example shows how to suspend backup for a stateful service which is configured for periodic backup.",
+ "parameters": {
+ "api-version": "6.4",
+ "serviceId": "CalcApp/CalcService"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/UpdateBackupPolicy.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/UpdateBackupPolicy.json
new file mode 100644
index 000000000000..3129817ddb68
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/UpdateBackupPolicy.json
@@ -0,0 +1,35 @@
+{
+ "operationId": "UpdateBackupPolicy",
+ "description": "This example shows how to update the schedule of a backup policy to take backup twice everyday at 9 AM and 5 PM UTC which shall get deleted after 30 days, with Azure blob store as the backup location.",
+ "parameters": {
+ "api-version": "6.4",
+ "backupPolicyName": "DailyAzureBackupPolicy",
+ "BackupPolicyDescription": {
+ "Name": "DailyAzureBackupPolicy",
+ "AutoRestoreOnDataLoss": false,
+ "MaxIncrementalBackups": 3,
+ "Schedule": {
+ "ScheduleKind": "TimeBased",
+ "ScheduleFrequencyType": "Daily",
+ "RunTimes": [
+ "0001-01-01T09:00:00Z",
+ "0001-01-01T17:00:00Z"
+ ]
+ },
+ "Storage": {
+ "StorageKind": "AzureBlobStore",
+ "FriendlyName": "Azure_storagesample",
+ "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=",
+ "ContainerName": "BackupContainer"
+ },
+ "RetentionPolicy": {
+ "RetentionPolicyType": "Basic",
+ "MinimumNumberOfBackups": 60,
+ "RetentionDuration": "P30D"
+ }
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/UpdateService-1.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/UpdateService-1.json
new file mode 100644
index 000000000000..3dd7f5950427
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/UpdateService-1.json
@@ -0,0 +1,34 @@
+{
+ "operationId": "UpdateService",
+ "description": "This example shows how to update placement and load balancing related settings of a stateless Service Fabric service.",
+ "parameters": {
+ "serviceId": "test~test1",
+ "api-version": "6.0",
+ "ServiceUpdateDescription": {
+ "ServiceKind": "Stateless",
+ "Flags": "1568",
+ "PlacementConstraints": "Color==Red",
+ "DefaultMoveCost": "High",
+ "ScalingPolicies": [
+ {
+ "ScalingTrigger": {
+ "Kind": "AveragePartitionLoad",
+ "MetricName": "servicefabric:/_CpuCores",
+ "LowerLoadThreshold": "0.500000",
+ "UpperLoadThreshold": "0.800000",
+ "ScaleIntervalInSeconds": 900
+ },
+ "ScalingMechanism": {
+ "Kind": "PartitionInstanceCount",
+ "MinInstanceCount": 4,
+ "MaxInstanceCount": 6,
+ "ScaleIncrement": 2
+ }
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/UpdateService-2.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/UpdateService-2.json
new file mode 100644
index 000000000000..cdb1368dbdd6
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/examples/UpdateService-2.json
@@ -0,0 +1,17 @@
+{
+ "operationId": "UpdateService",
+ "description": "This example shows how to update placement and load balancing related settings of a stateful Service Fabric service.",
+ "parameters": {
+ "serviceId": "test~test2",
+ "api-version": "6.0",
+ "ServiceUpdateDescription": {
+ "ServiceKind": "Stateful",
+ "Flags": "40",
+ "PlacementConstraints": "Color==Green",
+ "StandByReplicaKeepDurationSeconds": "1000"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/servicefabric.json b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/servicefabric.json
new file mode 100644
index 000000000000..86206e48e15d
--- /dev/null
+++ b/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/7.2/servicefabric.json
@@ -0,0 +1,28687 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Service Fabric Client APIs",
+ "description": "Service Fabric REST Client APIs allows management of Service Fabric clusters, applications and services.",
+ "version": "7.2.0.46"
+ },
+ "host": "localhost:19080",
+ "schemes": [
+ "http",
+ "https"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/$/GetClusterManifest": {
+ "get": {
+ "operationId": "GetClusterManifest",
+ "summary": "Get the Service Fabric cluster manifest.",
+ "description": "Get the Service Fabric cluster manifest. The cluster manifest contains properties of the cluster that include different node types on the cluster,\nsecurity configurations, fault, and upgrade domain topologies, etc.\n\nThese properties are specified as part of the ClusterConfig.JSON file while deploying a stand-alone cluster. However, most of the information in the cluster manifest\nis generated internally by service fabric during cluster deployment in other deployment scenarios (e.g. when using Azure portal).\n\nThe contents of the cluster manifest are for informational purposes only and users are not expected to take a dependency on the format of the file contents or its interpretation.",
+ "tags": [
+ "Cluster"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested cluster manifest information.",
+ "schema": {
+ "$ref": "#/definitions/ClusterManifest"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/GetClusterHealth": {
+ "get": {
+ "operationId": "GetClusterHealth",
+ "summary": "Gets the health of a Service Fabric cluster.",
+ "description": "Use EventsHealthStateFilter to filter the collection of health events reported on the cluster based on the health state.\nSimilarly, use NodesHealthStateFilter and ApplicationsHealthStateFilter to filter the collection of nodes and applications returned based on their aggregated health state.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodesHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeHealthStatisticsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/IncludeSystemApplicationHealthStatisticsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested cluster health information.",
+ "schema": {
+ "$ref": "#/definitions/ClusterHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "GetClusterHealthUsingPolicy",
+ "summary": "Gets the health of a Service Fabric cluster using the specified policy.",
+ "description": "Use EventsHealthStateFilter to filter the collection of health events reported on the cluster based on the health state.\nSimilarly, use NodesHealthStateFilter and ApplicationsHealthStateFilter to filter the collection of nodes and applications returned based on their aggregated health state.\nUse ClusterHealthPolicies to override the health policies used to evaluate the health.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodesHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeHealthStatisticsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/IncludeSystemApplicationHealthStatisticsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ClusterHealthPoliciesOptionalBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested cluster health information.",
+ "schema": {
+ "$ref": "#/definitions/ClusterHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/GetClusterHealthChunk": {
+ "get": {
+ "operationId": "GetClusterHealthChunk",
+ "summary": "Gets the health of a Service Fabric cluster using health chunks.",
+ "description": "Gets the health of a Service Fabric cluster using health chunks. Includes the aggregated health state of the cluster, but none of the cluster entities.\nTo expand the cluster health and get the health state of all or some of the entities, use the POST URI and specify the cluster health chunk query description.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested cluster health chunk information.",
+ "schema": {
+ "$ref": "#/definitions/ClusterHealthChunk"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "GetClusterHealthChunkUsingPolicyAndAdvancedFilters",
+ "summary": "Gets the health of a Service Fabric cluster using health chunks.",
+ "description": "Gets the health of a Service Fabric cluster using health chunks. The health evaluation is done based on the input cluster health chunk query description.\nThe query description allows users to specify health policies for evaluating the cluster and its children.\nUsers can specify very flexible filters to select which cluster entities to return. The selection can be done based on the entities health state and based on the hierarchy.\nThe query can return multi-level children of the entities based on the specified filters. For example, it can return one application with a specified name, and for this application, return\nonly services that are in Error or Warning, and all partitions and replicas for one of these services.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ClusterHealthChunkQueryDescriptionOptionalBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested cluster health chunk information.",
+ "schema": {
+ "$ref": "#/definitions/ClusterHealthChunk"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/ReportClusterHealth": {
+ "post": {
+ "operationId": "ReportClusterHealth",
+ "summary": "Sends a health report on the Service Fabric cluster.",
+ "description": "Sends a health report on a Service Fabric cluster. The report must contain the information about the source of the health report and property on which it is reported.\nThe report is sent to a Service Fabric gateway node, which forwards to the health store.\nThe report may be accepted by the gateway, but rejected by the health store after extra validation.\nFor example, the health store may reject the report because of an invalid parameter, like a stale sequence number.\nTo see whether the report was applied in the health store, run GetClusterHealth and check that the report appears in the HealthEvents section.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/HealthInformationRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ImmediateOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code when the cluster health report is accepted for processing."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/GetProvisionedCodeVersions": {
+ "get": {
+ "operationId": "GetProvisionedFabricCodeVersionInfoList",
+ "summary": "Gets a list of fabric code versions that are provisioned in a Service Fabric cluster.",
+ "description": "Gets a list of information about fabric code versions that are provisioned in the cluster. The parameter CodeVersion can be used to optionally filter the output to only that particular version.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/CodeVersionOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested provisioned code versions information.",
+ "schema": {
+ "$ref": "#/definitions/FabricCodeVersionInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/GetProvisionedConfigVersions": {
+ "get": {
+ "operationId": "GetProvisionedFabricConfigVersionInfoList",
+ "summary": "Gets a list of fabric config versions that are provisioned in a Service Fabric cluster.",
+ "description": "Gets a list of information about fabric config versions that are provisioned in the cluster. The parameter ConfigVersion can be used to optionally filter the output to only that particular version.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ConfigVersionOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested provisioned config versions information.",
+ "schema": {
+ "$ref": "#/definitions/FabricConfigVersionInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/GetUpgradeProgress": {
+ "get": {
+ "operationId": "GetClusterUpgradeProgress",
+ "summary": "Gets the progress of the current cluster upgrade.",
+ "description": "Gets the current progress of the ongoing cluster upgrade. If no upgrade is currently in progress, get the last state of the previous cluster upgrade.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested cluster upgrade progress.",
+ "schema": {
+ "$ref": "#/definitions/ClusterUpgradeProgressObject"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/GetClusterConfiguration": {
+ "get": {
+ "operationId": "GetClusterConfiguration",
+ "summary": "Get the Service Fabric standalone cluster configuration.",
+ "description": "The cluster configuration contains properties of the cluster that include different node types on the cluster,\nsecurity configurations, fault, and upgrade domain topologies, etc.",
+ "tags": [
+ "Cluster"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ConfigurationApiVersionRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested cluster configuration information.",
+ "schema": {
+ "$ref": "#/definitions/ClusterConfiguration"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/GetClusterConfigurationUpgradeStatus": {
+ "get": {
+ "operationId": "GetClusterConfigurationUpgradeStatus",
+ "summary": "Get the cluster configuration upgrade status of a Service Fabric standalone cluster.",
+ "description": "Get the cluster configuration upgrade status details of a Service Fabric standalone cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested cluster configuration upgrade status.",
+ "schema": {
+ "$ref": "#/definitions/ClusterConfigurationUpgradeStatusInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/GetUpgradeOrchestrationServiceState": {
+ "get": {
+ "operationId": "GetUpgradeOrchestrationServiceState",
+ "summary": "Get the service state of Service Fabric Upgrade Orchestration Service.",
+ "description": "Get the service state of Service Fabric Upgrade Orchestration Service. This API is internally used for support purposes.",
+ "tags": [
+ "Cluster"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested service state of Service Fabric Upgrade Orchestration Service.",
+ "schema": {
+ "$ref": "#/definitions/UpgradeOrchestrationServiceState"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/SetUpgradeOrchestrationServiceState": {
+ "post": {
+ "operationId": "SetUpgradeOrchestrationServiceState",
+ "summary": "Update the service state of Service Fabric Upgrade Orchestration Service.",
+ "description": "Update the service state of Service Fabric Upgrade Orchestration Service. This API is internally used for support purposes.",
+ "tags": [
+ "Cluster"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/UpgradeOrchestrationServiceStateRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response means that the service state of Service Fabric Upgrade Orchestration Service has been updated.",
+ "schema": {
+ "$ref": "#/definitions/UpgradeOrchestrationServiceStateSummary"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/Provision": {
+ "post": {
+ "summary": "Provision the code or configuration packages of a Service Fabric cluster.",
+ "description": "Validate and provision the code or configuration packages of a Service Fabric cluster.",
+ "operationId": "ProvisionCluster",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ProvisionFabricDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response means that the code or configuration packages have been provisioned."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/Unprovision": {
+ "post": {
+ "summary": "Unprovision the code or configuration packages of a Service Fabric cluster.",
+ "description": "It is supported to unprovision code and configuration separately.",
+ "operationId": "UnprovisionCluster",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/UnprovisionFabricDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response means that the code or configuration packages have been unprovisioned."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/RollbackUpgrade": {
+ "post": {
+ "summary": "Roll back the upgrade of a Service Fabric cluster.",
+ "description": "Roll back the code or configuration upgrade of a Service Fabric cluster.",
+ "operationId": "RollbackClusterUpgrade",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "202": {
+ "description": "A successful response means that the rollback of a cluster upgrade has been initiated."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/MoveToNextUpgradeDomain": {
+ "post": {
+ "summary": "Make the cluster upgrade move on to the next upgrade domain.",
+ "description": "Make the cluster code or configuration upgrade move on to the next upgrade domain if appropriate.",
+ "operationId": "ResumeClusterUpgrade",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ResumeClusterUpgradeDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response means that the cluster upgrade has moved on to the next upgrade domain."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/Upgrade": {
+ "post": {
+ "summary": "Start upgrading the code or configuration version of a Service Fabric cluster.",
+ "description": "Validate the supplied upgrade parameters and start upgrading the code or configuration version of a Service Fabric cluster if the parameters are valid.",
+ "operationId": "StartClusterUpgrade",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartClusterUpgradeDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "202": {
+ "description": "A successful response means that the cluster code or configuration upgrade has started. Use GetUpgradeProgress operation to get the status of the upgrade."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/StartClusterConfigurationUpgrade": {
+ "post": {
+ "summary": "Start upgrading the configuration of a Service Fabric standalone cluster.",
+ "description": "Validate the supplied configuration upgrade parameters and start upgrading the cluster configuration if the parameters are valid.",
+ "operationId": "StartClusterConfigurationUpgrade",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ClusterConfigurationUpgradeDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "x-ms-examples": {
+ "Start upgrading the configuration of a Service Fabric standalone cluster": {
+ "$ref": "./examples/StartClusterConfigurationUpgrade-1.json"
+ }
+ },
+ "responses": {
+ "202": {
+ "description": "A successful response means that the cluster configuration upgrade has started. Use GetClusterConfigurationUpgradeStatus operation to get the status of the upgrade."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/UpdateUpgrade": {
+ "post": {
+ "operationId": "UpdateClusterUpgrade",
+ "summary": "Update the upgrade parameters of a Service Fabric cluster upgrade.",
+ "description": "Update the upgrade parameters used during a Service Fabric cluster upgrade.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/UpdateClusterUpgradeDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation returns 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/GetAadMetadata": {
+ "get": {
+ "operationId": "GetAadMetadata",
+ "summary": "Gets the Azure Active Directory metadata used for secured connection to cluster.",
+ "description": "Gets the Azure Active Directory metadata used for secured connection to cluster.\nThis API is not supposed to be called separately. It provides information needed to set up an Azure Active Directory secured connection with a Service Fabric cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "schemes": [
+ "https"
+ ],
+ "tags": [
+ "Cluster"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the Azure Active Directory metadata.",
+ "schema": {
+ "$ref": "#/definitions/AadMetadataObject"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/GetClusterVersion": {
+ "get": {
+ "operationId": "GetClusterVersion",
+ "summary": "Get the current Service Fabric cluster version.",
+ "description": "If a cluster upgrade is happening, then this API will return the lowest (older) version of the current and target cluster runtime versions.",
+ "tags": [
+ "Cluster"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "x-ms-examples": {
+ "Get cluster version": {
+ "$ref": "./examples/GetClusterVersion-1.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested cluster version information.",
+ "schema": {
+ "$ref": "#/definitions/ClusterVersion"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/GetLoadInformation": {
+ "get": {
+ "operationId": "GetClusterLoad",
+ "summary": "Gets the load of a Service Fabric cluster.",
+ "description": "Retrieves the load information of a Service Fabric cluster for all the metrics that have load or capacity defined.",
+ "tags": [
+ "Cluster"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested cluster load information.",
+ "schema": {
+ "$ref": "#/definitions/ClusterLoadInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/ToggleVerboseServicePlacementHealthReporting": {
+ "post": {
+ "operationId": "ToggleVerboseServicePlacementHealthReporting",
+ "summary": "Changes the verbosity of service placement health reporting.",
+ "description": "If verbosity is set to true, then detailed health reports will be generated when replicas cannot be placed or dropped.\nIf verbosity is set to false, then no health reports will be generated when replicas cannot be placed or dropped.",
+ "tags": [
+ "Cluster"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/VerboseServicePlacementHealthReportingParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response means that the verbosity of service placement health reporting was updated."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes": {
+ "get": {
+ "summary": "Gets the list of nodes in the Service Fabric cluster.",
+ "description": "The response includes the name, status, ID, health, uptime, and other details about the nodes.",
+ "operationId": "GetNodeInfoList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-3_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeStatusFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Node"
+ ],
+ "x-ms-examples": {
+ "Get information about all nodes": {
+ "$ref": "./examples/GetNodeInfoList.json"
+ },
+ "Limit maximum results": {
+ "$ref": "./examples/GetNodeInfoList-1.json"
+ },
+ "Page using continuation token": {
+ "$ref": "./examples/GetNodeInfoList-2.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of nodes in the cluster.",
+ "schema": {
+ "$ref": "#/definitions/PagedNodeInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}": {
+ "get": {
+ "summary": "Gets the information about a specific node in the Service Fabric cluster.",
+ "description": "The response includes the name, status, ID, health, uptime, and other details about the node.",
+ "operationId": "GetNodeInfo",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Node"
+ ],
+ "x-ms-examples": {
+ "Get a specific node by node name": {
+ "$ref": "./examples/GetNodeInfo-1.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "A successful operation will return information about the node with the specified nodeName.",
+ "schema": {
+ "$ref": "#/definitions/NodeInfo"
+ }
+ },
+ "204": {
+ "description": "An empty response is returned if the specified nodeName is not found."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetHealth": {
+ "get": {
+ "operationId": "GetNodeHealth",
+ "summary": "Gets the health of a Service Fabric node.",
+ "description": "Gets the health of a Service Fabric node. Use EventsHealthStateFilter to filter the collection of health events reported on the node based on the health state. If the node that you specify by name does not exist in the health store, this returns an error.",
+ "tags": [
+ "Node"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested node health information.",
+ "schema": {
+ "$ref": "#/definitions/NodeHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "GetNodeHealthUsingPolicy",
+ "summary": "Gets the health of a Service Fabric node, by using the specified health policy.",
+ "description": "Gets the health of a Service Fabric node. Use EventsHealthStateFilter to filter the collection of health events reported on the node based on the health state. Use ClusterHealthPolicy in the POST body to override the health policies used to evaluate the health. If the node that you specify by name does not exist in the health store, this returns an error.",
+ "tags": [
+ "Node"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ClusterHealthPolicyOptionalBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested node health information.",
+ "schema": {
+ "$ref": "#/definitions/NodeHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/ReportHealth": {
+ "post": {
+ "operationId": "ReportNodeHealth",
+ "summary": "Sends a health report on the Service Fabric node.",
+ "description": "Reports health state of the specified Service Fabric node. The report must contain the information about the source of the health report and property on which it is reported.\nThe report is sent to a Service Fabric gateway node, which forwards to the health store.\nThe report may be accepted by the gateway, but rejected by the health store after extra validation.\nFor example, the health store may reject the report because of an invalid parameter, like a stale sequence number.\nTo see whether the report was applied in the health store, run GetNodeHealth and check that the report appears in the HealthEvents section.",
+ "tags": [
+ "Node"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/HealthInformationRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ImmediateOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetLoadInformation": {
+ "get": {
+ "operationId": "GetNodeLoadInfo",
+ "summary": "Gets the load information of a Service Fabric node.",
+ "description": "Retrieves the load information of a Service Fabric node for all the metrics that have load or capacity defined.",
+ "tags": [
+ "Node"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested node load information.",
+ "schema": {
+ "$ref": "#/definitions/NodeLoadInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/Deactivate": {
+ "post": {
+ "operationId": "DisableNode",
+ "summary": "Deactivate a Service Fabric cluster node with the specified deactivation intent.",
+ "description": "Deactivate a Service Fabric cluster node with the specified deactivation intent. Once the deactivation is in progress, the deactivation intent can be increased, but not decreased (for example, a node that is deactivated with the Pause intent can be deactivated further with Restart, but not the other way around. Nodes may be reactivated using the Activate a node operation any time after they are deactivated. If the deactivation is not complete, this will cancel the deactivation. A node that goes down and comes back up while deactivated will still need to be reactivated before services will be placed on that node.",
+ "tags": [
+ "Node"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/DeactivationIntentDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/Activate": {
+ "post": {
+ "operationId": "EnableNode",
+ "summary": "Activate a Service Fabric cluster node that is currently deactivated.",
+ "description": "Activates a Service Fabric cluster node that is currently deactivated. Once activated, the node will again become a viable target for placing new replicas, and any deactivated replicas remaining on the node will be reactivated.",
+ "tags": [
+ "Node"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/RemoveNodeState": {
+ "post": {
+ "operationId": "RemoveNodeState",
+ "summary": "Notifies Service Fabric that the persisted state on a node has been permanently removed or lost.",
+ "description": "This implies that it is not possible to recover the persisted state of that node. This generally happens if a hard disk has been wiped clean, or if a hard disk crashes. The node has to be down for this operation to be successful. This operation lets Service Fabric know that the replicas on that node no longer exist, and that Service Fabric should stop waiting for those replicas to come back up. Do not run this cmdlet if the state on the node has not been removed and the node can come back up with its state intact. Starting from Service Fabric 6.5, in order to use this API for seed nodes, please change the seed nodes to regular (non-seed) nodes and then invoke this API to remove the node state. If the cluster is running on Azure, after the seed node goes down, Service Fabric will try to change it to a non-seed node automatically. To make this happen, make sure the number of non-seed nodes in the primary node type is no less than the number of Down seed nodes. If necessary, add more nodes to the primary node type to achieve this. For standalone cluster, if the Down seed node is not expected to come back up with its state intact, please remove the node from the cluster, see https://docs.microsoft.com/azure/service-fabric/service-fabric-cluster-windows-server-add-remove-nodes",
+ "tags": [
+ "Node"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/Restart": {
+ "post": {
+ "operationId": "RestartNode",
+ "summary": "Restarts a Service Fabric cluster node.",
+ "description": "Restarts a Service Fabric cluster node that is already started.",
+ "tags": [
+ "Node"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/RestartNodeDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code. A successful operation means that the restart command was received by the node and it is in the process of restarting. Check the status of the node by calling GetNode operation."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/RemoveConfigurationOverrides": {
+ "delete": {
+ "operationId": "RemoveConfigurationOverrides",
+ "summary": "Removes configuration overrides on the specified node.",
+ "description": "This api allows removing all existing configuration overrides on specified node.",
+ "tags": [
+ "Node"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_7-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetConfigurationOverrides": {
+ "get": {
+ "operationId": "GetConfigurationOverrides",
+ "summary": "Gets the list of configuration overrides on the specified node.",
+ "description": "This api allows getting all existing configuration overrides on the specified node.",
+ "tags": [
+ "Node"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_7-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of configuration overrides on the node.",
+ "schema": {
+ "$ref": "#/definitions/ConfigParameterOverrideList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/AddConfigurationParameterOverrides": {
+ "post": {
+ "operationId": "AddConfigurationParameterOverrides",
+ "summary": "Adds the list of configuration overrides on the specified node.",
+ "description": "This api allows adding all existing configuration overrides on the specified node.",
+ "tags": [
+ "Node"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_7-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ConfigurationOverrideListRequiredParam"
+ },
+ {
+ "$ref": "#/parameters/ForceConfigurationOverrideOptionalParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ApplicationTypes": {
+ "get": {
+ "summary": "Gets the list of application types in the Service Fabric cluster.",
+ "description": "Returns the information about the application types that are provisioned or in the process of being provisioned in the Service Fabric cluster. Each version of an application type is returned as one application type. The response includes the name, version, status, and other details about the application type. This is a paged query, meaning that if not all of the application types fit in a page, one page of results is returned as well as a continuation token, which can be used to get the next page. For example, if there are 10 application types but a page only fits the first three application types, or if max results is set to 3, then three is returned. To access the rest of the results, retrieve subsequent pages by using the returned continuation token in the next query. An empty continuation token is returned if there are no subsequent pages.",
+ "operationId": "GetApplicationTypeInfoList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationTypeDefinitionKindFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeApplicationParametersOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "x-ms-examples": {
+ "Limit maximum results": {
+ "$ref": "./examples/GetApplicationTypeInfoList-1.json"
+ },
+ "Page using continuation token": {
+ "$ref": "./examples/GetApplicationTypeInfoList-2.json"
+ },
+ "Exclude application parameters from the result": {
+ "$ref": "./examples/GetApplicationTypeInfoList-3.json"
+ }
+ },
+ "tags": [
+ "ApplicationType"
+ ],
+ "responses": {
+ "200": {
+ "description": "List of application types in the cluster.",
+ "schema": {
+ "$ref": "#/definitions/PagedApplicationTypeInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ApplicationTypes/{applicationTypeName}": {
+ "get": {
+ "summary": "Gets the list of application types in the Service Fabric cluster matching exactly the specified name.",
+ "description": "Returns the information about the application types that are provisioned or in the process of being provisioned in the Service Fabric cluster. These results are of application types whose name match exactly the one specified as the parameter, and which comply with the given query parameters. All versions of the application type matching the application type name are returned, with each version returned as one application type. The response includes the name, version, status, and other details about the application type. This is a paged query, meaning that if not all of the application types fit in a page, one page of results is returned as well as a continuation token, which can be used to get the next page. For example, if there are 10 application types but a page only fits the first three application types, or if max results is set to 3, then three is returned. To access the rest of the results, retrieve subsequent pages by using the returned continuation token in the next query. An empty continuation token is returned if there are no subsequent pages.",
+ "operationId": "GetApplicationTypeInfoListByName",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationTypeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationTypeVersionOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeApplicationParametersOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ApplicationType"
+ ],
+ "responses": {
+ "200": {
+ "description": "List of application types in the cluster.",
+ "schema": {
+ "$ref": "#/definitions/PagedApplicationTypeInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ApplicationTypes/$/Provision": {
+ "post": {
+ "operationId": "ProvisionApplicationType",
+ "summary": "Provisions or registers a Service Fabric application type with the cluster using the '.sfpkg' package in the external store or using the application package in the image store.",
+ "description": "Provisions a Service Fabric application type with the cluster. The provision is required before any new applications can be instantiated.\nThe provision operation can be performed either on the application package specified by the relativePathInImageStore, or by using the URI of the external '.sfpkg'.",
+ "tags": [
+ "ApplicationType"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-2_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ProvisionApplicationTypeDescriptionBaseRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful provision will return 200 status code."
+ },
+ "202": {
+ "description": "A 202 status code indicates the operation was accepted and the provision operation has been initiated."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ApplicationTypes/{applicationTypeName}/$/Unprovision": {
+ "post": {
+ "operationId": "UnprovisionApplicationType",
+ "summary": "Removes or unregisters a Service Fabric application type from the cluster.",
+ "description": "This operation can only be performed if all application instances of the application type have been deleted. Once the application type is unregistered, no new application instances can be created for this particular application type.",
+ "tags": [
+ "ApplicationType"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationTypeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/UnprovisionApplicationTypeRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful provision will return 200 status code."
+ },
+ "202": {
+ "description": "A 202 status code indicates the operation was accepted."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ApplicationTypes/{applicationTypeName}/$/GetServiceTypes": {
+ "get": {
+ "summary": "Gets the list containing the information about service types that are supported by a provisioned application type in a Service Fabric cluster.",
+ "description": "Gets the list containing the information about service types that are supported by a provisioned application type in a Service Fabric cluster. The provided application type must exist. Otherwise, a 404 status is returned.",
+ "operationId": "GetServiceTypeInfoList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationTypeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationTypeVersionRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ServiceType"
+ ],
+ "x-ms-examples": {
+ "Get information about all nodes.": {
+ "$ref": "./examples/GetServiceTypeInfoList-1.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of service types that are supported by a provisioned application type.",
+ "schema": {
+ "$ref": "#/definitions/ServiceTypeInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ApplicationTypes/{applicationTypeName}/$/GetServiceTypes/{serviceTypeName}": {
+ "get": {
+ "summary": "Gets the information about a specific service type that is supported by a provisioned application type in a Service Fabric cluster.",
+ "description": "Gets the information about a specific service type that is supported by a provisioned application type in a Service Fabric cluster. The provided application type must exist. Otherwise, a 404 status is returned. A 204 response is returned if the specified service type is not found in the cluster.",
+ "operationId": "GetServiceTypeInfoByName",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationTypeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationTypeVersionRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceTypeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ServiceType"
+ ],
+ "x-ms-examples": {
+ "Get information about all nodes.": {
+ "$ref": "./examples/GetServiceTypeInfoByName-1.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "A specific service type which supported by a provisioned application type.",
+ "schema": {
+ "$ref": "#/definitions/ServiceTypeInfo"
+ }
+ },
+ "204": {
+ "description": "A 204 response is returned if the specified service type is not found in the cluster."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ApplicationTypes/{applicationTypeName}/$/GetServiceManifest": {
+ "get": {
+ "summary": "Gets the manifest describing a service type.",
+ "description": "Gets the manifest describing a service type. The response contains the service manifest XML as a string.",
+ "operationId": "GetServiceManifest",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationTypeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationTypeVersionRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceManifestNameRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ServiceType"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the service type.",
+ "schema": {
+ "$ref": "#/definitions/ServiceTypeManifest"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServiceTypes": {
+ "get": {
+ "summary": "Gets the list containing the information about service types from the applications deployed on a node in a Service Fabric cluster.",
+ "description": "Gets the list containing the information about service types from the applications deployed on a node in a Service Fabric cluster. The response includes the name of the service type, its registration status, the code package that registered it and activation ID of the service package.",
+ "operationId": "GetDeployedServiceTypeInfoList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/DeployedServiceType_ServiceManifestNameOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ServiceType"
+ ],
+ "responses": {
+ "200": {
+ "description": "List of information about service types of an application deployed on a node.",
+ "schema": {
+ "$ref": "#/definitions/DeployedServiceTypeInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServiceTypes/{serviceTypeName}": {
+ "get": {
+ "summary": "Gets the information about a specified service type of the application deployed on a node in a Service Fabric cluster.",
+ "description": "Gets the list containing the information about a specific service type from the applications deployed on a node in a Service Fabric cluster. The response includes the name of the service type, its registration status, the code package that registered it and activation ID of the service package. Each entry represents one activation of a service type, differentiated by the activation ID.",
+ "operationId": "GetDeployedServiceTypeInfoByName",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceTypeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/DeployedServiceType_ServiceManifestNameOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ServiceType"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about service types of an application deployed on a node.",
+ "schema": {
+ "$ref": "#/definitions/DeployedServiceTypeInfoList"
+ }
+ },
+ "204": {
+ "description": "An empty response is returned if the specified service type of the application is not deployed on the node."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/$/Create": {
+ "post": {
+ "summary": "Creates a Service Fabric application.",
+ "description": "Creates a Service Fabric application using the specified description.",
+ "operationId": "CreateApplication",
+ "x-ms-examples": {
+ "Create application.": {
+ "$ref": "./examples/CreateApplication-1.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Application"
+ ],
+ "responses": {
+ "201": {
+ "description": "A successful response means that the application creation has been started. Use GetApplication operation to get the status of the application. Once GetApplicationInfo successfully returns application information, the application is created. If the application has default services those may be in the process of being created. Use GetServiceInfo operation to get the status of the service within the application."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/Delete": {
+ "post": {
+ "summary": "Deletes an existing Service Fabric application.",
+ "description": "An application must be created before it can be deleted. Deleting an application will delete all services that are part of that application. By default, Service Fabric will try to close service replicas in a graceful manner and then delete the service. However, if a service is having issues closing the replica gracefully, the delete operation may take a long time or get stuck. Use the optional ForceRemove flag to skip the graceful close sequence and forcefully delete the application and all of its services.",
+ "operationId": "DeleteApplication",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ForceRemoveOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Application"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/GetLoadInformation": {
+ "get": {
+ "summary": "Gets load information about a Service Fabric application.",
+ "description": "Returns the load information about the application that was created or in the process of being created in the Service Fabric cluster and whose name matches the one specified as the parameter. The response includes the name, minimum nodes, maximum nodes, the number of nodes the application is occupying currently, and application load metric information about the application.",
+ "operationId": "GetApplicationLoadInfo",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Application"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the application load.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationLoadInfo"
+ }
+ },
+ "204": {
+ "description": "An empty response is returned if the specified applicationId is not found in the cluster."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications": {
+ "get": {
+ "summary": "Gets the list of applications created in the Service Fabric cluster that match the specified filters.",
+ "description": "Gets the information about the applications that were created or in the process of being created in the Service Fabric cluster and match the specified filters. The response includes the name, type, status, parameters, and other details about the application. If the applications do not fit in a page, one page of results is returned as well as a continuation token, which can be used to get the next page. Filters ApplicationTypeName and ApplicationDefinitionKindFilter cannot be specified at the same time.",
+ "operationId": "GetApplicationInfoList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-1_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationDefinitionKindFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationTypeNameOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeApplicationParametersOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Application"
+ ],
+ "x-ms-examples": {
+ "Limit maximum results": {
+ "$ref": "./examples/GetApplicationInfoList-1.json"
+ },
+ "Page using continuation token": {
+ "$ref": "./examples/GetApplicationInfoList-2.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of applications created in the cluster.",
+ "schema": {
+ "$ref": "#/definitions/PagedApplicationInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}": {
+ "get": {
+ "summary": "Gets information about a Service Fabric application.",
+ "description": "Returns the information about the application that was created or in the process of being created in the Service Fabric cluster and whose name matches the one specified as the parameter. The response includes the name, type, status, parameters, and other details about the application.",
+ "operationId": "GetApplicationInfo",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeApplicationParametersOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Application"
+ ],
+ "x-ms-examples": {
+ "Get a specific application by application id": {
+ "$ref": "./examples/GetApplicationInfoByName-1.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "Information about the application.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationInfo"
+ }
+ },
+ "204": {
+ "description": "An empty response is returned if the specified applicationId is not found in the cluster."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/GetHealth": {
+ "get": {
+ "summary": "Gets the health of the service fabric application.",
+ "description": "Returns the heath state of the service fabric application. The response reports either Ok, Error or Warning health state. If the entity is not found in the health store, it will return Error.",
+ "operationId": "GetApplicationHealth",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/DeployedApplicationsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServicesHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeHealthStatisticsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Application"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested application health information.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "GetApplicationHealthUsingPolicy",
+ "summary": "Gets the health of a Service Fabric application using the specified policy.",
+ "description": "Gets the health of a Service Fabric application. Use EventsHealthStateFilter to filter the collection of health events reported on the node based on the health state. Use ClusterHealthPolicies to override the health policies used to evaluate the health.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/DeployedApplicationsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServicesHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeHealthStatisticsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationHealthPolicyOptionalBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Application"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested node health information.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/ReportHealth": {
+ "post": {
+ "operationId": "ReportApplicationHealth",
+ "summary": "Sends a health report on the Service Fabric application.",
+ "description": "Reports health state of the specified Service Fabric application. The report must contain the information about the source of the health report and property on which it is reported.\nThe report is sent to a Service Fabric gateway Application, which forwards to the health store.\nThe report may be accepted by the gateway, but rejected by the health store after extra validation.\nFor example, the health store may reject the report because of an invalid parameter, like a stale sequence number.\nTo see whether the report was applied in the health store, get application health and check that the report appears in the HealthEvents section.",
+ "tags": [
+ "Application"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/HealthInformationRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ImmediateOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/Upgrade": {
+ "post": {
+ "summary": "Starts upgrading an application in the Service Fabric cluster.",
+ "description": "Validates the supplied application upgrade parameters and starts upgrading the application if the parameters are valid.\nNote, [ApplicationParameter](https://docs.microsoft.com/dotnet/api/system.fabric.description.applicationdescription.applicationparameters)s are not preserved across an application upgrade.\nIn order to preserve current application parameters, the user should get the parameters using [GetApplicationInfo](./GetApplicationInfo.md) operation first and pass them into the upgrade API call as shown in the example.",
+ "operationId": "StartApplicationUpgrade",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationUpgradeDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Application"
+ ],
+ "x-ms-examples": {
+ "Upgrade an application preserving current application parameters": {
+ "$ref": "./examples/StartApplicationUpgrade-1.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "A successful response means that the application upgrade has started. Use GetApplicationUpgrade operation to get the status of the upgrade."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/GetUpgradeProgress": {
+ "get": {
+ "summary": "Gets details for the latest upgrade performed on this application.",
+ "description": "Returns information about the state of the latest application upgrade along with details to aid debugging application health issues.",
+ "operationId": "GetApplicationUpgrade",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Application"
+ ],
+ "responses": {
+ "200": {
+ "description": "The application upgrade details.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationUpgradeProgressInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/UpdateUpgrade": {
+ "post": {
+ "summary": "Updates an ongoing application upgrade in the Service Fabric cluster.",
+ "description": "Updates the parameters of an ongoing application upgrade from the ones specified at the time of starting the application upgrade. This may be required to mitigate stuck application upgrades due to incorrect parameters or issues in the application to make progress.",
+ "operationId": "UpdateApplicationUpgrade",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationUpgradeUpdateDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Application"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response means that the application upgrade has updated with the specified parameters. Use GetApplicationUpgrade operation to get the status of the upgrade."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/MoveToNextUpgradeDomain": {
+ "post": {
+ "summary": "Resumes upgrading an application in the Service Fabric cluster.",
+ "description": "Resumes an unmonitored manual Service Fabric application upgrade. Service Fabric upgrades one upgrade domain at a time. For unmonitored manual upgrades, after Service Fabric finishes an upgrade domain, it waits for you to call this API before proceeding to the next upgrade domain.",
+ "operationId": "ResumeApplicationUpgrade",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ResumeApplicationUpgradeDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Application"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response means that the application upgrade has been resumed in the specified upgrade domain. Use GetApplicationUpgrade operation to get the status of the upgrade."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/RollbackUpgrade": {
+ "post": {
+ "summary": "Starts rolling back the currently on-going upgrade of an application in the Service Fabric cluster.",
+ "description": "Starts rolling back the current application upgrade to the previous version. This API can only be used to roll back the current in-progress upgrade that is rolling forward to new version. If the application is not currently being upgraded use StartApplicationUpgrade API to upgrade it to desired version, including rolling back to a previous version.",
+ "operationId": "RollbackApplicationUpgrade",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Application"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response means that the application has started to roll back. Use GetApplicationUpgrade operation to get the status of the upgrade."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications": {
+ "get": {
+ "operationId": "GetDeployedApplicationInfoList",
+ "summary": "Gets the list of applications deployed on a Service Fabric node.",
+ "description": "Gets the list of applications deployed on a Service Fabric node. The results do not include information about deployed system applications unless explicitly queried for by ID. Results encompass deployed applications in active, activating, and downloading states. This query requires that the node name corresponds to a node on the cluster. The query fails if the provided node name does not point to any active Service Fabric nodes on the cluster.",
+ "tags": [
+ "Application"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-1_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/IncludeHealthStateOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ }
+ ],
+ "x-ms-examples": {
+ "Limit maximum results": {
+ "$ref": "./examples/GetDeployedApplicationInfoList-1.json"
+ },
+ "Page using continuation token": {
+ "$ref": "./examples/GetDeployedApplicationInfoList-2.json"
+ },
+ "Include health state in the result": {
+ "$ref": "./examples/GetDeployedApplicationInfoList-3.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the list of deployed application information.",
+ "schema": {
+ "$ref": "#/definitions/PagedDeployedApplicationInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications/{applicationId}": {
+ "get": {
+ "operationId": "GetDeployedApplicationInfo",
+ "summary": "Gets the information about an application deployed on a Service Fabric node.",
+ "description": "This query returns system application information if the application ID provided is for system application. Results encompass deployed applications in active, activating, and downloading states. This query requires that the node name corresponds to a node on the cluster. The query fails if the provided node name does not point to any active Service Fabric nodes on the cluster.",
+ "tags": [
+ "Application"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-1_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/IncludeHealthStateOptionalQueryParam"
+ }
+ ],
+ "x-ms-examples": {
+ "Get a specific deployed application by application ID and include the health state in the result": {
+ "$ref": "./examples/GetDeployedApplicationInfoByName-1.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the information about the deployed application.",
+ "schema": {
+ "$ref": "#/definitions/DeployedApplicationInfo"
+ }
+ },
+ "204": {
+ "description": "An empty response is returned if the specified application is not deployed on the node."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetHealth": {
+ "get": {
+ "operationId": "GetDeployedApplicationHealth",
+ "summary": "Gets the information about health of an application deployed on a Service Fabric node.",
+ "description": "Gets the information about health of an application deployed on a Service Fabric node. Use EventsHealthStateFilter to optionally filter for the collection of HealthEvent objects reported on the deployed application based on health state. Use DeployedServicePackagesHealthStateFilter to optionally filter for DeployedServicePackageHealth children based on health state.",
+ "tags": [
+ "Application"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/DeployedServicePackagesHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeHealthStatisticsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the health information of the deployed application.",
+ "schema": {
+ "$ref": "#/definitions/DeployedApplicationHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "GetDeployedApplicationHealthUsingPolicy",
+ "summary": "Gets the information about health of an application deployed on a Service Fabric node. using the specified policy.",
+ "description": "Gets the information about health of an application deployed on a Service Fabric node using the specified policy. Use EventsHealthStateFilter to optionally filter for the collection of HealthEvent objects reported on the deployed application based on health state. Use DeployedServicePackagesHealthStateFilter to optionally filter for DeployedServicePackageHealth children based on health state. Use ApplicationHealthPolicy to optionally override the health policies used to evaluate the health. This API only uses 'ConsiderWarningAsError' field of the ApplicationHealthPolicy. The rest of the fields are ignored while evaluating the health of the deployed application.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/DeployedServicePackagesHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationHealthPolicyOptionalBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeHealthStatisticsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Application"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the health information of the deployed application.",
+ "schema": {
+ "$ref": "#/definitions/DeployedApplicationHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/ReportHealth": {
+ "post": {
+ "operationId": "ReportDeployedApplicationHealth",
+ "summary": "Sends a health report on the Service Fabric application deployed on a Service Fabric node.",
+ "description": "Reports health state of the application deployed on a Service Fabric node. The report must contain the information about the source of the health report and property on which it is reported.\nThe report is sent to a Service Fabric gateway Service, which forwards to the health store.\nThe report may be accepted by the gateway, but rejected by the health store after extra validation.\nFor example, the health store may reject the report because of an invalid parameter, like a stale sequence number.\nTo see whether the report was applied in the health store, get deployed application health and check that the report appears in the HealthEvents section.",
+ "tags": [
+ "Application"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/HealthInformationRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ImmediateOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ApplicationTypes/{applicationTypeName}/$/GetApplicationManifest": {
+ "get": {
+ "summary": "Gets the manifest describing an application type.",
+ "description": "The response contains the application manifest XML as a string.",
+ "operationId": "GetApplicationManifest",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationTypeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationTypeVersionRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ApplicationType"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the node.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationTypeManifest"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/GetServices": {
+ "get": {
+ "summary": "Gets the information about all services belonging to the application specified by the application ID.",
+ "description": "Returns the information about all services belonging to the application specified by the application ID.",
+ "operationId": "GetServiceInfoList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceTypeNameOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Service"
+ ],
+ "responses": {
+ "200": {
+ "description": "List of services in the cluster for the specified application.",
+ "schema": {
+ "$ref": "#/definitions/PagedServiceInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/GetServices/{serviceId}": {
+ "get": {
+ "summary": "Gets the information about the specific service belonging to the Service Fabric application.",
+ "description": "Returns the information about the specified service belonging to the specified Service Fabric application.",
+ "operationId": "GetServiceInfo",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Service"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the specified service.",
+ "schema": {
+ "$ref": "#/definitions/ServiceInfo"
+ }
+ },
+ "204": {
+ "description": "An empty response is returned if the specified service is not part of the specified application."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/GetApplicationName": {
+ "get": {
+ "summary": "Gets the name of the Service Fabric application for a service.",
+ "description": "Gets the name of the application for the specified service. A 404 FABRIC_E_SERVICE_DOES_NOT_EXIST error is returned if a service with the provided service ID does not exist.",
+ "operationId": "GetApplicationNameInfo",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Service"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the name of the application for the specified service.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationNameInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/GetServices/$/Create": {
+ "post": {
+ "operationId": "CreateService",
+ "summary": "Creates the specified Service Fabric service.",
+ "description": "This api allows creating a new Service Fabric stateless or stateful service under a specified Service Fabric application. The description for creating the service includes partitioning information and optional properties for placement and load balancing. Some of the properties can later be modified using `UpdateService` API.",
+ "x-ms-examples": {
+ "Basic stateless service": {
+ "$ref": "./examples/CreateService-1.json"
+ },
+ "Basic stateful service": {
+ "$ref": "./examples/CreateService-2.json"
+ },
+ "Stateless service with dns name and auto scaling": {
+ "$ref": "./examples/CreateService-3.json"
+ },
+ "Stateful service with named partitions and auto scaling": {
+ "$ref": "./examples/CreateService-4.json"
+ }
+ },
+ "tags": [
+ "Service"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "A successful operation will return 202 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/GetServices/$/CreateFromTemplate": {
+ "post": {
+ "summary": "Creates a Service Fabric service from the service template.",
+ "description": "Creates a Service Fabric service from the service template defined in the application manifest. A service template contains the properties that will be same for the service instance of the same type. The API allows overriding the properties that are usually different for different services of the same service type.",
+ "operationId": "CreateServiceFromTemplate",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/CreateServiceFromTemplateRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Service"
+ ],
+ "responses": {
+ "202": {
+ "description": "A successful operation will return 202 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/Delete": {
+ "post": {
+ "summary": "Deletes an existing Service Fabric service.",
+ "description": "A service must be created before it can be deleted. By default, Service Fabric will try to close service replicas in a graceful manner and then delete the service. However, if the service is having issues closing the replica gracefully, the delete operation may take a long time or get stuck. Use the optional ForceRemove flag to skip the graceful close sequence and forcefully delete the service.",
+ "operationId": "DeleteService",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ForceRemoveOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Service"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/Update": {
+ "post": {
+ "operationId": "UpdateService",
+ "summary": "Updates a Service Fabric service using the specified update description.",
+ "description": "This API allows updating properties of a running Service Fabric service. The set of properties that can be updated are a subset of the properties that were specified at the time of creating the service. The current set of properties can be obtained using `GetServiceDescription` API. Note that updating the properties of a running service is different than upgrading your application using `StartApplicationUpgrade` API. The upgrade is a long running background operation that involves moving the application from one version to another, one upgrade domain at a time, whereas update applies the new properties immediately to the service.",
+ "x-ms-examples": {
+ "Stateless service": {
+ "$ref": "./examples/UpdateService-1.json"
+ },
+ "Stateful service": {
+ "$ref": "./examples/UpdateService-2.json"
+ }
+ },
+ "tags": [
+ "Service"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceUpdateDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 202 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/GetDescription": {
+ "get": {
+ "summary": "Gets the description of an existing Service Fabric service.",
+ "description": "Gets the description of an existing Service Fabric service. A service must be created before its description can be obtained.",
+ "operationId": "GetServiceDescription",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Service"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code.",
+ "schema": {
+ "$ref": "#/definitions/ServiceDescription"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/GetHealth": {
+ "get": {
+ "summary": "Gets the health of the specified Service Fabric service.",
+ "description": "Gets the health information of the specified service.\nUse EventsHealthStateFilter to filter the collection of health events reported on the service based on the health state.\nUse PartitionsHealthStateFilter to filter the collection of partitions returned.\nIf you specify a service that does not exist in the health store, this request returns an error.",
+ "operationId": "GetServiceHealth",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeHealthStatisticsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Service"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the health information of the specified service.",
+ "schema": {
+ "$ref": "#/definitions/ServiceHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "post": {
+ "summary": "Gets the health of the specified Service Fabric service, by using the specified health policy.",
+ "description": "Gets the health information of the specified service.\nIf the application health policy is specified, the health evaluation uses it to get the aggregated health state.\nIf the policy is not specified, the health evaluation uses the application health policy defined in the application manifest, or the default health policy, if no policy is defined in the manifest.\nUse EventsHealthStateFilter to filter the collection of health events reported on the service based on the health state.\nUse PartitionsHealthStateFilter to filter the collection of partitions returned.\nIf you specify a service that does not exist in the health store, this request returns an error.",
+ "operationId": "GetServiceHealthUsingPolicy",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationHealthPolicyOptionalBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeHealthStatisticsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Service"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the health information of the specified service.",
+ "schema": {
+ "$ref": "#/definitions/ServiceHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/ReportHealth": {
+ "post": {
+ "operationId": "ReportServiceHealth",
+ "summary": "Sends a health report on the Service Fabric service.",
+ "description": "Reports health state of the specified Service Fabric service. The report must contain the information about the source of the health report and property on which it is reported.\nThe report is sent to a Service Fabric gateway Service, which forwards to the health store.\nThe report may be accepted by the gateway, but rejected by the health store after extra validation.\nFor example, the health store may reject the report because of an invalid parameter, like a stale sequence number.\nTo see whether the report was applied in the health store, run GetServiceHealth and check that the report appears in the HealthEvents section.",
+ "tags": [
+ "Service"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/HealthInformationRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ImmediateOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/ResolvePartition": {
+ "get": {
+ "operationId": "ResolveService",
+ "summary": "Resolve a Service Fabric partition.",
+ "description": "Resolve a Service Fabric service partition to get the endpoints of the service replicas.",
+ "tags": [
+ "Service"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionKeyTypeOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionKeyValueOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PreviousRspVersionOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code.",
+ "schema": {
+ "$ref": "#/definitions/ResolvedServicePartition"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/GetUnplacedReplicaInformation": {
+ "get": {
+ "summary": "Gets the information about unplaced replica of the service.",
+ "description": "Returns the information about the unplaced replicas of the service.\nIf PartitionId is specified, then result will contain information only about unplaced replicas for that partition.\nIf PartitionId is not specified, then result will contain information about unplaced replicas for all partitions of that service.\nIf OnlyQueryPrimaries is set to true, then result will contain information only about primary replicas, and will ignore unplaced secondary replicas.",
+ "operationId": "GetUnplacedReplicaInformation",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/OnlyQueryPrimariesOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Service"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the specified service.",
+ "schema": {
+ "$ref": "#/definitions/UnplacedReplicaInformation"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/GetPartitions": {
+ "get": {
+ "summary": "Gets the list of partitions of a Service Fabric service.",
+ "description": "The response includes the partition ID, partitioning scheme information, keys supported by the partition, status, health, and other details about the partition.",
+ "operationId": "GetPartitionInfoList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Partition"
+ ],
+ "responses": {
+ "200": {
+ "description": "List of partitions of a Service Fabric service.",
+ "schema": {
+ "$ref": "#/definitions/PagedServicePartitionInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}": {
+ "get": {
+ "summary": "Gets the information about a Service Fabric partition.",
+ "description": "Gets the information about the specified partition. The response includes the partition ID, partitioning scheme information, keys supported by the partition, status, health, and other details about the partition.",
+ "operationId": "GetPartitionInfo",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Partition"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the specified partition.",
+ "schema": {
+ "$ref": "#/definitions/ServicePartitionInfo"
+ }
+ },
+ "204": {
+ "description": "An empty response is returned if the specified partitionId is not found in the cluster."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/GetServiceName": {
+ "get": {
+ "summary": "Gets the name of the Service Fabric service for a partition.",
+ "description": "Gets name of the service for the specified partition. A 404 error is returned if the partition ID does not exist in the cluster.",
+ "operationId": "GetServiceNameInfo",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Partition"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the name of the service for the specified partition.",
+ "schema": {
+ "$ref": "#/definitions/ServiceNameInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/GetHealth": {
+ "get": {
+ "summary": "Gets the health of the specified Service Fabric partition.",
+ "description": "Use EventsHealthStateFilter to filter the collection of health events reported on the service based on the health state.\nUse ReplicasHealthStateFilter to filter the collection of ReplicaHealthState objects on the partition.\nIf you specify a partition that does not exist in the health store, this request returns an error.",
+ "operationId": "GetPartitionHealth",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ReplicasHealthStateFilerOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeHealthStatisticsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Partition"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the health information about the specified partition.",
+ "schema": {
+ "$ref": "#/definitions/PartitionHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "post": {
+ "summary": "Gets the health of the specified Service Fabric partition, by using the specified health policy.",
+ "description": "Gets the health information of the specified partition.\nIf the application health policy is specified, the health evaluation uses it to get the aggregated health state.\nIf the policy is not specified, the health evaluation uses the application health policy defined in the application manifest, or the default health policy, if no policy is defined in the manifest.\nUse EventsHealthStateFilter to filter the collection of health events reported on the partition based on the health state.\nUse ReplicasHealthStateFilter to filter the collection of ReplicaHealthState objects on the partition. Use ApplicationHealthPolicy in the POST body to override the health policies used to evaluate the health.\nIf you specify a partition that does not exist in the health store, this request returns an error.",
+ "operationId": "GetPartitionHealthUsingPolicy",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ReplicasHealthStateFilerOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationHealthPolicyOptionalBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeHealthStatisticsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Partition"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the health information about the specified partition.",
+ "schema": {
+ "$ref": "#/definitions/PartitionHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/ReportHealth": {
+ "post": {
+ "operationId": "ReportPartitionHealth",
+ "summary": "Sends a health report on the Service Fabric partition.",
+ "description": "Reports health state of the specified Service Fabric partition. The report must contain the information about the source of the health report and property on which it is reported.\nThe report is sent to a Service Fabric gateway Partition, which forwards to the health store.\nThe report may be accepted by the gateway, but rejected by the health store after extra validation.\nFor example, the health store may reject the report because of an invalid parameter, like a stale sequence number.\nTo see whether the report was applied in the health store, run GetPartitionHealth and check that the report appears in the HealthEvents section.",
+ "tags": [
+ "Partition"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/HealthInformationRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ImmediateOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/GetLoadInformation": {
+ "get": {
+ "summary": "Gets the load information of the specified Service Fabric partition.",
+ "description": "Returns information about the load of a specified partition.\nThe response includes a list of load reports for a Service Fabric partition.\nEach report includes the load metric name, value, and last reported time in UTC.",
+ "operationId": "GetPartitionLoadInformation",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Partition"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the specified partition's last reported load metrics.",
+ "schema": {
+ "$ref": "#/definitions/PartitionLoadInformation"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/ResetLoad": {
+ "post": {
+ "operationId": "ResetPartitionLoad",
+ "summary": "Resets the current load of a Service Fabric partition.",
+ "description": "Resets the current load of a Service Fabric partition to the default load for the service.",
+ "tags": [
+ "Partition"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation request will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/Recover": {
+ "post": {
+ "operationId": "RecoverPartition",
+ "summary": "Indicates to the Service Fabric cluster that it should attempt to recover a specific partition that is currently stuck in quorum loss.",
+ "description": "This operation should only be performed if it is known that the replicas that are down cannot be recovered. Incorrect use of this API can cause potential data loss.",
+ "tags": [
+ "Partition"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation request will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/$/{serviceId}/$/GetPartitions/$/Recover": {
+ "post": {
+ "operationId": "RecoverServicePartitions",
+ "summary": "Indicates to the Service Fabric cluster that it should attempt to recover the specified service that is currently stuck in quorum loss.",
+ "description": "Indicates to the Service Fabric cluster that it should attempt to recover the specified service that is currently stuck in quorum loss. This operation should only be performed if it is known that the replicas that are down cannot be recovered. Incorrect use of this API can cause potential data loss.",
+ "tags": [
+ "Partition"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation request will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/RecoverSystemPartitions": {
+ "post": {
+ "operationId": "RecoverSystemPartitions",
+ "summary": "Indicates to the Service Fabric cluster that it should attempt to recover the system services that are currently stuck in quorum loss.",
+ "description": "Indicates to the Service Fabric cluster that it should attempt to recover the system services that are currently stuck in quorum loss. This operation should only be performed if it is known that the replicas that are down cannot be recovered. Incorrect use of this API can cause potential data loss.",
+ "tags": [
+ "Partition"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation request will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/RecoverAllPartitions": {
+ "post": {
+ "operationId": "RecoverAllPartitions",
+ "summary": "Indicates to the Service Fabric cluster that it should attempt to recover any services (including system services) which are currently stuck in quorum loss.",
+ "description": "This operation should only be performed if it is known that the replicas that are down cannot be recovered. Incorrect use of this API can cause potential data loss.",
+ "tags": [
+ "Partition"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation request will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/MovePrimaryReplica": {
+ "post": {
+ "operationId": "MovePrimaryReplica",
+ "summary": "Moves the primary replica of a partition of a stateful service.",
+ "description": "This command moves the primary replica of a partition of a stateful service, respecting all constraints.\nIf NodeName parameter is specified, primary will be moved to the specified node (if constraints allow it).\nIf NodeName parameter is not specified, primary replica will be moved to a random node in the cluster.\nIf IgnoreConstraints parameter is specified and set to true, then primary will be moved regardless of the constraints.",
+ "tags": [
+ "Partition"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-5_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameOptionalParam"
+ },
+ {
+ "$ref": "#/parameters/IgnoreConstraintsOptionalParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation request will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/MoveSecondaryReplica": {
+ "post": {
+ "operationId": "MoveSecondaryReplica",
+ "summary": "Moves the secondary replica of a partition of a stateful service.",
+ "description": "This command moves the secondary replica of a partition of a stateful service, respecting all constraints.\nCurrentNodeName parameter must be specified to identify the replica that is moved.\nSource node name must be specified, but new node name can be omitted, and in that case replica is moved to a random node.\nIf IgnoreConstraints parameter is specified and set to true, then secondary will be moved regardless of the constraints.",
+ "tags": [
+ "Partition"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-5_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/CurrentNodeNameRequiredParam"
+ },
+ {
+ "$ref": "#/parameters/NewNodeNameOptionalParam"
+ },
+ {
+ "$ref": "#/parameters/IgnoreConstraintsOptionalParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation request will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/UpdatePartitionLoad": {
+ "post": {
+ "operationId": "UpdatePartitionLoad",
+ "summary": "Update the loads of provided partitions for specific metrics.",
+ "description": "Updates the load value and predicted load value for all the partitions provided for specified metrics.",
+ "tags": [
+ "Partition"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_7-2_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionMetricLoadDescriptionListRequiredParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List UpdatePartitionLoadResults.",
+ "schema": {
+ "$ref": "#/definitions/PagedUpdatePartitionLoadResultList"
+ }
+ },
+ "default": {
+ "description": "The error code response per specified partition.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/CreateRepairTask": {
+ "post": {
+ "operationId": "CreateRepairTask",
+ "summary": "Creates a new repair task.",
+ "description": "For clusters that have the Repair Manager Service configured,\nthis API provides a way to create repair tasks that run automatically or manually.\nFor repair tasks that run automatically, an appropriate repair executor\nmust be running for each repair action to run automatically.\nThese are currently only available in specially-configured Azure Cloud Services.\n\nTo create a manual repair task, provide the set of impacted node names and the\nexpected impact. When the state of the created repair task changes to approved,\nyou can safely perform repair actions on those nodes.\n\nThis API supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/RepairTaskRequiredBodyParam"
+ }
+ ],
+ "tags": [
+ "RepairManagement"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code.\nThe response body provides information about the created repair task.",
+ "schema": {
+ "$ref": "#/definitions/RepairTaskUpdateInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/CancelRepairTask": {
+ "post": {
+ "operationId": "CancelRepairTask",
+ "summary": "Requests the cancellation of the given repair task.",
+ "description": "This API supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/RepairTaskCancelDescriptionRequiredBodyParam"
+ }
+ ],
+ "tags": [
+ "RepairManagement"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code.\nThe response body provides information about the updated repair task.\nSuccess indicates that the cancellation request was recorded, but does not guarantee that the repair task will be cancelled.\nClients may use the State property of the repair task to determine the current state of the repair task.",
+ "schema": {
+ "$ref": "#/definitions/RepairTaskUpdateInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/DeleteRepairTask": {
+ "post": {
+ "operationId": "DeleteRepairTask",
+ "summary": "Deletes a completed repair task.",
+ "description": "This API supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/RepairTaskDeleteDescriptionRequiredBodyParam"
+ }
+ ],
+ "tags": [
+ "RepairManagement"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/GetRepairTaskList": {
+ "get": {
+ "operationId": "GetRepairTaskList",
+ "summary": "Gets a list of repair tasks matching the given filters.",
+ "description": "This API supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/RepairTaskIdFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/RepairTaskStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/RepairTaskExecutorFilterOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "RepairManagement"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code.\nThe response body provides a list of repair tasks matching all of the given filters.",
+ "schema": {
+ "$ref": "#/definitions/RepairTaskList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/ForceApproveRepairTask": {
+ "post": {
+ "operationId": "ForceApproveRepairTask",
+ "summary": "Forces the approval of the given repair task.",
+ "description": "This API supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/RepairTaskApproveDescriptionRequiredBodyParam"
+ }
+ ],
+ "tags": [
+ "RepairManagement"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code.\nThe response body provides information about the updated repair task.",
+ "schema": {
+ "$ref": "#/definitions/RepairTaskUpdateInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/UpdateRepairTaskHealthPolicy": {
+ "post": {
+ "operationId": "UpdateRepairTaskHealthPolicy",
+ "summary": "Updates the health policy of the given repair task.",
+ "description": "This API supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/RepairTaskUpdateHealthPolicyDescriptionRequiredBodyParam"
+ }
+ ],
+ "tags": [
+ "RepairManagement"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code.\nThe response body provides information about the updated repair task.",
+ "schema": {
+ "$ref": "#/definitions/RepairTaskUpdateInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/UpdateRepairExecutionState": {
+ "post": {
+ "operationId": "UpdateRepairExecutionState",
+ "summary": "Updates the execution state of a repair task.",
+ "description": "This API supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/RepairTaskRequiredBodyParam"
+ }
+ ],
+ "tags": [
+ "RepairManagement"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code.\nThe response body provides information about the updated repair task.",
+ "schema": {
+ "$ref": "#/definitions/RepairTaskUpdateInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/GetReplicas": {
+ "get": {
+ "summary": "Gets the information about replicas of a Service Fabric service partition.",
+ "description": "The GetReplicas endpoint returns information about the replicas of the specified partition. The response includes the ID, role, status, health, node name, uptime, and other details about the replica.",
+ "operationId": "GetReplicaInfoList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Replica"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the replicas of the specified partition.",
+ "schema": {
+ "$ref": "#/definitions/PagedReplicaInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/GetReplicas/{replicaId}": {
+ "get": {
+ "summary": "Gets the information about a replica of a Service Fabric partition.",
+ "description": "The response includes the ID, role, status, health, node name, uptime, and other details about the replica.",
+ "operationId": "GetReplicaInfo",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ReplicaIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Replica"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the specified replicas of the specified partition of a Service Fabric service.",
+ "schema": {
+ "$ref": "#/definitions/ReplicaInfo"
+ }
+ },
+ "204": {
+ "description": "An empty response is returned if the specified replicaId is not a replica of the specified partition."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/GetReplicas/{replicaId}/$/GetHealth": {
+ "get": {
+ "operationId": "GetReplicaHealth",
+ "summary": "Gets the health of a Service Fabric stateful service replica or stateless service instance.",
+ "description": "Gets the health of a Service Fabric replica.\nUse EventsHealthStateFilter to filter the collection of health events reported on the replica based on the health state.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ReplicaIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Replica"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested replica health.",
+ "schema": {
+ "$ref": "#/definitions/ReplicaHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "GetReplicaHealthUsingPolicy",
+ "summary": "Gets the health of a Service Fabric stateful service replica or stateless service instance using the specified policy.",
+ "description": "Gets the health of a Service Fabric stateful service replica or stateless service instance.\nUse EventsHealthStateFilter to filter the collection of health events reported on the cluster based on the health state.\nUse ApplicationHealthPolicy to optionally override the health policies used to evaluate the health. This API only uses 'ConsiderWarningAsError' field of the ApplicationHealthPolicy. The rest of the fields are ignored while evaluating the health of the replica.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ReplicaIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationHealthPolicyOptionalBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Replica"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested replica health information.",
+ "schema": {
+ "$ref": "#/definitions/ReplicaHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/GetReplicas/{replicaId}/$/ReportHealth": {
+ "post": {
+ "operationId": "ReportReplicaHealth",
+ "summary": "Sends a health report on the Service Fabric replica.",
+ "description": "Reports health state of the specified Service Fabric replica. The report must contain the information about the source of the health report and property on which it is reported.\nThe report is sent to a Service Fabric gateway Replica, which forwards to the health store.\nThe report may be accepted by the gateway, but rejected by the health store after extra validation.\nFor example, the health store may reject the report because of an invalid parameter, like a stale sequence number.\nTo see whether the report was applied in the health store, run GetReplicaHealth and check that the report appears in the HealthEvents section.",
+ "tags": [
+ "Replica"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ReplicaIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ReplicaHealthReportServiceKindRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/HealthInformationRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ImmediateOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetReplicas": {
+ "get": {
+ "operationId": "GetDeployedServiceReplicaInfoList",
+ "summary": "Gets the list of replicas deployed on a Service Fabric node.",
+ "description": "Gets the list containing the information about replicas deployed on a Service Fabric node. The information include partition ID, replica ID, status of the replica, name of the service, name of the service type, and other information. Use PartitionId or ServiceManifestName query parameters to return information about the deployed replicas matching the specified values for those parameters.",
+ "tags": [
+ "Replica"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceManifestNameOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the list of deployed service replica information.",
+ "schema": {
+ "$ref": "#/definitions/DeployedServiceReplicaInfoList"
+ }
+ },
+ "204": {
+ "description": "An empty response is returned if the specified applicationId is not found on the specified node. An empty response is also returned if there are no replicas matching the specified filter values for PartitionId or ServiceManifestName query parameters."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetPartitions/{partitionId}/$/GetReplicas/{replicaId}/$/GetDetail": {
+ "get": {
+ "operationId": "GetDeployedServiceReplicaDetailInfo",
+ "summary": "Gets the details of replica deployed on a Service Fabric node.",
+ "description": "Gets the details of the replica deployed on a Service Fabric node. The information includes service kind, service name, current service operation, current service operation start date time, partition ID, replica/instance ID, reported load, and other information.",
+ "tags": [
+ "Replica"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ReplicaIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the list of deployed service replica information.",
+ "schema": {
+ "$ref": "#/definitions/DeployedServiceReplicaDetailInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetPartitions/{partitionId}/$/GetReplicas": {
+ "get": {
+ "operationId": "GetDeployedServiceReplicaDetailInfoByPartitionId",
+ "summary": "Gets the details of replica deployed on a Service Fabric node.",
+ "description": "Gets the details of the replica deployed on a Service Fabric node. The information includes service kind, service name, current service operation, current service operation start date time, partition ID, replica/instance ID, reported load, and other information.",
+ "tags": [
+ "Replica"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the list of deployed service replica information.",
+ "schema": {
+ "$ref": "#/definitions/DeployedServiceReplicaDetailInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetPartitions/{partitionId}/$/GetReplicas/{replicaId}/$/Restart": {
+ "post": {
+ "operationId": "RestartReplica",
+ "summary": "Restarts a service replica of a persisted service running on a node.",
+ "description": "Restarts a service replica of a persisted service running on a node. Warning - There are no safety checks performed when this API is used. Incorrect use of this API can lead to availability loss for stateful services.",
+ "tags": [
+ "Replica"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ReplicaIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code. A successful operation means that the restart command was received by the replica on the node and it is in the process of restarting."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetPartitions/{partitionId}/$/GetReplicas/{replicaId}/$/Delete": {
+ "post": {
+ "operationId": "RemoveReplica",
+ "summary": "Removes a service replica running on a node.",
+ "description": "This API simulates a Service Fabric replica failure by removing a replica from a Service Fabric cluster. The removal closes the replica, transitions the replica to the role None, and then removes all of the state information of the replica from the cluster. This API tests the replica state removal path, and simulates the report fault permanent path through client APIs. Warning - There are no safety checks performed when this API is used. Incorrect use of this API can lead to data loss for stateful services. In addition, the forceRemove flag impacts all other replicas hosted in the same process.",
+ "tags": [
+ "Replica"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ReplicaIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ForceRemoveReplicaOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code. A successful operation means that the restart command was received by the replica on the node and it is in the process of restarting."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServicePackages": {
+ "get": {
+ "operationId": "GetDeployedServicePackageInfoList",
+ "summary": "Gets the list of service packages deployed on a Service Fabric node.",
+ "description": "Returns the information about the service packages deployed on a Service Fabric node for the given application.",
+ "tags": [
+ "Service Package"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the list of deployed service packages information.",
+ "schema": {
+ "$ref": "#/definitions/DeployedServicePackageInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServicePackages/{servicePackageName}": {
+ "get": {
+ "operationId": "GetDeployedServicePackageInfoListByName",
+ "summary": "Gets the list of service packages deployed on a Service Fabric node matching exactly the specified name.",
+ "description": "Returns the information about the service packages deployed on a Service Fabric node for the given application. These results are of service packages whose name match exactly the service package name specified as the parameter.",
+ "tags": [
+ "Service Package"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServicePackageNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the list of deployed service packages information.",
+ "schema": {
+ "$ref": "#/definitions/DeployedServicePackageInfoList"
+ }
+ },
+ "204": {
+ "description": "An empty response is returned if the specified service package from the application is not deployed on the node."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServicePackages/{servicePackageName}/$/GetHealth": {
+ "get": {
+ "operationId": "GetDeployedServicePackageHealth",
+ "summary": "Gets the information about health of a service package for a specific application deployed for a Service Fabric node and application.",
+ "description": "Gets the information about health of a service package for a specific application deployed on a Service Fabric node. Use EventsHealthStateFilter to optionally filter for the collection of HealthEvent objects reported on the deployed service package based on health state.",
+ "tags": [
+ "Service Package"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServicePackageNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the health information of the deployed service package for a specific node and application.",
+ "schema": {
+ "$ref": "#/definitions/DeployedServicePackageHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "GetDeployedServicePackageHealthUsingPolicy",
+ "summary": "Gets the information about health of service package for a specific application deployed on a Service Fabric node using the specified policy.",
+ "description": "Gets the information about health of a service package for a specific application deployed on a Service Fabric node. using the specified policy. Use EventsHealthStateFilter to optionally filter for the collection of HealthEvent objects reported on the deployed service package based on health state. Use ApplicationHealthPolicy to optionally override the health policies used to evaluate the health. This API only uses 'ConsiderWarningAsError' field of the ApplicationHealthPolicy. The rest of the fields are ignored while evaluating the health of the deployed service package.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServicePackageNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EventsHealthStateFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationHealthPolicyOptionalBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Service Package"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the health information of the deployed service package for a specific node and application.",
+ "schema": {
+ "$ref": "#/definitions/DeployedServicePackageHealth"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServicePackages/{servicePackageName}/$/ReportHealth": {
+ "post": {
+ "operationId": "ReportDeployedServicePackageHealth",
+ "summary": "Sends a health report on the Service Fabric deployed service package.",
+ "description": "Reports health state of the service package of the application deployed on a Service Fabric node. The report must contain the information about the source of the health report and property on which it is reported.\nThe report is sent to a Service Fabric gateway Service, which forwards to the health store.\nThe report may be accepted by the gateway, but rejected by the health store after extra validation.\nFor example, the health store may reject the report because of an invalid parameter, like a stale sequence number.\nTo see whether the report was applied in the health store, get deployed service package health and check that the report appears in the HealthEvents section.",
+ "tags": [
+ "Service Package"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServicePackageNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/HealthInformationRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ImmediateOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/DeployServicePackage": {
+ "post": {
+ "operationId": "DeployServicePackageToNode",
+ "summary": "Downloads all of the code packages associated with specified service manifest on the specified node.",
+ "description": "This API provides a way to download code packages including the container images on a specific node outside of the normal application deployment and upgrade path. This is useful for the large code packages and container images to be present on the node before the actual application deployment and upgrade, thus significantly reducing the total time required for the deployment or upgrade.",
+ "tags": [
+ "Service Package"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/DeployServicePackageToNodeRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages": {
+ "get": {
+ "operationId": "GetDeployedCodePackageInfoList",
+ "summary": "Gets the list of code packages deployed on a Service Fabric node.",
+ "description": "Gets the list of code packages deployed on a Service Fabric node for the given application.",
+ "tags": [
+ "Code Package"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceManifestNameOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/CodePackageNameOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the list of deployed code packages information.",
+ "schema": {
+ "$ref": "#/definitions/DeployedCodePackageInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages/$/Restart": {
+ "post": {
+ "operationId": "RestartDeployedCodePackage",
+ "summary": "Restarts a code package deployed on a Service Fabric node in a cluster.",
+ "description": "Restarts a code package deployed on a Service Fabric node in a cluster. This aborts the code package process, which will restart all the user service replicas hosted in that process.",
+ "tags": [
+ "Code Package"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/RestartDeployedCodePackageRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages/$/ContainerLogs": {
+ "get": {
+ "operationId": "GetContainerLogsDeployedOnNode",
+ "summary": "Gets the container logs for container deployed on a Service Fabric node.",
+ "description": "Gets the container logs for container deployed on a Service Fabric node for the given code package.",
+ "tags": [
+ "Code Package"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-2_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceManifestNameRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/CodePackageNameRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TailOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PreviousOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "x-ms-examples": {
+ "Get container logs for given code package": {
+ "$ref": "./examples/GetContainerLogsDeployedOnNode-1.json"
+ },
+ "Get last 10 lines of container logs": {
+ "$ref": "./examples/GetContainerLogsDeployedOnNode-2.json"
+ },
+ "Get container logs of previous dead container for given code package": {
+ "$ref": "./examples/GetContainerLogsDeployedOnNode-3.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the container logs for container deployed on a Service Fabric node for the given code package.",
+ "schema": {
+ "$ref": "#/definitions/ContainerLogs"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages/$/ContainerApi": {
+ "post": {
+ "operationId": "InvokeContainerApi",
+ "summary": "Invoke container API on a container deployed on a Service Fabric node.",
+ "description": "Invoke container API on a container deployed on a Service Fabric node for the given code package.",
+ "x-ms-examples": {
+ "Get container logs": {
+ "$ref": "./examples/InvokeContainerApi.json"
+ },
+ "Update container": {
+ "$ref": "./examples/InvokeContainerApi_Post.json"
+ }
+ },
+ "tags": [
+ "Code Package"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-2_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceManifestNameRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/CodePackageNameRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/CodePackageInstanceIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContainerApiRequiredBodyParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and container API response for a container deployed on a Service Fabric node for the given code package.",
+ "schema": {
+ "$ref": "#/definitions/ContainerApiResponse"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ComposeDeployments/$/Create": {
+ "put": {
+ "summary": "Creates a Service Fabric compose deployment.",
+ "description": "Compose is a file format that describes multi-container applications. This API allows deploying container based applications defined in compose format in a Service Fabric cluster. Once the deployment is created, its status can be tracked via the `GetComposeDeploymentStatus` API.",
+ "operationId": "CreateComposeDeployment",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/CreateComposeDeploymentRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Compose Deployment"
+ ],
+ "responses": {
+ "202": {
+ "description": "A successful operation will return 202 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ComposeDeployments/{deploymentName}": {
+ "get": {
+ "summary": "Gets information about a Service Fabric compose deployment.",
+ "description": "Returns the status of the compose deployment that was created or in the process of being created in the Service Fabric cluster and whose name matches the one specified as the parameter. The response includes the name, status, and other details about the deployment.",
+ "operationId": "GetComposeDeploymentStatus",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/DeploymentNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Compose Deployment"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the compose deployment.",
+ "schema": {
+ "$ref": "#/definitions/ComposeDeploymentStatusInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ComposeDeployments": {
+ "get": {
+ "summary": "Gets the list of compose deployments created in the Service Fabric cluster.",
+ "description": "Gets the status about the compose deployments that were created or in the process of being created in the Service Fabric cluster. The response includes the name, status, and other details about the compose deployments. If the list of deployments do not fit in a page, one page of results is returned as well as a continuation token, which can be used to get the next page.",
+ "operationId": "GetComposeDeploymentStatusList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Compose Deployment"
+ ],
+ "responses": {
+ "200": {
+ "description": "List of status of compose deployments in the cluster.",
+ "schema": {
+ "$ref": "#/definitions/PagedComposeDeploymentStatusInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ComposeDeployments/{deploymentName}/$/GetUpgradeProgress": {
+ "get": {
+ "summary": "Gets details for the latest upgrade performed on this Service Fabric compose deployment.",
+ "description": "Returns the information about the state of the compose deployment upgrade along with details to aid debugging application health issues.",
+ "operationId": "GetComposeDeploymentUpgradeProgress",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/DeploymentNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Compose Deployment"
+ ],
+ "responses": {
+ "200": {
+ "description": "Details about the compose deployment upgrade.",
+ "schema": {
+ "$ref": "#/definitions/ComposeDeploymentUpgradeProgressInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ComposeDeployments/{deploymentName}/$/Delete": {
+ "post": {
+ "summary": "Deletes an existing Service Fabric compose deployment from cluster.",
+ "description": "Deletes an existing Service Fabric compose deployment.",
+ "operationId": "RemoveComposeDeployment",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/DeploymentNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Compose Deployment"
+ ],
+ "responses": {
+ "202": {
+ "description": "A successful operation will return 202 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ComposeDeployments/{deploymentName}/$/Upgrade": {
+ "post": {
+ "summary": "Starts upgrading a compose deployment in the Service Fabric cluster.",
+ "description": "Validates the supplied upgrade parameters and starts upgrading the deployment if the parameters are valid.",
+ "operationId": "StartComposeDeploymentUpgrade",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/DeploymentNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ComposeDeploymentUpgradeDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Compose Deployment"
+ ],
+ "responses": {
+ "202": {
+ "description": "A successful response means that the upgrade has started. Use GetComposeDeploymentUpgrade operation to get the status of the upgrade."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ComposeDeployments/{deploymentName}/$/RollbackUpgrade": {
+ "post": {
+ "summary": "Starts rolling back a compose deployment upgrade in the Service Fabric cluster.",
+ "description": "Rollback a service fabric compose deployment upgrade.",
+ "operationId": "StartRollbackComposeDeploymentUpgrade",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/DeploymentNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Compose Deployment"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response means that the rollback has started. Use GetComposeDeploymentUpgrade operation to get the status of the rollback."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Tools/Chaos": {
+ "get": {
+ "operationId": "GetChaos",
+ "summary": "Get the status of Chaos.",
+ "description": "Get the status of Chaos indicating whether or not Chaos is running, the Chaos parameters used for running Chaos and the status of the Chaos Schedule.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-2_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Chaos"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the status of Chaos.",
+ "schema": {
+ "$ref": "#/definitions/Chaos"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Tools/Chaos/$/Start": {
+ "post": {
+ "operationId": "StartChaos",
+ "summary": "Starts Chaos in the cluster.",
+ "description": "If Chaos is not already running in the cluster, it starts Chaos with the passed in Chaos parameters.\nIf Chaos is already running when this call is made, the call fails with the error code FABRIC_E_CHAOS_ALREADY_RUNNING.\nRefer to the article [Induce controlled Chaos in Service Fabric clusters](https://docs.microsoft.com/azure/service-fabric/service-fabric-controlled-chaos) for more details.",
+ "tags": [
+ "Chaos"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ChaosParametersRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Tools/Chaos/$/Stop": {
+ "post": {
+ "operationId": "StopChaos",
+ "summary": "Stops Chaos if it is running in the cluster and put the Chaos Schedule in a stopped state.",
+ "description": "Stops Chaos from executing new faults. In-flight faults will continue to execute until they are complete. The current Chaos Schedule is put into a stopped state.\nOnce a schedule is stopped, it will stay in the stopped state and not be used to Chaos Schedule new runs of Chaos. A new Chaos Schedule must be set in order to resume scheduling.",
+ "tags": [
+ "Chaos"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Tools/Chaos/Events": {
+ "get": {
+ "operationId": "GetChaosEvents",
+ "summary": "Gets the next segment of the Chaos events based on the continuation token or the time range.",
+ "description": "To get the next segment of the Chaos events, you can specify the ContinuationToken. To get the start of a new segment of Chaos events, you can specify the time range\nthrough StartTimeUtc and EndTimeUtc. You cannot specify both the ContinuationToken and the time range in the same call.\nWhen there are more than 100 Chaos events, the Chaos events are returned in multiple segments where a segment contains no more than 100 Chaos events and to get the next segment you make a call to this API with the continuation token.",
+ "x-ms-examples": {
+ "Get Chaos events given a time range": {
+ "$ref": "./examples/GetChaosEvents.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-2_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartTimeUtcOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndTimeUtcOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Chaos"
+ ],
+ "responses": {
+ "200": {
+ "description": "Next segment of Chaos events.",
+ "schema": {
+ "$ref": "#/definitions/ChaosEventsSegment"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Tools/Chaos/Schedule": {
+ "get": {
+ "operationId": "GetChaosSchedule",
+ "summary": "Get the Chaos Schedule defining when and how to run Chaos.",
+ "description": "Gets the version of the Chaos Schedule in use and the Chaos Schedule that defines when and how to run Chaos.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-2_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Chaos"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the schedule description including a Chaos Schedule used by Chaos and the version the Chaos Schedule is on.",
+ "schema": {
+ "$ref": "#/definitions/ChaosScheduleDescription"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "PostChaosSchedule",
+ "summary": "Set the schedule used by Chaos.",
+ "description": "Chaos will automatically schedule runs based on the Chaos Schedule.\nThe Chaos Schedule will be updated if the provided version matches the version on the server.\nWhen updating the Chaos Schedule, the version on the server is incremented by 1.\nThe version on the server will wrap back to 0 after reaching a large number.\nIf Chaos is running when this call is made, the call will fail.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-2_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ChaosScheduleRequiredBodyParam"
+ }
+ ],
+ "tags": [
+ "Chaos"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ImageStore/{contentPath}": {
+ "put": {
+ "summary": "Uploads contents of the file to the image store.",
+ "description": "Uploads contents of the file to the image store. Use this API if the file is small enough to upload again if the connection fails. The file's data needs to be added to the request body. The contents will be uploaded to the specified path. Image store service uses a mark file to indicate the availability of the folder. The mark file is an empty file named \"_.dir\". The mark file is generated by the image store service when all files in a folder are uploaded. When using File-by-File approach to upload application package in REST, the image store service isn't aware of the file hierarchy of the application package; you need to create a mark file per folder and upload it last, to let the image store service know that the folder is complete.",
+ "operationId": "UploadFile",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ImageStoreContentPathRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ImageStore"
+ ],
+ "responses": {
+ "200": {
+ "description": "If the upload request succeeds, the server returns the HTTP 200 OK status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "get": {
+ "summary": "Gets the image store content information.",
+ "description": "Returns the information about the image store content at the specified contentPath. The contentPath is relative to the root of the image store.",
+ "operationId": "GetImageStoreContent",
+ "x-ms-examples": {
+ "Get information about image store content under a given relative path": {
+ "$ref": "./examples/GetImageStoreContent.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-2_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ImageStoreContentPathRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ImageStore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested image store content information.",
+ "schema": {
+ "$ref": "#/definitions/ImageStoreContent"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Deletes existing image store content.",
+ "description": "Deletes existing image store content being found within the given image store relative path. This command can be used to delete uploaded application packages once they are provisioned.",
+ "operationId": "DeleteImageStoreContent",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ImageStoreContentPathRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ImageStore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ImageStore": {
+ "get": {
+ "summary": "Gets the content information at the root of the image store.",
+ "description": "Returns the information about the image store content at the root of the image store.",
+ "operationId": "GetImageStoreRootContent",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ImageStore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested image store content information.",
+ "schema": {
+ "$ref": "#/definitions/ImageStoreContent"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ImageStore/$/Copy": {
+ "post": {
+ "summary": "Copies image store content internally",
+ "description": "Copies the image store content from the source image store relative path to the destination image store relative path.",
+ "operationId": "CopyImageStoreContent",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ImageStoreCopyDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ImageStore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ImageStore/$/DeleteUploadSession": {
+ "delete": {
+ "summary": "Cancels an image store upload session.",
+ "description": "The DELETE request will cause the existing upload session to expire and remove any previously uploaded file chunks.",
+ "operationId": "DeleteImageStoreUploadSession",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/UploadSessionIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ImageStore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ImageStore/$/CommitUploadSession": {
+ "post": {
+ "summary": "Commit an image store upload session.",
+ "description": "When all file chunks have been uploaded, the upload session needs to be committed explicitly to complete the upload. Image store preserves the upload session until the expiration time, which is 30 minutes after the last chunk received. ",
+ "operationId": "CommitImageStoreUploadSession",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/UploadSessionIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ImageStore"
+ ],
+ "responses": {
+ "200": {
+ "description": "If the commit request succeeds, the server returns the HTTP 200 OK status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ImageStore/$/GetUploadSession": {
+ "get": {
+ "summary": "Get the image store upload session by ID.",
+ "description": "Gets the image store upload session identified by the given ID. User can query the upload session at any time during uploading. ",
+ "operationId": "GetImageStoreUploadSessionById",
+ "x-ms-examples": {
+ "Get information about image store upload session by a given ID": {
+ "$ref": "./examples/GetUploadSessionById.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/UploadSessionIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ImageStore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested image store upload session information.",
+ "schema": {
+ "$ref": "#/definitions/UploadSession"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ImageStore/{contentPath}/$/GetUploadSession": {
+ "get": {
+ "summary": "Get the image store upload session by relative path.",
+ "description": "Gets the image store upload session associated with the given image store relative path. User can query the upload session at any time during uploading. ",
+ "operationId": "GetImageStoreUploadSessionByPath",
+ "x-ms-examples": {
+ "Get information about image store upload session by a given relative path": {
+ "$ref": "./examples/GetUploadSessionByPath.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ImageStoreContentPathRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ImageStore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested image store upload session information.",
+ "schema": {
+ "$ref": "#/definitions/UploadSession"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ImageStore/{contentPath}/$/UploadChunk": {
+ "put": {
+ "summary": "Uploads a file chunk to the image store relative path.",
+ "description": "Uploads a file chunk to the image store with the specified upload session ID and image store relative path. This API allows user to resume the file upload operation. user doesn't have to restart the file upload from scratch whenever there is a network interruption. Use this option if the file size is large.\n\nTo perform a resumable file upload, user need to break the file into multiple chunks and upload these chunks to the image store one-by-one. Chunks don't have to be uploaded in order. If the file represented by the image store relative path already exists, it will be overwritten when the upload session commits.",
+ "operationId": "UploadFileChunk",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ImageStoreContentPathRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/UploadSessionIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/UploadFileChunkContentRangeHeaderParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ImageStore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return the HTTP 200 OK status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ImageStore/$/FolderSize": {
+ "get": {
+ "summary": "Get the folder size at the root of the image store.",
+ "description": "Returns the total size of files at the root and children folders in image store.",
+ "operationId": "GetImageStoreRootFolderSize",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-5_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ImageStore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested folder size in image store.",
+ "schema": {
+ "$ref": "#/definitions/FolderSizeInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ImageStore/{contentPath}/$/FolderSize": {
+ "get": {
+ "summary": "Get the size of a folder in image store",
+ "description": "Gets the total size of file under a image store folder, specified by contentPath. The contentPath is relative to the root of the image store.",
+ "operationId": "GetImageStoreFolderSize",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-5_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ImageStoreContentPathRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ImageStore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested folder size in image store.",
+ "schema": {
+ "$ref": "#/definitions/FolderSizeInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/ImageStore/$/Info": {
+ "get": {
+ "summary": "Gets the overall ImageStore information",
+ "description": "Returns information about the primary ImageStore replica, such as disk capacity and available disk space at the node it is on, and several categories of the ImageStore's file system usage.",
+ "operationId": "GetImageStoreInfo",
+ "x-ms-examples": {
+ "Gets the overall ImageStore information": {
+ "$ref": "./examples/GetImageStoreInfo.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-5_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "ImageStore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the requested ImageStore info",
+ "schema": {
+ "$ref": "#/definitions/ImageStoreInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/InvokeInfrastructureCommand": {
+ "post": {
+ "operationId": "InvokeInfrastructureCommand",
+ "summary": "Invokes an administrative command on the given Infrastructure Service instance.",
+ "description": "For clusters that have one or more instances of the Infrastructure Service configured,\nthis API provides a way to send infrastructure-specific commands to a particular\ninstance of the Infrastructure Service.\n\nAvailable commands and their corresponding response formats vary depending upon\nthe infrastructure on which the cluster is running.\n\nThis API supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/InfrastructureCommandRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/InfrastructureServiceIdOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Infrastructure"
+ ],
+ "responses": {
+ "200": {
+ "description": "The response from the infrastructure service. The response format is a JSON stream.\nThe contents of the response depend on which command was issued.",
+ "schema": {
+ "$ref": "#/definitions/InfrastructureServiceResponse"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/$/InvokeInfrastructureQuery": {
+ "get": {
+ "operationId": "InvokeInfrastructureQuery",
+ "summary": "Invokes a read-only query on the given infrastructure service instance.",
+ "description": "For clusters that have one or more instances of the Infrastructure Service configured,\nthis API provides a way to send infrastructure-specific queries to a particular\ninstance of the Infrastructure Service.\n\nAvailable commands and their corresponding response formats vary depending upon\nthe infrastructure on which the cluster is running.\n\nThis API supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/InfrastructureCommandRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/InfrastructureServiceIdOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Infrastructure"
+ ],
+ "responses": {
+ "200": {
+ "description": "The response from the infrastructure service. The response format is a JSON stream.\nThe contents of the response depend on which command was issued.",
+ "schema": {
+ "$ref": "#/definitions/InfrastructureServiceResponse"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/StartDataLoss": {
+ "post": {
+ "operationId": "StartDataLoss",
+ "summary": "This API will induce data loss for the specified partition. It will trigger a call to the OnDataLossAsync API of the partition.",
+ "description": "This API will induce data loss for the specified partition. It will trigger a call to the OnDataLoss API of the partition.\nActual data loss will depend on the specified DataLossMode.\n\n- PartialDataLoss - Only a quorum of replicas are removed and OnDataLoss is triggered for the partition but actual data loss depends on the presence of in-flight replication.\n- FullDataLoss - All replicas are removed hence all data is lost and OnDataLoss is triggered.\n\nThis API should only be called with a stateful service as the target.\n\nCalling this API with a system service as the target is not advised.\n\nNote: Once this API has been called, it cannot be reversed. Calling CancelOperation will only stop execution and clean up internal system state.\nIt will not restore data if the command has progressed far enough to cause data loss.\n\nCall the GetDataLossProgress API with the same OperationId to return information on the operation started with this API.",
+ "tags": [
+ "Faults"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/FaultOperationIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/DataLossModeRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the operation was accepted. Call the GetDataLossProgress API to get the progress."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/GetDataLossProgress": {
+ "get": {
+ "summary": "Gets the progress of a partition data loss operation started using the StartDataLoss API.",
+ "description": "Gets the progress of a data loss operation started with StartDataLoss, using the OperationId.",
+ "operationId": "GetDataLossProgress",
+ "x-ms-examples": {
+ "Gets information about a partition data loss operation. In this case the operation has a State of Completed": {
+ "$ref": "./examples/GetDataLossProgress.json"
+ },
+ "Get information about a partition data loss operation. In this case the operation is a State of Running": {
+ "$ref": "./examples/GetDataLossProgress-Running.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/FaultOperationIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Faults"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the progress of the partition data loss operation.",
+ "schema": {
+ "$ref": "#/definitions/PartitionDataLossProgress"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/StartQuorumLoss": {
+ "post": {
+ "operationId": "StartQuorumLoss",
+ "summary": "Induces quorum loss for a given stateful service partition.",
+ "description": "This API is useful for a temporary quorum loss situation on your service.\n\nCall the GetQuorumLossProgress API with the same OperationId to return information on the operation started with this API.\n\nThis can only be called on stateful persisted (HasPersistedState==true) services. Do not use this API on stateless services or stateful in-memory only services.",
+ "tags": [
+ "Faults"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/FaultOperationIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/QuorumLossModeRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/QuorumLossDurationRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the operation was accepted. Call the GetQuorumLossProgress API to get the progress."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/GetQuorumLossProgress": {
+ "get": {
+ "summary": "Gets the progress of a quorum loss operation on a partition started using the StartQuorumLoss API.",
+ "description": "Gets the progress of a quorum loss operation started with StartQuorumLoss, using the provided OperationId.",
+ "operationId": "GetQuorumLossProgress",
+ "x-ms-examples": {
+ "Gets information about a completed quorum loss operation": {
+ "$ref": "./examples/GetQuorumLossProgress.json"
+ },
+ "Gets information about a running quorum operation operation": {
+ "$ref": "./examples/GetQuorumLossProgress-Running.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/FaultOperationIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Faults"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the progress of a partition quorum loss operation.",
+ "schema": {
+ "$ref": "#/definitions/PartitionQuorumLossProgress"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/StartRestart": {
+ "post": {
+ "operationId": "StartPartitionRestart",
+ "summary": "This API will restart some or all replicas or instances of the specified partition.",
+ "description": "This API is useful for testing failover.\n\nIf used to target a stateless service partition, RestartPartitionMode must be AllReplicasOrInstances.\n\nCall the GetPartitionRestartProgress API using the same OperationId to get the progress.",
+ "tags": [
+ "Faults"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/FaultOperationIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/RestartPartitionModeRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the operation was accepted. Call the GetPartitionRestartProgress API to get the progress."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/GetRestartProgress": {
+ "get": {
+ "summary": "Gets the progress of a PartitionRestart operation started using StartPartitionRestart.",
+ "description": "Gets the progress of a PartitionRestart started with StartPartitionRestart using the provided OperationId.",
+ "operationId": "GetPartitionRestartProgress",
+ "x-ms-examples": {
+ "Get information a completed PartitionRestart operation": {
+ "$ref": "./examples/GetPartitionRestartProgress.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/FaultOperationIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Faults"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the progress of a partition restart operation.",
+ "schema": {
+ "$ref": "#/definitions/PartitionRestartProgress"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Faults/Nodes/{nodeName}/$/StartTransition/": {
+ "post": {
+ "operationId": "StartNodeTransition",
+ "summary": "Starts or stops a cluster node.",
+ "description": "Starts or stops a cluster node. A cluster node is a process, not the OS instance itself. To start a node, pass in \"Start\" for the NodeTransitionType parameter.\nTo stop a node, pass in \"Stop\" for the NodeTransitionType parameter. This API starts the operation - when the API returns the node may not have finished transitioning yet.\nCall GetNodeTransitionProgress with the same OperationId to get the progress of the operation.",
+ "tags": [
+ "Faults"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/FaultOperationIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeTransitionTypeRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeInstanceIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StopDurationInSecondsRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the operation was accepted. Call the GetNodeTransitionProgress API to get the progress."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Faults/Nodes/{nodeName}/$/GetTransitionProgress": {
+ "get": {
+ "summary": "Gets the progress of an operation started using StartNodeTransition.",
+ "description": "Gets the progress of an operation started with StartNodeTransition using the provided OperationId.",
+ "operationId": "GetNodeTransitionProgress",
+ "x-ms-examples": {
+ "Gets information about a completed NodeTransition operation": {
+ "$ref": "./examples/GetNodeTransitionProgress.json"
+ },
+ "Gets information about a running NodeTransition operation": {
+ "$ref": "./examples/GetNodeTransitionProgress-Running.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/FaultOperationIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Faults"
+ ],
+ "responses": {
+ "200": {
+ "description": "Information about the progress of a node transition operation.",
+ "schema": {
+ "$ref": "#/definitions/NodeTransitionProgress"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Faults/": {
+ "get": {
+ "operationId": "GetFaultOperationList",
+ "summary": "Gets a list of user-induced fault operations filtered by provided input.",
+ "description": "Gets the list of user-induced fault operations filtered by provided input.",
+ "x-ms-examples": {
+ "Gets information on fault operations": {
+ "$ref": "./examples/GetFaultOperationList.json"
+ }
+ },
+ "tags": [
+ "Faults"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TypeFilterRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StateFilterRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code.",
+ "schema": {
+ "$ref": "#/definitions/OperationStatusList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Faults/$/Cancel": {
+ "post": {
+ "operationId": "CancelOperation",
+ "summary": "Cancels a user-induced fault operation.",
+ "description": "The following APIs start fault operations that may be cancelled by using CancelOperation: StartDataLoss, StartQuorumLoss, StartPartitionRestart, StartNodeTransition.\n\nIf force is false, then the specified user-induced operation will be gracefully stopped and cleaned up. If force is true, the command will be aborted, and some internal state\nmay be left behind. Specifying force as true should be used with care. Calling this API with force set to true is not allowed until this API has already\nbeen called on the same test command with force set to false first, or unless the test command already has an OperationState of OperationState.RollingBack.\nClarification: OperationState.RollingBack means that the system will be/is cleaning up internal system state caused by executing the command. It will not restore data if the\ntest command was to cause data loss. For example, if you call StartDataLoss then call this API, the system will only clean up internal state from running the command.\nIt will not restore the target partition's data, if the command progressed far enough to cause data loss.\n\nImportant note: if this API is invoked with force==true, internal state may be left behind.",
+ "tags": [
+ "Faults"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/FaultOperationIdRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ForceRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/BackupRestore/BackupPolicies/$/Create": {
+ "post": {
+ "operationId": "CreateBackupPolicy",
+ "summary": "Creates a backup policy.",
+ "description": "Creates a backup policy which can be associated later with a Service Fabric application, service or a partition for periodic backup.",
+ "x-ms-examples": {
+ "Create a time based backup policy with Azure as backup location": {
+ "$ref": "./examples/CreateBackupPolicy-1.json"
+ },
+ "Create a frequency based backup policy with file share as backup location": {
+ "$ref": "./examples/CreateBackupPolicy-2.json"
+ },
+ "Create a time based backup policy with Dsms Azure as backup location": {
+ "$ref": "./examples/CreateBackupPolicy-3.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/BackupPolicyDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "201": {
+ "description": "A successful operation returns 201 status code and creates a new backup policy."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/BackupRestore/BackupPolicies/{backupPolicyName}/$/Delete": {
+ "post": {
+ "operationId": "DeleteBackupPolicy",
+ "summary": "Deletes the backup policy.",
+ "description": "Deletes an existing backup policy. A backup policy must be created before it can be deleted. A currently active backup policy, associated with any Service Fabric application, service or partition, cannot be deleted without first deleting the mapping.",
+ "x-ms-examples": {
+ "Delete backup policy": {
+ "$ref": "./examples/DeleteBackupPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/BackupPolicyNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation returns 200 status code and deletes the backup policy."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/BackupRestore/BackupPolicies": {
+ "get": {
+ "operationId": "GetBackupPolicyList",
+ "summary": "Gets all the backup policies configured.",
+ "description": "Get a list of all the backup policies configured.",
+ "x-ms-examples": {
+ "Limit maximum results": {
+ "$ref": "./examples/GetBackupPolicyList-1.json"
+ },
+ "Page using continuation token": {
+ "$ref": "./examples/GetBackupPolicyList-2.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and paged list of backup policies.",
+ "schema": {
+ "$ref": "#/definitions/PagedBackupPolicyDescriptionList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/BackupRestore/BackupPolicies/{backupPolicyName}": {
+ "get": {
+ "operationId": "GetBackupPolicyByName",
+ "summary": "Gets a particular backup policy by name.",
+ "description": "Gets a particular backup policy identified by {backupPolicyName}",
+ "x-ms-examples": {
+ "Get backup policy by name": {
+ "$ref": "./examples/GetBackupPolicyByName.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/BackupPolicyNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and the backup policy description.",
+ "schema": {
+ "$ref": "#/definitions/BackupPolicyDescription"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/BackupRestore/BackupPolicies/{backupPolicyName}/$/GetBackupEnabledEntities": {
+ "get": {
+ "operationId": "GetAllEntitiesBackedUpByPolicy",
+ "summary": "Gets the list of backup entities that are associated with this policy.",
+ "description": "Returns a list of Service Fabric application, service or partition which are associated with this backup policy.",
+ "x-ms-examples": {
+ "Limit maximum results": {
+ "$ref": "./examples/GetAllEntitiesBackedUpByPolicy-1.json"
+ },
+ "Page using continuation token": {
+ "$ref": "./examples/GetAllEntitiesBackedUpByPolicy-2.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/BackupPolicyNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and a paged list of Service Fabric entities that are associated with this policy.",
+ "schema": {
+ "$ref": "#/definitions/PagedBackupEntityList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/BackupRestore/BackupPolicies/{backupPolicyName}/$/Update": {
+ "post": {
+ "operationId": "UpdateBackupPolicy",
+ "summary": "Updates the backup policy.",
+ "description": "Updates the backup policy identified by {backupPolicyName}",
+ "x-ms-examples": {
+ "Update backup policy": {
+ "$ref": "./examples/UpdateBackupPolicy.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/BackupPolicyDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/BackupPolicyNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation returns 200 status code and updates the backup policy description."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/EnableBackup": {
+ "post": {
+ "operationId": "EnableApplicationBackup",
+ "summary": "Enables periodic backup of stateful partitions under this Service Fabric application.",
+ "description": "Enables periodic backup of stateful partitions which are part of this Service Fabric application. Each partition is backed up individually as per the specified backup policy description. \nNote only C# based Reliable Actor and Reliable Stateful services are currently supported for periodic backup.",
+ "x-ms-examples": {
+ "Enable application backup": {
+ "$ref": "./examples/EnableApplicationBackup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EnableBackupDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the request to enable application backup has been accepted."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/DisableBackup": {
+ "post": {
+ "operationId": "DisableApplicationBackup",
+ "summary": "Disables periodic backup of Service Fabric application.",
+ "description": "Disables periodic backup of Service Fabric application which was previously enabled.",
+ "x-ms-examples": {
+ "Disable application backup": {
+ "$ref": "./examples/DisableApplicationBackup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/DisableBackupDescriptionOptionalBodyParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the request to disable application backup has been accepted."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/GetBackupConfigurationInfo": {
+ "get": {
+ "operationId": "GetApplicationBackupConfigurationInfo",
+ "summary": "Gets the Service Fabric application backup configuration information.",
+ "description": "Gets the Service Fabric backup configuration information for the application and the services and partitions under this application.",
+ "x-ms-examples": {
+ "Limit maximum results": {
+ "$ref": "./examples/GetApplicationBackupConfigurationInfo-1.json"
+ },
+ "Page using continuation token": {
+ "$ref": "./examples/GetApplicationBackupConfigurationInfo-2.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and a paged list of backup configuration information for the application, and the services and partitions under this application, for which backup configuration has been overridden.",
+ "schema": {
+ "$ref": "#/definitions/PagedBackupConfigurationInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/GetBackups": {
+ "get": {
+ "operationId": "GetApplicationBackupList",
+ "summary": "Gets the list of backups available for every partition in this application.",
+ "description": "Returns a list of backups available for every partition in this Service Fabric application. The server enumerates all the backups available at the backup location configured in the backup policy. It also allows filtering of the result based on start and end datetime or just fetching the latest available backup for every partition.",
+ "x-ms-examples": {
+ "Get application backups within a time range": {
+ "$ref": "./examples/GetApplicationBackupList-1.json"
+ },
+ "Get latest backup": {
+ "$ref": "./examples/GetApplicationBackupList-2.json"
+ },
+ "Limit maximum results": {
+ "$ref": "./examples/GetApplicationBackupList-3.json"
+ },
+ "Page using continuation token": {
+ "$ref": "./examples/GetApplicationBackupList-4.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/LatestOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartDateTimeFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndDateTimeFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and a paged list of backup information.",
+ "schema": {
+ "$ref": "#/definitions/PagedBackupInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/SuspendBackup": {
+ "post": {
+ "operationId": "SuspendApplicationBackup",
+ "summary": "Suspends periodic backup for the specified Service Fabric application.",
+ "description": "The application which is configured to take periodic backups, is suspended for taking further backups till it is resumed again. This operation applies to the entire application's hierarchy. It means all the services and partitions under this application are now suspended for backup.",
+ "x-ms-examples": {
+ "Suspend application backup": {
+ "$ref": "./examples/SuspendApplicationBackup.json"
+ }
+ },
+ "tags": [
+ "BackupRestore"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the operation request was accepted and application backup will be suspended."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Applications/{applicationId}/$/ResumeBackup": {
+ "post": {
+ "operationId": "ResumeApplicationBackup",
+ "summary": "Resumes periodic backup of a Service Fabric application which was previously suspended.",
+ "description": "The previously suspended Service Fabric application resumes taking periodic backup as per the backup policy currently configured for the same.",
+ "x-ms-examples": {
+ "Resume application backup": {
+ "$ref": "./examples/ResumeApplicationBackup.json"
+ }
+ },
+ "tags": [
+ "BackupRestore"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the operation request was accepted and application backup will be resumed."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/EnableBackup": {
+ "post": {
+ "operationId": "EnableServiceBackup",
+ "summary": "Enables periodic backup of stateful partitions under this Service Fabric service.",
+ "description": "Enables periodic backup of stateful partitions which are part of this Service Fabric service. Each partition is backed up individually as per the specified backup policy description. In case the application, which the service is part of, is already enabled for backup then this operation would override the policy being used to take the periodic backup for this service and its partitions (unless explicitly overridden at the partition level).\nNote only C# based Reliable Actor and Reliable Stateful services are currently supported for periodic backup.",
+ "x-ms-examples": {
+ "Enable service backup": {
+ "$ref": "./examples/EnableServiceBackup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EnableBackupDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the request to enable service backup has been accepted."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/DisableBackup": {
+ "post": {
+ "operationId": "DisableServiceBackup",
+ "summary": "Disables periodic backup of Service Fabric service which was previously enabled.",
+ "description": "Disables periodic backup of Service Fabric service which was previously enabled. Backup must be explicitly enabled before it can be disabled.\nIn case the backup is enabled for the Service Fabric application, which this service is part of, this service would continue to be periodically backed up as per the policy mapped at the application level.",
+ "x-ms-examples": {
+ "Disable service backup": {
+ "$ref": "./examples/DisableServiceBackup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/DisableBackupDescriptionOptionalBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the request to disable service backup has been accepted."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/GetBackupConfigurationInfo": {
+ "get": {
+ "operationId": "GetServiceBackupConfigurationInfo",
+ "summary": "Gets the Service Fabric service backup configuration information.",
+ "description": "Gets the Service Fabric backup configuration information for the service and the partitions under this service.",
+ "x-ms-examples": {
+ "Limit maximum results": {
+ "$ref": "./examples/GetServiceBackupConfigurationInfo-1.json"
+ },
+ "Page using continuation token": {
+ "$ref": "./examples/GetServiceBackupConfigurationInfo-2.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and a paged list of backup configuration information for the service, and the partitions under this service, for which backup configuration has been overridden.",
+ "schema": {
+ "$ref": "#/definitions/PagedBackupConfigurationInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/GetBackups": {
+ "get": {
+ "operationId": "GetServiceBackupList",
+ "summary": "Gets the list of backups available for every partition in this service.",
+ "description": "Returns a list of backups available for every partition in this Service Fabric service. The server enumerates all the backups available in the backup store configured in the backup policy. It also allows filtering of the result based on start and end datetime or just fetching the latest available backup for every partition.",
+ "x-ms-examples": {
+ "Get application backups within a time range": {
+ "$ref": "./examples/GetServiceBackupList-1.json"
+ },
+ "Get latest backup": {
+ "$ref": "./examples/GetServiceBackupList-2.json"
+ },
+ "Limit maximum results": {
+ "$ref": "./examples/GetServiceBackupList-3.json"
+ },
+ "Page using continuation token": {
+ "$ref": "./examples/GetServiceBackupList-4.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/LatestOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartDateTimeFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndDateTimeFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and a paged list of backup information.",
+ "schema": {
+ "$ref": "#/definitions/PagedBackupInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/SuspendBackup": {
+ "post": {
+ "operationId": "SuspendServiceBackup",
+ "summary": "Suspends periodic backup for the specified Service Fabric service.",
+ "description": "The service which is configured to take periodic backups, is suspended for taking further backups till it is resumed again. This operation applies to the entire service's hierarchy. It means all the partitions under this service are now suspended for backup.",
+ "x-ms-examples": {
+ "Suspend service backup": {
+ "$ref": "./examples/SuspendServiceBackup.json"
+ }
+ },
+ "tags": [
+ "BackupRestore"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the operation request was accepted and service backup will be suspended."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Services/{serviceId}/$/ResumeBackup": {
+ "post": {
+ "operationId": "ResumeServiceBackup",
+ "summary": "Resumes periodic backup of a Service Fabric service which was previously suspended.",
+ "description": "The previously suspended Service Fabric service resumes taking periodic backup as per the backup policy currently configured for the same.",
+ "x-ms-examples": {
+ "Resume service backup": {
+ "$ref": "./examples/ResumeServiceBackup.json"
+ }
+ },
+ "tags": [
+ "BackupRestore"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the operation request was accepted and service backup will be resumed."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/EnableBackup": {
+ "post": {
+ "operationId": "EnablePartitionBackup",
+ "summary": "Enables periodic backup of the stateful persisted partition.",
+ "description": "Enables periodic backup of stateful persisted partition. Each partition is backed up as per the specified backup policy description. In case the application or service, which is partition is part of, is already enabled for backup then this operation would override the policy being used to take the periodic backup of this partition.\nNote only C# based Reliable Actor and Reliable Stateful services are currently supported for periodic backup.",
+ "x-ms-examples": {
+ "Enable partition backup": {
+ "$ref": "./examples/EnablePartitionBackup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/EnableBackupDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the request to enable partition backup has been accepted."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/DisableBackup": {
+ "post": {
+ "operationId": "DisablePartitionBackup",
+ "summary": "Disables periodic backup of Service Fabric partition which was previously enabled.",
+ "description": "Disables periodic backup of partition which was previously enabled. Backup must be explicitly enabled before it can be disabled. \nIn case the backup is enabled for the Service Fabric application or service, which this partition is part of, this partition would continue to be periodically backed up as per the policy mapped at the higher level entity.",
+ "x-ms-examples": {
+ "Disable partition backup": {
+ "$ref": "./examples/DisablePartitionBackup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/DisableBackupDescriptionOptionalBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the request to disable partition backup has been accepted."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/GetBackupConfigurationInfo": {
+ "get": {
+ "operationId": "GetPartitionBackupConfigurationInfo",
+ "summary": "Gets the partition backup configuration information",
+ "description": "Gets the Service Fabric Backup configuration information for the specified partition.",
+ "x-ms-examples": {
+ "Get partition backup configuration information": {
+ "$ref": "./examples/GetPartitionBackupConfigurationInfo.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and gets the partition's backup configuration information.",
+ "schema": {
+ "$ref": "#/definitions/PartitionBackupConfigurationInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/GetBackups": {
+ "get": {
+ "operationId": "GetPartitionBackupList",
+ "summary": "Gets the list of backups available for the specified partition.",
+ "description": "Returns a list of backups available for the specified partition. The server enumerates all the backups available in the backup store configured in the backup policy. It also allows filtering of the result based on start and end datetime or just fetching the latest available backup for the partition.",
+ "x-ms-examples": {
+ "Get application backups within a time range": {
+ "$ref": "./examples/GetPartitionBackupList-1.json"
+ },
+ "Get latest backup": {
+ "$ref": "./examples/GetPartitionBackupList-2.json"
+ },
+ "Limit maximum results": {
+ "$ref": "./examples/GetPartitionBackupList-3.json"
+ },
+ "Page using continuation token": {
+ "$ref": "./examples/GetPartitionBackupList-4.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/LatestOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartDateTimeFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndDateTimeFilterOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and a paged list of backup information.",
+ "schema": {
+ "$ref": "#/definitions/PagedBackupInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/SuspendBackup": {
+ "post": {
+ "operationId": "SuspendPartitionBackup",
+ "summary": "Suspends periodic backup for the specified partition.",
+ "description": "The partition which is configured to take periodic backups, is suspended for taking further backups till it is resumed again.",
+ "x-ms-examples": {
+ "Suspend partition backup": {
+ "$ref": "./examples/SuspendPartitionBackup.json"
+ }
+ },
+ "tags": [
+ "BackupRestore"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the operation request was accepted and partition backup will be suspended."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/ResumeBackup": {
+ "post": {
+ "operationId": "ResumePartitionBackup",
+ "summary": "Resumes periodic backup of partition which was previously suspended.",
+ "description": "The previously suspended partition resumes taking periodic backup as per the backup policy currently configured for the same.",
+ "x-ms-examples": {
+ "Resume partition backup": {
+ "$ref": "./examples/ResumePartitionBackup.json"
+ }
+ },
+ "tags": [
+ "BackupRestore"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the operation request was accepted and partition backup will be resumed."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/Backup": {
+ "post": {
+ "operationId": "BackupPartition",
+ "summary": "Triggers backup of the partition's state.",
+ "description": "Creates a backup of the stateful persisted partition's state. In case the partition is already being periodically backed up, then by default the new backup is created at the same backup storage. One can also override the same by specifying the backup storage details as part of the request body. Once the backup is initiated, its progress can be tracked using the GetBackupProgress operation. \nIn case, the operation times out, specify a greater backup timeout value in the query parameter.",
+ "x-ms-examples": {
+ "Backup partition": {
+ "$ref": "./examples/BackupPartition-1.json"
+ },
+ "Backup partition to a specific Azure storage account": {
+ "$ref": "./examples/BackupPartition-2.json"
+ },
+ "Backup partition to a specific on-premise file share": {
+ "$ref": "./examples/BackupPartition-3.json"
+ },
+ "Backup partition to a specific Dsms Azure storage location": {
+ "$ref": "./examples/BackupPartition-4.json"
+ }
+ },
+ "tags": [
+ "BackupRestore"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/BackupPartitionDescriptionOptionalBodyParam"
+ },
+ {
+ "$ref": "#/parameters/BackupTimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the operation request was accepted and backup will be initiated. Use GetPartitionBackupProgress operation to get the status of the backup operation."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/GetBackupProgress": {
+ "get": {
+ "operationId": "GetPartitionBackupProgress",
+ "summary": "Gets details for the latest backup triggered for this partition.",
+ "description": "Returns information about the state of the latest backup along with details or failure reason in case of completion.",
+ "x-ms-examples": {
+ "Get backup operation progress": {
+ "$ref": "./examples/GetPartitionBackupProgress.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation returns 200 status code and backup progress details.",
+ "schema": {
+ "$ref": "#/definitions/BackupProgressInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/Restore": {
+ "post": {
+ "operationId": "RestorePartition",
+ "summary": "Triggers restore of the state of the partition using the specified restore partition description.",
+ "description": "Restores the state of a of the stateful persisted partition using the specified backup point. In case the partition is already being periodically backed up, then by default the backup point is looked for in the storage specified in backup policy. One can also override the same by specifying the backup storage details as part of the restore partition description in body. Once the restore is initiated, its progress can be tracked using the GetRestoreProgress operation. \nIn case, the operation times out, specify a greater restore timeout value in the query parameter.",
+ "x-ms-examples": {
+ "Trigger partition restore": {
+ "$ref": "./examples/RestorePartition.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/RestorePartitionDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/RestoreTimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "202": {
+ "description": "A 202 status code indicates the operation request was accepted and restore will be initiated. Use GetPartitionRestoreProgress operation to get the status of the restore operation."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Partitions/{partitionId}/$/GetRestoreProgress": {
+ "get": {
+ "operationId": "GetPartitionRestoreProgress",
+ "summary": "Gets details for the latest restore operation triggered for this partition.",
+ "description": "Returns information about the state of the latest restore operation along with details or failure reason in case of completion.",
+ "x-ms-examples": {
+ "Get restore operation progress": {
+ "$ref": "./examples/GetPartitionRestoreProgress.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation returns 200 status code and restore progress details.",
+ "schema": {
+ "$ref": "#/definitions/RestoreProgressInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/BackupRestore/$/GetBackups": {
+ "post": {
+ "operationId": "GetBackupsFromBackupLocation",
+ "summary": "Gets the list of backups available for the specified backed up entity at the specified backup location.",
+ "description": "Gets the list of backups available for the specified backed up entity (Application, Service or Partition) at the specified backup location (FileShare or Azure Blob Storage).",
+ "x-ms-examples": {
+ "Limit maximum results": {
+ "$ref": "./examples/GetBackupsFromBackupLocation-1.json"
+ },
+ "Page using continuation token": {
+ "$ref": "./examples/GetBackupsFromBackupLocation-2.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/MaxResultsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/GetBackupByStorageQueryDescriptionRequiredBodyParam"
+ }
+ ],
+ "tags": [
+ "BackupRestore"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful operation will return 200 status code and a paged list of backup information.",
+ "schema": {
+ "$ref": "#/definitions/PagedBackupInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Names/$/Create": {
+ "post": {
+ "summary": "Creates a Service Fabric name.",
+ "description": "Creates the specified Service Fabric name.",
+ "operationId": "CreateName",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NameDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "x-ms-examples": {
+ "Create new name": {
+ "$ref": "examples/CreateName-1.json"
+ }
+ },
+ "tags": [
+ "Property Management"
+ ],
+ "responses": {
+ "201": {
+ "description": "A successful response means that the name has been created."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Names/{nameId}": {
+ "get": {
+ "summary": "Returns whether the Service Fabric name exists.",
+ "description": "Returns whether the specified Service Fabric name exists.",
+ "operationId": "GetNameExistsInfo",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NameIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Property Management"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response means that the Service Fabric name exists."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Deletes a Service Fabric name.",
+ "description": "Deletes the specified Service Fabric name. A name must be created before it can be deleted. Deleting a name with child properties will fail.",
+ "operationId": "DeleteName",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NameIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Property Management"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response means that the Service Fabric name has been deleted."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Names/{nameId}/$/GetSubNames": {
+ "get": {
+ "summary": "Enumerates all the Service Fabric names under a given name.",
+ "description": "Enumerates all the Service Fabric names under a given name. If the subnames do not fit in a page, one page of results is returned as well as a continuation token, which can be used to get the next page. Querying a name that doesn't exist will fail.",
+ "operationId": "GetSubNameInfoList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NameIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/RecursiveOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "x-ms-examples": {
+ "Get sub names": {
+ "$ref": "examples/GetSubNameInfoList-1.json"
+ },
+ "Recursively search sub names": {
+ "$ref": "examples/GetSubNameInfoList-2.json"
+ },
+ "Page using continuation token": {
+ "$ref": "examples/GetSubNameInfoList-3.json"
+ }
+ },
+ "tags": [
+ "Property Management"
+ ],
+ "responses": {
+ "200": {
+ "description": "A paged list of Service Fabric names.",
+ "schema": {
+ "$ref": "#/definitions/PagedSubNameInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Names/{nameId}/$/GetProperties": {
+ "get": {
+ "summary": "Gets information on all Service Fabric properties under a given name.",
+ "description": "A Service Fabric name can have one or more named properties that store custom information. This operation gets the information about these properties in a paged list. The information includes name, value, and metadata about each of the properties.",
+ "operationId": "GetPropertyInfoList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NameIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/IncludeValuesOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ContinuationTokenOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "x-ms-examples": {
+ "Get property info list": {
+ "$ref": "examples/GetPropertyInfoList-1.json"
+ },
+ "Get property info list with values": {
+ "$ref": "examples/GetPropertyInfoList-2.json"
+ },
+ "Page using continuation token": {
+ "$ref": "examples/GetPropertyInfoList-3.json"
+ }
+ },
+ "tags": [
+ "Property Management"
+ ],
+ "responses": {
+ "200": {
+ "description": "A paged list of Service Fabric properties.",
+ "schema": {
+ "$ref": "#/definitions/PagedPropertyInfoList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Names/{nameId}/$/GetProperty": {
+ "put": {
+ "summary": "Creates or updates a Service Fabric property.",
+ "description": "Creates or updates the specified Service Fabric property under a given name.",
+ "operationId": "PutProperty",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NameIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PropertyDescriptionRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "x-ms-examples": {
+ "Put property": {
+ "$ref": "examples/PutProperty-1.json"
+ },
+ "Put custom property": {
+ "$ref": "examples/PutProperty-2.json"
+ }
+ },
+ "tags": [
+ "Property Management"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response means that the property has been created or updated."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "get": {
+ "summary": "Gets the specified Service Fabric property.",
+ "description": "Gets the specified Service Fabric property under a given name. This will always return both value and metadata.",
+ "operationId": "GetPropertyInfo",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NameIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PropertyNameRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "x-ms-examples": {
+ "Get property info": {
+ "$ref": "examples/GetPropertyInfo-1.json"
+ }
+ },
+ "tags": [
+ "Property Management"
+ ],
+ "responses": {
+ "200": {
+ "description": "Details on the Service Fabric property.",
+ "schema": {
+ "$ref": "#/definitions/PropertyInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Deletes the specified Service Fabric property.",
+ "description": "Deletes the specified Service Fabric property under a given name. A property must be created before it can be deleted.",
+ "operationId": "DeleteProperty",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NameIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PropertyNameRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "Property Management"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response means that the property has been deleted."
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Names/{nameId}/$/GetProperties/$/SubmitBatch": {
+ "post": {
+ "summary": "Submits a property batch.",
+ "description": "Submits a batch of property operations. Either all or none of the operations will be committed.",
+ "operationId": "SubmitPropertyBatch",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NameIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/PropertyBatchDescriptionListRequiredBodyParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "x-ms-examples": {
+ "Property batch operation": {
+ "$ref": "examples/SubmitPropertyBatch-1.json"
+ }
+ },
+ "tags": [
+ "Property Management"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response means that the property batch succeeded.",
+ "schema": {
+ "$ref": "#/definitions/SuccessfulPropertyBatchInfo"
+ }
+ },
+ "409": {
+ "description": "A 409 response means that one of the property batch operations failed, and contains more information about the failure. None of the operations were committed.",
+ "schema": {
+ "$ref": "#/definitions/FailedPropertyBatchInfo"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/EventsStore/Cluster/Events": {
+ "get": {
+ "summary": "Gets all Cluster-related events.",
+ "description": "The response is list of ClusterEvent objects.",
+ "operationId": "GetClusterEventList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsTypesFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeAnalysisEventsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SkipCorrelationLookupOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "EventsStore"
+ ],
+ "x-ms-examples": {
+ "Get Cluster-related events": {
+ "$ref": "./examples/GetClusterEventList.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of events objects with base type ClusterEvent.",
+ "schema": {
+ "$ref": "#/definitions/ClusterEventList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/EventsStore/Containers/Events": {
+ "get": {
+ "summary": "Gets all Containers-related events.",
+ "description": "The response is list of ContainerInstanceEvent objects.",
+ "operationId": "GetContainersEventList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-2-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsTypesFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeAnalysisEventsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SkipCorrelationLookupOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "EventsStore"
+ ],
+ "responses": {
+ "200": {
+ "description": "List of events objects with base type ContainerInstanceEvent.",
+ "schema": {
+ "$ref": "#/definitions/ContainerInstanceEventList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/EventsStore/Nodes/{nodeName}/$/Events": {
+ "get": {
+ "summary": "Gets a Node-related events.",
+ "description": "The response is list of NodeEvent objects.",
+ "operationId": "GetNodeEventList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NodeNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsTypesFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeAnalysisEventsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SkipCorrelationLookupOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "EventsStore"
+ ],
+ "x-ms-examples": {
+ "Get Node-related events": {
+ "$ref": "./examples/GetNodeEventList.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of events objects with base type NodeEvent.",
+ "schema": {
+ "$ref": "#/definitions/NodeEventList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/EventsStore/Nodes/Events": {
+ "get": {
+ "summary": "Gets all Nodes-related Events.",
+ "description": "The response is list of NodeEvent objects.",
+ "operationId": "GetNodesEventList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsTypesFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeAnalysisEventsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SkipCorrelationLookupOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "EventsStore"
+ ],
+ "x-ms-examples": {
+ "Get Nodes-related events": {
+ "$ref": "./examples/GetNodesEventList.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of events objects with base type NodeEvent.",
+ "schema": {
+ "$ref": "#/definitions/NodeEventList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/EventsStore/Applications/{applicationId}/$/Events": {
+ "get": {
+ "summary": "Gets an Application-related events.",
+ "description": "The response is list of ApplicationEvent objects.",
+ "operationId": "GetApplicationEventList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsTypesFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeAnalysisEventsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SkipCorrelationLookupOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "EventsStore"
+ ],
+ "x-ms-examples": {
+ "Get Application-related events": {
+ "$ref": "./examples/GetApplicationEventList.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of events objects with base type ApplicationEvent.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationEventList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/EventsStore/Applications/Events": {
+ "get": {
+ "summary": "Gets all Applications-related events.",
+ "description": "The response is list of ApplicationEvent objects.",
+ "operationId": "GetApplicationsEventList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsTypesFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeAnalysisEventsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SkipCorrelationLookupOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "EventsStore"
+ ],
+ "x-ms-examples": {
+ "Get Applications-related events": {
+ "$ref": "./examples/GetApplicationsEventList.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of events objects with base type ApplicationEvent.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationEventList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/EventsStore/Services/{serviceId}/$/Events": {
+ "get": {
+ "summary": "Gets a Service-related events.",
+ "description": "The response is list of ServiceEvent objects.",
+ "operationId": "GetServiceEventList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsTypesFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeAnalysisEventsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SkipCorrelationLookupOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "EventsStore"
+ ],
+ "x-ms-examples": {
+ "Get Service-related events": {
+ "$ref": "./examples/GetServiceEventList.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of events objects with base type ServiceEvent.",
+ "schema": {
+ "$ref": "#/definitions/ServiceEventList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/EventsStore/Services/Events": {
+ "get": {
+ "summary": "Gets all Services-related events.",
+ "description": "The response is list of ServiceEvent objects.",
+ "operationId": "GetServicesEventList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsTypesFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeAnalysisEventsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SkipCorrelationLookupOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "EventsStore"
+ ],
+ "x-ms-examples": {
+ "Get Services-related events": {
+ "$ref": "./examples/GetServicesEventList.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of events objects with base type ServiceEvent.",
+ "schema": {
+ "$ref": "#/definitions/ServiceEventList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/EventsStore/Partitions/{partitionId}/$/Events": {
+ "get": {
+ "summary": "Gets a Partition-related events.",
+ "description": "The response is list of PartitionEvent objects.",
+ "operationId": "GetPartitionEventList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsTypesFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeAnalysisEventsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SkipCorrelationLookupOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "EventsStore"
+ ],
+ "x-ms-examples": {
+ "Get Partition-related events": {
+ "$ref": "./examples/GetPartitionEventList.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of events objects with base type PartitionEvent.",
+ "schema": {
+ "$ref": "#/definitions/PartitionEventList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/EventsStore/Partitions/Events": {
+ "get": {
+ "summary": "Gets all Partitions-related events.",
+ "description": "The response is list of PartitionEvent objects.",
+ "operationId": "GetPartitionsEventList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsTypesFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeAnalysisEventsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SkipCorrelationLookupOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "EventsStore"
+ ],
+ "x-ms-examples": {
+ "Get Partitions-related events": {
+ "$ref": "./examples/GetPartitionsEventList.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of events objects with base type PartitionEvent.",
+ "schema": {
+ "$ref": "#/definitions/PartitionEventList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/EventsStore/Partitions/{partitionId}/$/Replicas/{replicaId}/$/Events": {
+ "get": {
+ "summary": "Gets a Partition Replica-related events.",
+ "description": "The response is list of ReplicaEvent objects.",
+ "operationId": "GetPartitionReplicaEventList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ReplicaIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsTypesFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeAnalysisEventsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SkipCorrelationLookupOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "EventsStore"
+ ],
+ "x-ms-examples": {
+ "Get Partition Replica-related events": {
+ "$ref": "./examples/GetReplicaEventList.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of events objects with base type ReplicaEvent.",
+ "schema": {
+ "$ref": "#/definitions/ReplicaEventList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/EventsStore/Partitions/{partitionId}/$/Replicas/Events": {
+ "get": {
+ "summary": "Gets all Replicas-related events for a Partition.",
+ "description": "The response is list of ReplicaEvent objects.",
+ "operationId": "GetPartitionReplicasEventList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/PartitionIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/StartTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EndTimeUtcRequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventsTypesFilterOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ExcludeAnalysisEventsOptionalQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SkipCorrelationLookupOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "EventsStore"
+ ],
+ "x-ms-examples": {
+ "Get Partition Replicas-related events": {
+ "$ref": "./examples/GetReplicasEventList.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of events objects with base type ReplicaEvent.",
+ "schema": {
+ "$ref": "#/definitions/ReplicaEventList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/EventsStore/CorrelatedEvents/{eventInstanceId}/$/Events": {
+ "get": {
+ "summary": "Gets all correlated events for a given event.",
+ "description": "The response is list of FabricEvents.",
+ "operationId": "GetCorrelatedEventList",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/EventInstanceIdRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TimeoutOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "EventsStore"
+ ],
+ "x-ms-examples": {
+ "Get Correlated events": {
+ "$ref": "./examples/GetCorrelatedEventList.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "List of events objects with base type FabricEvent.",
+ "schema": {
+ "$ref": "#/definitions/EventList"
+ }
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Secrets/{secretResourceName}": {
+ "put": {
+ "operationId": "MeshSecret_CreateOrUpdate",
+ "x-ms-examples": {
+ "CreateOrUpdateMeshSecret": {
+ "$ref": "./examples/Resources/Secrets/create_update.json"
+ }
+ },
+ "summary": "Creates or updates a Secret resource.",
+ "description": "Creates a Secret resource with the specified name, description and properties. If Secret resource with the same name exists, then it is updated with the specified description and properties. Once created, the kind and contentType of a secret resource cannot be updated.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SecretResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/SecretResourceDescriptionRequiredBodyParam"
+ }
+ ],
+ "tags": [
+ "MeshSecrets"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SecretResourceDescription"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/SecretResourceDescription"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "get": {
+ "operationId": "MeshSecret_Get",
+ "x-ms-examples": {
+ "GetSecretResource": {
+ "$ref": "./examples/Resources/Secrets/get.json"
+ }
+ },
+ "summary": "Gets the Secret resource with the given name.",
+ "description": "Gets the information about the Secret resource with the given name. The information include the description and other properties of the Secret.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SecretResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshSecrets"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SecretResourceDescription"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "MeshSecret_Delete",
+ "x-ms-examples": {
+ "DeleteSecretResource": {
+ "$ref": "./examples/Resources/Secrets/delete.json"
+ }
+ },
+ "summary": "Deletes the Secret resource.",
+ "description": "Deletes the specified Secret resource and all of its named values.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SecretResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshSecrets"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content - the specified secret was not found."
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Secrets": {
+ "get": {
+ "operationId": "MeshSecret_List",
+ "x-ms-examples": {
+ "ListMeshSecrets": {
+ "$ref": "./examples/Resources/Secrets/list.json"
+ }
+ },
+ "summary": "Lists all the secret resources.",
+ "description": "Gets the information about all secret resources in a given resource group. The information include the description and other properties of the Secret.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ }
+ ],
+ "tags": [
+ "MeshSecrets"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PagedSecretResourceDescriptionList"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Secrets/{secretResourceName}/values/{secretValueResourceName}": {
+ "put": {
+ "operationId": "MeshSecretValue_AddValue",
+ "x-ms-examples": {
+ "CreateMeshSecretValue": {
+ "$ref": "./examples/Resources/Secrets/values/create.json"
+ }
+ },
+ "summary": "Adds the specified value as a new version of the specified secret resource.",
+ "description": "Creates a new value of the specified secret resource. The name of the value is typically the version identifier. Once created the value cannot be changed.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SecretResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/SecretValueResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/SecretValueResourceDescriptionRequiredBodyParam"
+ }
+ ],
+ "tags": [
+ "MeshSecretValues"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SecretValueResourceDescription"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/SecretValueResourceDescription"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "get": {
+ "operationId": "MeshSecretValue_Get",
+ "x-ms-examples": {
+ "GetMeshSecretValue": {
+ "$ref": "./examples/Resources/Secrets/values/get.json"
+ }
+ },
+ "summary": "Gets the specified secret value resource.",
+ "description": "Get the information about the specified named secret value resources. The information does not include the actual value of the secret.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SecretResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/SecretValueResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshSecretValues"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SecretValueResourceDescription"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "MeshSecretValue_Delete",
+ "x-ms-examples": {
+ "DeleteSecretValue": {
+ "$ref": "./examples/Resources/Secrets/values/delete.json"
+ }
+ },
+ "summary": "Deletes the specified value of the named secret resource.",
+ "description": "Deletes the secret value resource identified by the name. The name of the resource is typically the version associated with that value. Deletion will fail if the specified value is in use.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SecretResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/SecretValueResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshSecretValues"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content - the specified secret value was not found."
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Secrets/{secretResourceName}/values": {
+ "get": {
+ "operationId": "MeshSecretValue_List",
+ "x-ms-examples": {
+ "ListMeshSecretValues": {
+ "$ref": "./examples/Resources/Secrets/values/list.json"
+ }
+ },
+ "summary": "List names of all values of the specified secret resource.",
+ "description": "Gets information about all secret value resources of the specified secret resource. The information includes the names of the secret value resources, but not the actual values.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SecretResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshSecretValues"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PagedSecretValueResourceDescriptionList"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Secrets/{secretResourceName}/values/{secretValueResourceName}/list_value": {
+ "post": {
+ "operationId": "MeshSecretValue_Show",
+ "x-ms-examples": {
+ "ListMeshSecretValue": {
+ "$ref": "./examples/Resources/Secrets/values/list_value.json"
+ }
+ },
+ "summary": "Lists the specified value of the secret resource.",
+ "description": "Lists the decrypted value of the specified named value of the secret resource. This is a privileged operation.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/SecretResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/SecretValueResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshSecretValues"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SecretValue"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Volumes/{volumeResourceName}": {
+ "put": {
+ "operationId": "MeshVolume_CreateOrUpdate",
+ "x-ms-examples": {
+ "CreateOrUpdateMeshVolume": {
+ "$ref": "./examples/Resources/Volumes/create_update.json"
+ }
+ },
+ "summary": "Creates or updates a Volume resource.",
+ "description": "Creates a Volume resource with the specified name, description and properties. If Volume resource with the same name exists, then it is updated with the specified description and properties.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/VolumeResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/VolumeResourceDescriptionRequiredBodyParam"
+ }
+ ],
+ "tags": [
+ "MeshVolumes"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VolumeResourceDescription"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/VolumeResourceDescription"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "get": {
+ "operationId": "MeshVolume_Get",
+ "x-ms-examples": {
+ "GetVolumeResource": {
+ "$ref": "./examples/Resources/Volumes/get.json"
+ }
+ },
+ "summary": "Gets the Volume resource with the given name.",
+ "description": "Gets the information about the Volume resource with the given name. The information include the description and other properties of the Volume.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/VolumeResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshVolumes"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VolumeResourceDescription"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "MeshVolume_Delete",
+ "x-ms-examples": {
+ "DeleteVolumeResource": {
+ "$ref": "./examples/Resources/Volumes/delete.json"
+ }
+ },
+ "summary": "Deletes the Volume resource.",
+ "description": "Deletes the Volume resource identified by the name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/VolumeResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshVolumes"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content - the specified volume was not found."
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Volumes": {
+ "get": {
+ "operationId": "MeshVolume_List",
+ "x-ms-examples": {
+ "ListMeshVolumes": {
+ "$ref": "./examples/Resources/Volumes/list.json"
+ }
+ },
+ "summary": "Lists all the volume resources.",
+ "description": "Gets the information about all volume resources in a given resource group. The information include the description and other properties of the Volume.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ }
+ ],
+ "tags": [
+ "MeshVolumes"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PagedVolumeResourceDescriptionList"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Networks/{networkResourceName}": {
+ "put": {
+ "operationId": "MeshNetwork_CreateOrUpdate",
+ "x-ms-examples": {
+ "CreateOrUpdateMeshNetwork": {
+ "$ref": "./examples/Resources/Networks/create_update.json"
+ }
+ },
+ "summary": "Creates or updates a Network resource.",
+ "description": "Creates a Network resource with the specified name, description and properties. If Network resource with the same name exists, then it is updated with the specified description and properties. Network resource provides connectivity between application services.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NetworkResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/NetworkResourceDescriptionRequiredBodyParam"
+ }
+ ],
+ "tags": [
+ "MeshNetworks"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/NetworkResourceDescription"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/NetworkResourceDescription"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "get": {
+ "operationId": "MeshNetwork_Get",
+ "x-ms-examples": {
+ "GetNetworkResource": {
+ "$ref": "./examples/Resources/Networks/get.json"
+ }
+ },
+ "summary": "Gets the Network resource with the given name.",
+ "description": "Gets the information about the Network resource with the given name. The information include the description and other properties of the Network.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NetworkResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshNetworks"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/NetworkResourceDescription"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "MeshNetwork_Delete",
+ "x-ms-examples": {
+ "DeleteNetworkResource": {
+ "$ref": "./examples/Resources/Networks/delete.json"
+ }
+ },
+ "summary": "Deletes the Network resource.",
+ "description": "Deletes the Network resource identified by the name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/NetworkResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshNetworks"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content - the specified network was not found."
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Networks": {
+ "get": {
+ "operationId": "MeshNetwork_List",
+ "x-ms-examples": {
+ "ListMeshNetworks": {
+ "$ref": "./examples/Resources/Networks/list.json"
+ }
+ },
+ "summary": "Lists all the network resources.",
+ "description": "Gets the information about all network resources in a given resource group. The information include the description and other properties of the Network.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ }
+ ],
+ "tags": [
+ "MeshNetworks"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PagedNetworkResourceDescriptionList"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Applications/{applicationResourceName}": {
+ "put": {
+ "operationId": "MeshApplication_CreateOrUpdate",
+ "x-ms-examples": {
+ "CreateOrUpdateMeshApplication": {
+ "$ref": "./examples/Resources/Applications/create_update.json"
+ },
+ "CreateOrUpdateMeshApplicationWithAutoScale": {
+ "$ref": "./examples/Resources/Applications/create_update.autoscale.json"
+ }
+ },
+ "summary": "Creates or updates a Application resource.",
+ "description": "Creates a Application resource with the specified name, description and properties. If Application resource with the same name exists, then it is updated with the specified description and properties.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationResourceDescriptionRequiredBodyParam"
+ }
+ ],
+ "tags": [
+ "MeshApplications"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ApplicationResourceDescription"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/ApplicationResourceDescription"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "get": {
+ "operationId": "MeshApplication_Get",
+ "x-ms-examples": {
+ "GetApplicationResource": {
+ "$ref": "./examples/Resources/Applications/get.json"
+ }
+ },
+ "summary": "Gets the Application resource with the given name.",
+ "description": "Gets the information about the Application resource with the given name. The information include the description and other properties of the Application.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshApplications"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ApplicationResourceDescription"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "MeshApplication_Delete",
+ "x-ms-examples": {
+ "DeleteApplicationResource": {
+ "$ref": "./examples/Resources/Applications/delete.json"
+ }
+ },
+ "summary": "Deletes the Application resource.",
+ "description": "Deletes the Application resource identified by the name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshApplications"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content - the specified application was not found."
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Applications": {
+ "get": {
+ "operationId": "MeshApplication_List",
+ "x-ms-examples": {
+ "ListMeshApplications": {
+ "$ref": "./examples/Resources/Applications/list.json"
+ }
+ },
+ "summary": "Lists all the application resources.",
+ "description": "Gets the information about all application resources in a given resource group. The information include the description and other properties of the Application.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ }
+ ],
+ "tags": [
+ "MeshApplications"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PagedApplicationResourceDescriptionList"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Applications/{applicationResourceName}/$/GetUpgradeProgress": {
+ "get": {
+ "operationId": "MeshApplication_GetUpgradeProgress",
+ "x-ms-examples": {
+ "GetApplicationResourceUpgrade": {
+ "$ref": "./examples/Resources/Applications/get_upgrade.json"
+ }
+ },
+ "summary": "Gets the progress of the latest upgrade performed on this application resource.",
+ "description": "Gets the upgrade progress information about the Application resource with the given name. The information include percentage of completion and other upgrade state information of the Application resource.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_7-0_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshApplications"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ApplicationResourceUpgradeProgressInfo"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Applications/{applicationResourceName}/Services/{serviceResourceName}": {
+ "get": {
+ "operationId": "MeshService_Get",
+ "x-ms-examples": {
+ "GetServiceResource": {
+ "$ref": "./examples/Resources/Applications/Services/get.json"
+ }
+ },
+ "summary": "Gets the Service resource with the given name.",
+ "description": "Gets the information about the Service resource with the given name. The information include the description and other properties of the Service.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshServices"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ServiceResourceDescription"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Applications/{applicationResourceName}/Services": {
+ "get": {
+ "operationId": "MeshService_List",
+ "x-ms-examples": {
+ "ListMeshServices": {
+ "$ref": "./examples/Resources/Applications/Services/list.json"
+ }
+ },
+ "summary": "Lists all the service resources.",
+ "description": "Gets the information about all services of an application resource. The information include the description and other properties of the Service.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshServices"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PagedServiceResourceDescriptionList"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Applications/{applicationResourceName}/Services/{serviceResourceName}/Replicas/{replicaName}/CodePackages/{codePackageName}/Logs": {
+ "get": {
+ "operationId": "MeshCodePackage_GetContainerLogs",
+ "x-ms-examples": {
+ "GetContainerLogs": {
+ "$ref": "./examples/Resources/Applications/Services/Replicas/CodePackages/get_logs.json"
+ }
+ },
+ "summary": "Gets the logs from the container.",
+ "description": "Gets the logs for the container of the specified code package of the service replica.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ReplicaNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/CodePackageNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/TailOptionalQueryParam"
+ }
+ ],
+ "tags": [
+ "MeshCodePackages"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ContainerLogs"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Applications/{applicationResourceName}/Services/{serviceResourceName}/Replicas/{replicaName}": {
+ "get": {
+ "operationId": "MeshServiceReplica_Get",
+ "x-ms-examples": {
+ "GetServiceReplica": {
+ "$ref": "./examples/Resources/Applications/Services/Replicas/get.json"
+ }
+ },
+ "summary": "Gets the given replica of the service of an application.",
+ "description": "Gets the information about the service replica with the given name. The information include the description and other properties of the service replica.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ReplicaNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshServiceReplicas"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ServiceReplicaDescription"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Applications/{applicationResourceName}/Services/{serviceResourceName}/Replicas": {
+ "get": {
+ "operationId": "MeshServiceReplica_List",
+ "x-ms-examples": {
+ "ListMeshServiceReplicas": {
+ "$ref": "./examples/Resources/Applications/Services/Replicas/list.json"
+ }
+ },
+ "summary": "Lists all the replicas of a service.",
+ "description": "Gets the information about all replicas of a service. The information include the description and other properties of the service replica.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/ApplicationResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/ServiceResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshServiceReplicas"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PagedServiceReplicaDescriptionList"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Gateways/{gatewayResourceName}": {
+ "put": {
+ "operationId": "MeshGateway_CreateOrUpdate",
+ "x-ms-examples": {
+ "CreateOrUpdateMeshGateway": {
+ "$ref": "./examples/Resources/Gateways/create_update.json"
+ }
+ },
+ "summary": "Creates or updates a Gateway resource.",
+ "description": "Creates a Gateway resource with the specified name, description and properties. If Gateway resource with the same name exists, then it is updated with the specified description and properties. Use Gateway resource to provide public connectivity to application services.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/GatewayResourceNameRequiredPathParam"
+ },
+ {
+ "$ref": "#/parameters/GatewayResourceDescriptionRequiredBodyParam"
+ }
+ ],
+ "tags": [
+ "MeshGateways"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GatewayResourceDescription"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/GatewayResourceDescription"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "get": {
+ "operationId": "MeshGateway_Get",
+ "x-ms-examples": {
+ "GetGatewayResource": {
+ "$ref": "./examples/Resources/Gateways/get.json"
+ }
+ },
+ "summary": "Gets the Gateway resource with the given name.",
+ "description": "Gets the information about the Gateway resource with the given name. The information include the description and other properties of the Gateway.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/GatewayResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshGateways"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GatewayResourceDescription"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "MeshGateway_Delete",
+ "x-ms-examples": {
+ "DeleteGatewayResource": {
+ "$ref": "./examples/Resources/Gateways/delete.json"
+ }
+ },
+ "summary": "Deletes the Gateway resource.",
+ "description": "Deletes the Gateway resource identified by the name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ },
+ {
+ "$ref": "#/parameters/GatewayResourceNameRequiredPathParam"
+ }
+ ],
+ "tags": [
+ "MeshGateways"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content - the specified gateway was not found."
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ },
+ "/Resources/Gateways": {
+ "get": {
+ "operationId": "MeshGateway_List",
+ "x-ms-examples": {
+ "ListMeshGateways": {
+ "$ref": "./examples/Resources/Gateways/list.json"
+ }
+ },
+ "summary": "Lists all the gateway resources.",
+ "description": "Gets the information about all gateway resources in a given resource group. The information include the description and other properties of the Gateway.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion_6-4-Preview_RequiredQueryParam"
+ }
+ ],
+ "tags": [
+ "MeshGateways"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PagedGatewayResourceDescriptionList"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/FabricError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "HealthState": {
+ "type": "string",
+ "description": "The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc.",
+ "enum": [
+ "Invalid",
+ "Ok",
+ "Warning",
+ "Error",
+ "Unknown"
+ ],
+ "x-ms-enum": {
+ "name": "HealthState",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid health state. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Ok",
+ "description": "Indicates the health state is okay. The value is 1."
+ },
+ {
+ "value": "Warning",
+ "description": "Indicates the health state is at a warning level. The value is 2."
+ },
+ {
+ "value": "Error",
+ "description": "Indicates the health state is at an error level. Error health state should be investigated, as they can impact the correct functionality of the cluster. The value is 3."
+ },
+ {
+ "value": "Unknown",
+ "description": "Indicates an unknown health status. The value is 65535."
+ }
+ ]
+ }
+ },
+ "FabricErrorCodes": {
+ "type": "string",
+ "description": "Defines the fabric error codes that be returned as part of the error object in response to Service Fabric API operations that are not successful. Following are the error code values that can be returned for a specific HTTP status code.\n\n - Possible values of the error code for HTTP status code 400 (Bad Request)\n - \"FABRIC_E_INVALID_PARTITION_KEY\"\n - \"FABRIC_E_IMAGEBUILDER_VALIDATION_ERROR\"\n - \"FABRIC_E_INVALID_ADDRESS\"\n - \"FABRIC_E_APPLICATION_NOT_UPGRADING\"\n - \"FABRIC_E_APPLICATION_UPGRADE_VALIDATION_ERROR\"\n - \"FABRIC_E_FABRIC_NOT_UPGRADING\"\n - \"FABRIC_E_FABRIC_UPGRADE_VALIDATION_ERROR\"\n - \"FABRIC_E_INVALID_CONFIGURATION\"\n - \"FABRIC_E_INVALID_NAME_URI\"\n - \"FABRIC_E_PATH_TOO_LONG\"\n - \"FABRIC_E_KEY_TOO_LARGE\"\n - \"FABRIC_E_SERVICE_AFFINITY_CHAIN_NOT_SUPPORTED\"\n - \"FABRIC_E_INVALID_ATOMIC_GROUP\"\n - \"FABRIC_E_VALUE_EMPTY\"\n - \"FABRIC_E_BACKUP_IS_ENABLED\"\n - \"FABRIC_E_RESTORE_SOURCE_TARGET_PARTITION_MISMATCH\"\n - \"FABRIC_E_INVALID_FOR_STATELESS_SERVICES\"\n - \"FABRIC_E_INVALID_SERVICE_SCALING_POLICY\"\n - \"E_INVALIDARG\"\n\n - Possible values of the error code for HTTP status code 404 (Not Found)\n - \"FABRIC_E_NODE_NOT_FOUND\"\n - \"FABRIC_E_APPLICATION_TYPE_NOT_FOUND\"\n - \"FABRIC_E_APPLICATION_NOT_FOUND\"\n - \"FABRIC_E_SERVICE_TYPE_NOT_FOUND\"\n - \"FABRIC_E_SERVICE_DOES_NOT_EXIST\"\n - \"FABRIC_E_SERVICE_TYPE_TEMPLATE_NOT_FOUND\"\n - \"FABRIC_E_CONFIGURATION_SECTION_NOT_FOUND\"\n - \"FABRIC_E_PARTITION_NOT_FOUND\"\n - \"FABRIC_E_REPLICA_DOES_NOT_EXIST\"\n - \"FABRIC_E_SERVICE_GROUP_DOES_NOT_EXIST\"\n - \"FABRIC_E_CONFIGURATION_PARAMETER_NOT_FOUND\"\n - \"FABRIC_E_DIRECTORY_NOT_FOUND\"\n - \"FABRIC_E_FABRIC_VERSION_NOT_FOUND\"\n - \"FABRIC_E_FILE_NOT_FOUND\"\n - \"FABRIC_E_NAME_DOES_NOT_EXIST\"\n - \"FABRIC_E_PROPERTY_DOES_NOT_EXIST\"\n - \"FABRIC_E_ENUMERATION_COMPLETED\"\n - \"FABRIC_E_SERVICE_MANIFEST_NOT_FOUND\"\n - \"FABRIC_E_KEY_NOT_FOUND\"\n - \"FABRIC_E_HEALTH_ENTITY_NOT_FOUND\"\n - \"FABRIC_E_BACKUP_NOT_ENABLED\"\n - \"FABRIC_E_BACKUP_POLICY_NOT_EXISTING\"\n - \"FABRIC_E_FAULT_ANALYSIS_SERVICE_NOT_EXISTING\"\n - \"FABRIC_E_IMAGEBUILDER_RESERVED_DIRECTORY_ERROR\"\n\n - Possible values of the error code for HTTP status code 409 (Conflict)\n - \"FABRIC_E_APPLICATION_TYPE_ALREADY_EXISTS\"\n - \"FABRIC_E_APPLICATION_ALREADY_EXISTS\"\n - \"FABRIC_E_APPLICATION_ALREADY_IN_TARGET_VERSION\"\n - \"FABRIC_E_APPLICATION_TYPE_PROVISION_IN_PROGRESS\"\n - \"FABRIC_E_APPLICATION_UPGRADE_IN_PROGRESS\"\n - \"FABRIC_E_SERVICE_ALREADY_EXISTS\"\n - \"FABRIC_E_SERVICE_GROUP_ALREADY_EXISTS\"\n - \"FABRIC_E_APPLICATION_TYPE_IN_USE\"\n - \"FABRIC_E_FABRIC_ALREADY_IN_TARGET_VERSION\"\n - \"FABRIC_E_FABRIC_VERSION_ALREADY_EXISTS\"\n - \"FABRIC_E_FABRIC_VERSION_IN_USE\"\n - \"FABRIC_E_FABRIC_UPGRADE_IN_PROGRESS\"\n - \"FABRIC_E_NAME_ALREADY_EXISTS\"\n - \"FABRIC_E_NAME_NOT_EMPTY\"\n - \"FABRIC_E_PROPERTY_CHECK_FAILED\"\n - \"FABRIC_E_SERVICE_METADATA_MISMATCH\"\n - \"FABRIC_E_SERVICE_TYPE_MISMATCH\"\n - \"FABRIC_E_HEALTH_STALE_REPORT\"\n - \"FABRIC_E_SEQUENCE_NUMBER_CHECK_FAILED\"\n - \"FABRIC_E_NODE_HAS_NOT_STOPPED_YET\"\n - \"FABRIC_E_INSTANCE_ID_MISMATCH\"\n - \"FABRIC_E_BACKUP_IN_PROGRESS\"\n - \"FABRIC_E_RESTORE_IN_PROGRESS\"\n - \"FABRIC_E_BACKUP_POLICY_ALREADY_EXISTING\"\n\n - Possible values of the error code for HTTP status code 413 (Request Entity Too Large)\n - \"FABRIC_E_VALUE_TOO_LARGE\"\n\n - Possible values of the error code for HTTP status code 500 (Internal Server Error)\n - \"FABRIC_E_NODE_IS_UP\"\n - \"E_FAIL\"\n - \"FABRIC_E_SINGLE_INSTANCE_APPLICATION_ALREADY_EXISTS\"\n - \"FABRIC_E_SINGLE_INSTANCE_APPLICATION_NOT_FOUND\"\n - \"FABRIC_E_VOLUME_ALREADY_EXISTS\"\n - \"FABRIC_E_VOLUME_NOT_FOUND\"\n - \"SerializationError\"\n\n - Possible values of the error code for HTTP status code 503 (Service Unavailable)\n - \"FABRIC_E_NO_WRITE_QUORUM\"\n - \"FABRIC_E_NOT_PRIMARY\"\n - \"FABRIC_E_NOT_READY\"\n - \"FABRIC_E_RECONFIGURATION_PENDING\"\n - \"FABRIC_E_SERVICE_OFFLINE\"\n - \"E_ABORT\"\n - \"FABRIC_E_VALUE_TOO_LARGE\"\n\n - Possible values of the error code for HTTP status code 504 (Gateway Timeout)\n - \"FABRIC_E_COMMUNICATION_ERROR\"\n - \"FABRIC_E_OPERATION_NOT_COMPLETE\"\n - \"FABRIC_E_TIMEOUT\"",
+ "enum": [
+ "FABRIC_E_INVALID_PARTITION_KEY",
+ "FABRIC_E_IMAGEBUILDER_VALIDATION_ERROR",
+ "FABRIC_E_INVALID_ADDRESS",
+ "FABRIC_E_APPLICATION_NOT_UPGRADING",
+ "FABRIC_E_APPLICATION_UPGRADE_VALIDATION_ERROR",
+ "FABRIC_E_FABRIC_NOT_UPGRADING",
+ "FABRIC_E_FABRIC_UPGRADE_VALIDATION_ERROR",
+ "FABRIC_E_INVALID_CONFIGURATION",
+ "FABRIC_E_INVALID_NAME_URI",
+ "FABRIC_E_PATH_TOO_LONG",
+ "FABRIC_E_KEY_TOO_LARGE",
+ "FABRIC_E_SERVICE_AFFINITY_CHAIN_NOT_SUPPORTED",
+ "FABRIC_E_INVALID_ATOMIC_GROUP",
+ "FABRIC_E_VALUE_EMPTY",
+ "FABRIC_E_NODE_NOT_FOUND",
+ "FABRIC_E_APPLICATION_TYPE_NOT_FOUND",
+ "FABRIC_E_APPLICATION_NOT_FOUND",
+ "FABRIC_E_SERVICE_TYPE_NOT_FOUND",
+ "FABRIC_E_SERVICE_DOES_NOT_EXIST",
+ "FABRIC_E_SERVICE_TYPE_TEMPLATE_NOT_FOUND",
+ "FABRIC_E_CONFIGURATION_SECTION_NOT_FOUND",
+ "FABRIC_E_PARTITION_NOT_FOUND",
+ "FABRIC_E_REPLICA_DOES_NOT_EXIST",
+ "FABRIC_E_SERVICE_GROUP_DOES_NOT_EXIST",
+ "FABRIC_E_CONFIGURATION_PARAMETER_NOT_FOUND",
+ "FABRIC_E_DIRECTORY_NOT_FOUND",
+ "FABRIC_E_FABRIC_VERSION_NOT_FOUND",
+ "FABRIC_E_FILE_NOT_FOUND",
+ "FABRIC_E_NAME_DOES_NOT_EXIST",
+ "FABRIC_E_PROPERTY_DOES_NOT_EXIST",
+ "FABRIC_E_ENUMERATION_COMPLETED",
+ "FABRIC_E_SERVICE_MANIFEST_NOT_FOUND",
+ "FABRIC_E_KEY_NOT_FOUND",
+ "FABRIC_E_HEALTH_ENTITY_NOT_FOUND",
+ "FABRIC_E_APPLICATION_TYPE_ALREADY_EXISTS",
+ "FABRIC_E_APPLICATION_ALREADY_EXISTS",
+ "FABRIC_E_APPLICATION_ALREADY_IN_TARGET_VERSION",
+ "FABRIC_E_APPLICATION_TYPE_PROVISION_IN_PROGRESS",
+ "FABRIC_E_APPLICATION_UPGRADE_IN_PROGRESS",
+ "FABRIC_E_SERVICE_ALREADY_EXISTS",
+ "FABRIC_E_SERVICE_GROUP_ALREADY_EXISTS",
+ "FABRIC_E_APPLICATION_TYPE_IN_USE",
+ "FABRIC_E_FABRIC_ALREADY_IN_TARGET_VERSION",
+ "FABRIC_E_FABRIC_VERSION_ALREADY_EXISTS",
+ "FABRIC_E_FABRIC_VERSION_IN_USE",
+ "FABRIC_E_FABRIC_UPGRADE_IN_PROGRESS",
+ "FABRIC_E_NAME_ALREADY_EXISTS",
+ "FABRIC_E_NAME_NOT_EMPTY",
+ "FABRIC_E_PROPERTY_CHECK_FAILED",
+ "FABRIC_E_SERVICE_METADATA_MISMATCH",
+ "FABRIC_E_SERVICE_TYPE_MISMATCH",
+ "FABRIC_E_HEALTH_STALE_REPORT",
+ "FABRIC_E_SEQUENCE_NUMBER_CHECK_FAILED",
+ "FABRIC_E_NODE_HAS_NOT_STOPPED_YET",
+ "FABRIC_E_INSTANCE_ID_MISMATCH",
+ "FABRIC_E_VALUE_TOO_LARGE",
+ "FABRIC_E_NO_WRITE_QUORUM",
+ "FABRIC_E_NOT_PRIMARY",
+ "FABRIC_E_NOT_READY",
+ "FABRIC_E_RECONFIGURATION_PENDING",
+ "FABRIC_E_SERVICE_OFFLINE",
+ "E_ABORT",
+ "FABRIC_E_COMMUNICATION_ERROR",
+ "FABRIC_E_OPERATION_NOT_COMPLETE",
+ "FABRIC_E_TIMEOUT",
+ "FABRIC_E_NODE_IS_UP",
+ "E_FAIL",
+ "FABRIC_E_BACKUP_IS_ENABLED",
+ "FABRIC_E_RESTORE_SOURCE_TARGET_PARTITION_MISMATCH",
+ "FABRIC_E_INVALID_FOR_STATELESS_SERVICES",
+ "FABRIC_E_BACKUP_NOT_ENABLED",
+ "FABRIC_E_BACKUP_POLICY_NOT_EXISTING",
+ "FABRIC_E_FAULT_ANALYSIS_SERVICE_NOT_EXISTING",
+ "FABRIC_E_BACKUP_IN_PROGRESS",
+ "FABRIC_E_RESTORE_IN_PROGRESS",
+ "FABRIC_E_BACKUP_POLICY_ALREADY_EXISTING",
+ "FABRIC_E_INVALID_SERVICE_SCALING_POLICY",
+ "E_INVALIDARG",
+ "FABRIC_E_SINGLE_INSTANCE_APPLICATION_ALREADY_EXISTS",
+ "FABRIC_E_SINGLE_INSTANCE_APPLICATION_NOT_FOUND",
+ "FABRIC_E_VOLUME_ALREADY_EXISTS",
+ "FABRIC_E_VOLUME_NOT_FOUND",
+ "SerializationError",
+ "FABRIC_E_IMAGEBUILDER_RESERVED_DIRECTORY_ERROR"
+ ],
+ "x-ms-enum": {
+ "name": "FabricErrorCodes",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "FABRIC_E_INVALID_PARTITION_KEY"
+ },
+ {
+ "value": "FABRIC_E_IMAGEBUILDER_VALIDATION_ERROR"
+ },
+ {
+ "value": "FABRIC_E_INVALID_ADDRESS"
+ },
+ {
+ "value": "FABRIC_E_APPLICATION_NOT_UPGRADING"
+ },
+ {
+ "value": "FABRIC_E_APPLICATION_UPGRADE_VALIDATION_ERROR"
+ },
+ {
+ "value": "FABRIC_E_FABRIC_NOT_UPGRADING"
+ },
+ {
+ "value": "FABRIC_E_FABRIC_UPGRADE_VALIDATION_ERROR"
+ },
+ {
+ "value": "FABRIC_E_INVALID_CONFIGURATION"
+ },
+ {
+ "value": "FABRIC_E_INVALID_NAME_URI"
+ },
+ {
+ "value": "FABRIC_E_PATH_TOO_LONG"
+ },
+ {
+ "value": "FABRIC_E_KEY_TOO_LARGE"
+ },
+ {
+ "value": "FABRIC_E_SERVICE_AFFINITY_CHAIN_NOT_SUPPORTED"
+ },
+ {
+ "value": "FABRIC_E_INVALID_ATOMIC_GROUP"
+ },
+ {
+ "value": "FABRIC_E_VALUE_EMPTY"
+ },
+ {
+ "value": "FABRIC_E_NODE_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_APPLICATION_TYPE_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_APPLICATION_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_SERVICE_TYPE_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_SERVICE_DOES_NOT_EXIST"
+ },
+ {
+ "value": "FABRIC_E_SERVICE_TYPE_TEMPLATE_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_CONFIGURATION_SECTION_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_PARTITION_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_REPLICA_DOES_NOT_EXIST"
+ },
+ {
+ "value": "FABRIC_E_SERVICE_GROUP_DOES_NOT_EXIST"
+ },
+ {
+ "value": "FABRIC_E_CONFIGURATION_PARAMETER_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_DIRECTORY_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_FABRIC_VERSION_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_FILE_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_NAME_DOES_NOT_EXIST"
+ },
+ {
+ "value": "FABRIC_E_PROPERTY_DOES_NOT_EXIST"
+ },
+ {
+ "value": "FABRIC_E_ENUMERATION_COMPLETED"
+ },
+ {
+ "value": "FABRIC_E_SERVICE_MANIFEST_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_KEY_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_HEALTH_ENTITY_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_APPLICATION_TYPE_ALREADY_EXISTS"
+ },
+ {
+ "value": "FABRIC_E_APPLICATION_ALREADY_EXISTS"
+ },
+ {
+ "value": "FABRIC_E_APPLICATION_ALREADY_IN_TARGET_VERSION"
+ },
+ {
+ "value": "FABRIC_E_APPLICATION_TYPE_PROVISION_IN_PROGRESS"
+ },
+ {
+ "value": "FABRIC_E_APPLICATION_UPGRADE_IN_PROGRESS"
+ },
+ {
+ "value": "FABRIC_E_SERVICE_ALREADY_EXISTS"
+ },
+ {
+ "value": "FABRIC_E_SERVICE_GROUP_ALREADY_EXISTS"
+ },
+ {
+ "value": "FABRIC_E_APPLICATION_TYPE_IN_USE"
+ },
+ {
+ "value": "FABRIC_E_FABRIC_ALREADY_IN_TARGET_VERSION"
+ },
+ {
+ "value": "FABRIC_E_FABRIC_VERSION_ALREADY_EXISTS"
+ },
+ {
+ "value": "FABRIC_E_FABRIC_VERSION_IN_USE"
+ },
+ {
+ "value": "FABRIC_E_FABRIC_UPGRADE_IN_PROGRESS"
+ },
+ {
+ "value": "FABRIC_E_NAME_ALREADY_EXISTS"
+ },
+ {
+ "value": "FABRIC_E_NAME_NOT_EMPTY"
+ },
+ {
+ "value": "FABRIC_E_PROPERTY_CHECK_FAILED"
+ },
+ {
+ "value": "FABRIC_E_SERVICE_METADATA_MISMATCH"
+ },
+ {
+ "value": "FABRIC_E_SERVICE_TYPE_MISMATCH"
+ },
+ {
+ "value": "FABRIC_E_HEALTH_STALE_REPORT"
+ },
+ {
+ "value": "FABRIC_E_SEQUENCE_NUMBER_CHECK_FAILED"
+ },
+ {
+ "value": "FABRIC_E_NODE_HAS_NOT_STOPPED_YET"
+ },
+ {
+ "value": "FABRIC_E_INSTANCE_ID_MISMATCH"
+ },
+ {
+ "value": "FABRIC_E_VALUE_TOO_LARGE"
+ },
+ {
+ "value": "FABRIC_E_NO_WRITE_QUORUM"
+ },
+ {
+ "value": "FABRIC_E_NOT_PRIMARY"
+ },
+ {
+ "value": "FABRIC_E_NOT_READY"
+ },
+ {
+ "value": "FABRIC_E_RECONFIGURATION_PENDING"
+ },
+ {
+ "value": "FABRIC_E_SERVICE_OFFLINE"
+ },
+ {
+ "value": "E_ABORT"
+ },
+ {
+ "value": "FABRIC_E_COMMUNICATION_ERROR"
+ },
+ {
+ "value": "FABRIC_E_OPERATION_NOT_COMPLETE"
+ },
+ {
+ "value": "FABRIC_E_TIMEOUT"
+ },
+ {
+ "value": "FABRIC_E_NODE_IS_UP"
+ },
+ {
+ "value": "E_FAIL"
+ },
+ {
+ "value": "FABRIC_E_BACKUP_IS_ENABLED"
+ },
+ {
+ "value": "FABRIC_E_RESTORE_SOURCE_TARGET_PARTITION_MISMATCH"
+ },
+ {
+ "value": "FABRIC_E_INVALID_FOR_STATELESS_SERVICES"
+ },
+ {
+ "value": "FABRIC_E_BACKUP_NOT_ENABLED"
+ },
+ {
+ "value": "FABRIC_E_BACKUP_POLICY_NOT_EXISTING"
+ },
+ {
+ "value": "FABRIC_E_FAULT_ANALYSIS_SERVICE_NOT_EXISTING"
+ },
+ {
+ "value": "FABRIC_E_BACKUP_IN_PROGRESS"
+ },
+ {
+ "value": "FABRIC_E_RESTORE_IN_PROGRESS"
+ },
+ {
+ "value": "FABRIC_E_BACKUP_POLICY_ALREADY_EXISTING"
+ },
+ {
+ "value": "FABRIC_E_INVALID_SERVICE_SCALING_POLICY"
+ },
+ {
+ "value": "E_INVALIDARG"
+ },
+ {
+ "value": "FABRIC_E_SINGLE_INSTANCE_APPLICATION_ALREADY_EXISTS"
+ },
+ {
+ "value": "FABRIC_E_SINGLE_INSTANCE_APPLICATION_NOT_FOUND"
+ },
+ {
+ "value": "FABRIC_E_VOLUME_ALREADY_EXISTS"
+ },
+ {
+ "value": "FABRIC_E_VOLUME_NOT_FOUND"
+ },
+ {
+ "value": "SerializationError"
+ },
+ {
+ "value": "FABRIC_E_IMAGEBUILDER_RESERVED_DIRECTORY_ERROR"
+ }
+ ]
+ }
+ },
+ "FabricError": {
+ "description": "The REST API operations for Service Fabric return standard HTTP status codes. This type defines the additional information returned from the Service Fabric API operations that are not successful.",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/FabricErrorError",
+ "description": "Error object containing error code and error message."
+ }
+ },
+ "required": [
+ "Error"
+ ]
+ },
+ "FabricErrorError": {
+ "description": "Error object containing error code and error message.",
+ "properties": {
+ "Code": {
+ "$ref": "#/definitions/FabricErrorCodes",
+ "description": "Defines the fabric error codes that be returned as part of the error object in response to Service Fabric API operations that are not successful. Following are the error code values that can be returned for a specific HTTP status code.\n\n - Possible values of the error code for HTTP status code 400 (Bad Request)\n - \"FABRIC_E_INVALID_PARTITION_KEY\"\n - \"FABRIC_E_IMAGEBUILDER_VALIDATION_ERROR\"\n - \"FABRIC_E_INVALID_ADDRESS\"\n - \"FABRIC_E_APPLICATION_NOT_UPGRADING\"\n - \"FABRIC_E_APPLICATION_UPGRADE_VALIDATION_ERROR\"\n - \"FABRIC_E_FABRIC_NOT_UPGRADING\"\n - \"FABRIC_E_FABRIC_UPGRADE_VALIDATION_ERROR\"\n - \"FABRIC_E_INVALID_CONFIGURATION\"\n - \"FABRIC_E_INVALID_NAME_URI\"\n - \"FABRIC_E_PATH_TOO_LONG\"\n - \"FABRIC_E_KEY_TOO_LARGE\"\n - \"FABRIC_E_SERVICE_AFFINITY_CHAIN_NOT_SUPPORTED\"\n - \"FABRIC_E_INVALID_ATOMIC_GROUP\"\n - \"FABRIC_E_VALUE_EMPTY\"\n - \"FABRIC_E_BACKUP_IS_ENABLED\"\n - \"FABRIC_E_RESTORE_SOURCE_TARGET_PARTITION_MISMATCH\"\n - \"FABRIC_E_INVALID_FOR_STATELESS_SERVICES\"\n - \"FABRIC_E_INVALID_SERVICE_SCALING_POLICY\"\n - \"E_INVALIDARG\"\n\n - Possible values of the error code for HTTP status code 404 (Not Found)\n - \"FABRIC_E_NODE_NOT_FOUND\"\n - \"FABRIC_E_APPLICATION_TYPE_NOT_FOUND\"\n - \"FABRIC_E_APPLICATION_NOT_FOUND\"\n - \"FABRIC_E_SERVICE_TYPE_NOT_FOUND\"\n - \"FABRIC_E_SERVICE_DOES_NOT_EXIST\"\n - \"FABRIC_E_SERVICE_TYPE_TEMPLATE_NOT_FOUND\"\n - \"FABRIC_E_CONFIGURATION_SECTION_NOT_FOUND\"\n - \"FABRIC_E_PARTITION_NOT_FOUND\"\n - \"FABRIC_E_REPLICA_DOES_NOT_EXIST\"\n - \"FABRIC_E_SERVICE_GROUP_DOES_NOT_EXIST\"\n - \"FABRIC_E_CONFIGURATION_PARAMETER_NOT_FOUND\"\n - \"FABRIC_E_DIRECTORY_NOT_FOUND\"\n - \"FABRIC_E_FABRIC_VERSION_NOT_FOUND\"\n - \"FABRIC_E_FILE_NOT_FOUND\"\n - \"FABRIC_E_NAME_DOES_NOT_EXIST\"\n - \"FABRIC_E_PROPERTY_DOES_NOT_EXIST\"\n - \"FABRIC_E_ENUMERATION_COMPLETED\"\n - \"FABRIC_E_SERVICE_MANIFEST_NOT_FOUND\"\n - \"FABRIC_E_KEY_NOT_FOUND\"\n - \"FABRIC_E_HEALTH_ENTITY_NOT_FOUND\"\n - \"FABRIC_E_BACKUP_NOT_ENABLED\"\n - \"FABRIC_E_BACKUP_POLICY_NOT_EXISTING\"\n - \"FABRIC_E_FAULT_ANALYSIS_SERVICE_NOT_EXISTING\"\n - \"FABRIC_E_IMAGEBUILDER_RESERVED_DIRECTORY_ERROR\"\n\n - Possible values of the error code for HTTP status code 409 (Conflict)\n - \"FABRIC_E_APPLICATION_TYPE_ALREADY_EXISTS\"\n - \"FABRIC_E_APPLICATION_ALREADY_EXISTS\"\n - \"FABRIC_E_APPLICATION_ALREADY_IN_TARGET_VERSION\"\n - \"FABRIC_E_APPLICATION_TYPE_PROVISION_IN_PROGRESS\"\n - \"FABRIC_E_APPLICATION_UPGRADE_IN_PROGRESS\"\n - \"FABRIC_E_SERVICE_ALREADY_EXISTS\"\n - \"FABRIC_E_SERVICE_GROUP_ALREADY_EXISTS\"\n - \"FABRIC_E_APPLICATION_TYPE_IN_USE\"\n - \"FABRIC_E_FABRIC_ALREADY_IN_TARGET_VERSION\"\n - \"FABRIC_E_FABRIC_VERSION_ALREADY_EXISTS\"\n - \"FABRIC_E_FABRIC_VERSION_IN_USE\"\n - \"FABRIC_E_FABRIC_UPGRADE_IN_PROGRESS\"\n - \"FABRIC_E_NAME_ALREADY_EXISTS\"\n - \"FABRIC_E_NAME_NOT_EMPTY\"\n - \"FABRIC_E_PROPERTY_CHECK_FAILED\"\n - \"FABRIC_E_SERVICE_METADATA_MISMATCH\"\n - \"FABRIC_E_SERVICE_TYPE_MISMATCH\"\n - \"FABRIC_E_HEALTH_STALE_REPORT\"\n - \"FABRIC_E_SEQUENCE_NUMBER_CHECK_FAILED\"\n - \"FABRIC_E_NODE_HAS_NOT_STOPPED_YET\"\n - \"FABRIC_E_INSTANCE_ID_MISMATCH\"\n - \"FABRIC_E_BACKUP_IN_PROGRESS\"\n - \"FABRIC_E_RESTORE_IN_PROGRESS\"\n - \"FABRIC_E_BACKUP_POLICY_ALREADY_EXISTING\"\n\n - Possible values of the error code for HTTP status code 413 (Request Entity Too Large)\n - \"FABRIC_E_VALUE_TOO_LARGE\"\n\n - Possible values of the error code for HTTP status code 500 (Internal Server Error)\n - \"FABRIC_E_NODE_IS_UP\"\n - \"E_FAIL\"\n - \"FABRIC_E_SINGLE_INSTANCE_APPLICATION_ALREADY_EXISTS\"\n - \"FABRIC_E_SINGLE_INSTANCE_APPLICATION_NOT_FOUND\"\n - \"FABRIC_E_VOLUME_ALREADY_EXISTS\"\n - \"FABRIC_E_VOLUME_NOT_FOUND\"\n - \"SerializationError\"\n\n - Possible values of the error code for HTTP status code 503 (Service Unavailable)\n - \"FABRIC_E_NO_WRITE_QUORUM\"\n - \"FABRIC_E_NOT_PRIMARY\"\n - \"FABRIC_E_NOT_READY\"\n - \"FABRIC_E_RECONFIGURATION_PENDING\"\n - \"FABRIC_E_SERVICE_OFFLINE\"\n - \"E_ABORT\"\n - \"FABRIC_E_VALUE_TOO_LARGE\"\n\n - Possible values of the error code for HTTP status code 504 (Gateway Timeout)\n - \"FABRIC_E_COMMUNICATION_ERROR\"\n - \"FABRIC_E_OPERATION_NOT_COMPLETE\"\n - \"FABRIC_E_TIMEOUT\""
+ },
+ "Message": {
+ "type": "string",
+ "description": "Error message."
+ }
+ },
+ "required": [
+ "Code"
+ ]
+ },
+ "ContainerLogs": {
+ "description": "Container logs.",
+ "properties": {
+ "Content": {
+ "type": "string",
+ "description": "Container logs."
+ }
+ }
+ },
+ "AadMetadata": {
+ "description": "Azure Active Directory metadata used for secured connection to cluster.",
+ "properties": {
+ "authority": {
+ "type": "string",
+ "description": "The AAD authority url."
+ },
+ "client": {
+ "type": "string",
+ "description": "The AAD client application Id."
+ },
+ "cluster": {
+ "type": "string",
+ "description": "The AAD cluster application Id."
+ },
+ "login": {
+ "type": "string",
+ "description": "The AAD login url."
+ },
+ "redirect": {
+ "type": "string",
+ "description": "The client application redirect address."
+ },
+ "tenant": {
+ "type": "string",
+ "description": "The AAD tenant Id."
+ }
+ }
+ },
+ "AadMetadataObject": {
+ "description": "Azure Active Directory metadata object used for secured connection to cluster.",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "The client authentication method."
+ },
+ "metadata": {
+ "$ref": "#/definitions/AadMetadata",
+ "description": "Azure Active Directory metadata used for secured connection to cluster."
+ }
+ }
+ },
+ "AnalysisEventMetadata": {
+ "description": "Metadata about an Analysis Event.",
+ "properties": {
+ "Delay": {
+ "type": "string",
+ "format": "duration",
+ "description": "The analysis delay."
+ },
+ "Duration": {
+ "type": "string",
+ "format": "duration",
+ "description": "The duration of analysis."
+ }
+ }
+ },
+ "ApplicationDefinitionKind": {
+ "type": "string",
+ "description": "The mechanism used to define a Service Fabric application.",
+ "enum": [
+ "Invalid",
+ "ServiceFabricApplicationDescription",
+ "Compose"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationDefinitionKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the application definition kind is invalid. All Service Fabric enumerations have the invalid type. The value is 65535."
+ },
+ {
+ "value": "ServiceFabricApplicationDescription",
+ "description": "Indicates the application is defined by a Service Fabric application description. The value is 0."
+ },
+ {
+ "value": "Compose",
+ "description": "Indicates the application is defined by compose file(s). The value is 1."
+ }
+ ]
+ }
+ },
+ "ApplicationEvent": {
+ "description": "Represents the base for all Application Events.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/FabricEvent"
+ }
+ ],
+ "properties": {
+ "ApplicationId": {
+ "$ref": "#/definitions/ApplicationId",
+ "description": "The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource.\nStarting in version 6.0, hierarchical names are delimited with the \"\\~\" character. For example, if the application name is \"fabric:/myapp/app1\",\nthe application identity would be \"myapp\\~app1\" in 6.0+ and \"myapp/app1\" in previous versions."
+ }
+ },
+ "required": [
+ "ApplicationId"
+ ],
+ "x-ms-discriminator-value": "ApplicationEvent"
+ },
+ "ApplicationEventList": {
+ "description": "A list of ApplicationEvent objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ },
+ "ApplicationHealth": {
+ "description": "Represents the health of the application. Contains the application aggregated health state and the service and deployed application health states.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealth"
+ }
+ ],
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "ServiceHealthStates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceHealthState"
+ },
+ "description": "Service health states as found in the health store."
+ },
+ "DeployedApplicationHealthStates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeployedApplicationHealthState"
+ },
+ "description": "Deployed application health states as found in the health store."
+ }
+ }
+ },
+ "ApplicationHealthEvaluation": {
+ "x-ms-discriminator-value": "Application",
+ "description": "Represents health evaluation for an application, containing information about the data and the algorithm used by the health store to evaluate health.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "ApplicationName": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the current aggregated health state of the application. The types of the unhealthy evaluations can be DeployedApplicationsHealthEvaluation, ServicesHealthEvaluation or EventHealthEvaluation."
+ }
+ }
+ },
+ "ApplicationHealthPolicies": {
+ "description": "Defines the application health policy map used to evaluate the health of an application or one of its children entities.",
+ "properties": {
+ "ApplicationHealthPolicyMap": {
+ "$ref": "#/definitions/ApplicationHealthPolicyMap",
+ "description": "The wrapper that contains the map with application health policies used to evaluate specific applications in the cluster."
+ }
+ }
+ },
+ "ApplicationHealthPolicy": {
+ "description": "Defines a health policy used to evaluate the health of an application or one of its children entities.",
+ "properties": {
+ "ConsiderWarningAsError": {
+ "type": "boolean",
+ "description": "Indicates whether warnings are treated with the same severity as errors.",
+ "default": false
+ },
+ "MaxPercentUnhealthyDeployedApplications": {
+ "type": "integer",
+ "description": "The maximum allowed percentage of unhealthy deployed applications. Allowed values are Byte values from zero to 100.\nThe percentage represents the maximum tolerated percentage of deployed applications that can be unhealthy before the application is considered in error.\nThis is calculated by dividing the number of unhealthy deployed applications over the number of nodes where the application is currently deployed on in the cluster.\nThe computation rounds up to tolerate one failure on small numbers of nodes. Default percentage is zero.",
+ "default": 0
+ },
+ "DefaultServiceTypeHealthPolicy": {
+ "$ref": "#/definitions/ServiceTypeHealthPolicy",
+ "description": "The health policy used by default to evaluate the health of a service type."
+ },
+ "ServiceTypeHealthPolicyMap": {
+ "$ref": "#/definitions/ServiceTypeHealthPolicyMap",
+ "description": "The map with service type health policy per service type name. The map is empty by default."
+ }
+ }
+ },
+ "ApplicationHealthPolicyMap": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationHealthPolicyMapItem"
+ },
+ "description": "Defines a map that contains specific application health policies for different applications.\nEach entry specifies as key the application name and as value an ApplicationHealthPolicy used to evaluate the application health.\nIf an application is not specified in the map, the application health evaluation uses the ApplicationHealthPolicy found in its application manifest or the default application health policy (if no health policy is defined in the manifest).\nThe map is empty by default."
+ },
+ "ApplicationHealthPolicyMapItem": {
+ "description": "Defines an item in ApplicationHealthPolicyMap.",
+ "required": [
+ "Key",
+ "Value"
+ ],
+ "properties": {
+ "Key": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The key of the application health policy map item. This is the name of the application."
+ },
+ "Value": {
+ "$ref": "#/definitions/ApplicationHealthPolicy",
+ "description": "The value of the application health policy map item. This is the ApplicationHealthPolicy for this application."
+ }
+ }
+ },
+ "ApplicationHealthPolicyMapObject": {
+ "description": "Represents the map of application health policies for a ServiceFabric cluster upgrade",
+ "properties": {
+ "ApplicationHealthPolicyMap": {
+ "$ref": "#/definitions/ApplicationHealthPolicyMap",
+ "description": "Defines a map that contains specific application health policies for different applications.\nEach entry specifies as key the application name and as value an ApplicationHealthPolicy used to evaluate the application health.\nIf an application is not specified in the map, the application health evaluation uses the ApplicationHealthPolicy found in its application manifest or the default application health policy (if no health policy is defined in the manifest).\nThe map is empty by default."
+ }
+ }
+ },
+ "ApplicationHealthState": {
+ "description": "Represents the health state of an application, which contains the application identifier and the aggregated health state.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthState"
+ }
+ ],
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ }
+ }
+ },
+ "ApplicationHealthStateChunk": {
+ "description": "Represents the health state chunk of a application.\nThe application health state chunk contains the application name, its aggregated health state and any children services and deployed applications that respect the filters in cluster health chunk query description.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthStateChunk"
+ }
+ ],
+ "properties": {
+ "ApplicationName": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "ApplicationTypeName": {
+ "$ref": "#/definitions/ApplicationTypeName",
+ "description": "The application type name as defined in the application manifest."
+ },
+ "ServiceHealthStateChunks": {
+ "$ref": "#/definitions/ServiceHealthStateChunkList",
+ "description": "The list of service health state chunks in the cluster that respect the filters in the cluster health chunk query description."
+ },
+ "DeployedApplicationHealthStateChunks": {
+ "$ref": "#/definitions/DeployedApplicationHealthStateChunkList",
+ "description": "The list of deployed application health state chunks in the cluster that respect the filters in the cluster health chunk query description."
+ }
+ }
+ },
+ "ApplicationHealthStateChunkList": {
+ "description": "The list of application health state chunks in the cluster that respect the input filters in the chunk query. Returned by get cluster health state chunks query.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthStateChunkList"
+ }
+ ],
+ "properties": {
+ "Items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationHealthStateChunk"
+ },
+ "description": "The list of application health state chunks that respect the input filters in the chunk query."
+ }
+ }
+ },
+ "ApplicationHealthStateFilter": {
+ "description": "Defines matching criteria to determine whether a application should be included in the cluster health chunk.\nOne filter can match zero, one or multiple applications, depending on its properties.",
+ "properties": {
+ "ApplicationNameFilter": {
+ "type": "string",
+ "description": "The name of the application that matches the filter, as a fabric uri. The filter is applied only to the specified application, if it exists.\nIf the application doesn't exist, no application is returned in the cluster health chunk based on this filter.\nIf the application exists, it is included in the cluster health chunk if it respects the other filter properties.\nIf not specified, all applications are matched against the other filter members, like health state filter."
+ },
+ "ApplicationTypeNameFilter": {
+ "type": "string",
+ "description": "The name of the application type that matches the filter.\nIf specified, the filter is applied only to applications of the selected application type, if any exists.\nIf no applications of the specified application type exists, no application is returned in the cluster health chunk based on this filter.\nEach application of the specified application type is included in the cluster health chunk if it respects the other filter properties.\nIf not specified, all applications are matched against the other filter members, like health state filter."
+ },
+ "HealthStateFilter": {
+ "type": "integer",
+ "default": 0,
+ "description": "The filter for the health state of the applications. It allows selecting applications if they match the desired health states.\nThe possible values are integer value of one of the following health states. Only applications that match the filter are returned. All applications are used to evaluate the cluster aggregated health state.\nIf not specified, default value is None, unless the application name or the application type name are specified. If the filter has default value and application name is specified, the matching application is returned.\nThe state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.\nFor example, if the provided value is 6, it matches applications with HealthState value of OK (2) and Warning (4).\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535."
+ },
+ "ServiceFilters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceHealthStateFilter"
+ },
+ "description": "Defines a list of filters that specify which services to be included in the returned cluster health chunk as children of the application. The services are returned only if the parent application matches a filter.\nIf the list is empty, no services are returned. All the services are used to evaluate the parent application aggregated health state, regardless of the input filters.\nThe application filter may specify multiple service filters.\nFor example, it can specify a filter to return all services with health state Error and another filter to always include a service identified by its service name."
+ },
+ "DeployedApplicationFilters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeployedApplicationHealthStateFilter"
+ },
+ "description": "Defines a list of filters that specify which deployed applications to be included in the returned cluster health chunk as children of the application. The deployed applications are returned only if the parent application matches a filter.\nIf the list is empty, no deployed applications are returned. All the deployed applications are used to evaluate the parent application aggregated health state, regardless of the input filters.\nThe application filter may specify multiple deployed application filters.\nFor example, it can specify a filter to return all deployed applications with health state Error and another filter to always include a deployed application on a specified node."
+ }
+ }
+ },
+ "ApplicationId": {
+ "type": "string",
+ "description": "The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource.\nStarting in version 6.0, hierarchical names are delimited with the \"\\~\" character. For example, if the application name is \"fabric:/myapp/app1\",\nthe application identity would be \"myapp\\~app1\" in 6.0+ and \"myapp/app1\" in previous versions."
+ },
+ "ApplicationInfo": {
+ "description": "Information about a Service Fabric application.",
+ "properties": {
+ "Id": {
+ "$ref": "#/definitions/ApplicationId",
+ "description": "The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource.\nStarting in version 6.0, hierarchical names are delimited with the \"\\~\" character. For example, if the application name is \"fabric:/myapp/app1\",\nthe application identity would be \"myapp\\~app1\" in 6.0+ and \"myapp/app1\" in previous versions."
+ },
+ "Name": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "TypeName": {
+ "$ref": "#/definitions/ApplicationTypeName",
+ "description": "The application type name as defined in the application manifest."
+ },
+ "TypeVersion": {
+ "$ref": "#/definitions/ApplicationTypeVersion",
+ "description": "The version of the application type as defined in the application manifest."
+ },
+ "Status": {
+ "$ref": "#/definitions/ApplicationStatus",
+ "description": "The status of the application."
+ },
+ "Parameters": {
+ "$ref": "#/definitions/ApplicationParameterList",
+ "description": "List of application parameters with overridden values from their default values specified in the application manifest."
+ },
+ "HealthState": {
+ "$ref": "#/definitions/HealthState",
+ "description": "The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc."
+ },
+ "ApplicationDefinitionKind": {
+ "$ref": "#/definitions/ApplicationDefinitionKind",
+ "description": "The mechanism used to define a Service Fabric application."
+ }
+ }
+ },
+ "ApplicationLoadInfo": {
+ "description": "Load Information about a Service Fabric application.",
+ "properties": {
+ "Id": {
+ "$ref": "#/definitions/ApplicationId",
+ "description": "The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource.\nStarting in version 6.0, hierarchical names are delimited with the \"\\~\" character. For example, if the application name is \"fabric:/myapp/app1\",\nthe application identity would be \"myapp\\~app1\" in 6.0+ and \"myapp/app1\" in previous versions."
+ },
+ "MinimumNodes": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The minimum number of nodes for this application.\nIt is the number of nodes where Service Fabric will reserve Capacity in the cluster which equals to ReservedLoad * MinimumNodes for this Application instance.\nFor applications that do not have application capacity defined this value will be zero."
+ },
+ "MaximumNodes": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The maximum number of nodes where this application can be instantiated.\nIt is the number of nodes this application is allowed to span.\nFor applications that do not have application capacity defined this value will be zero."
+ },
+ "NodeCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The number of nodes on which this application is instantiated.\nFor applications that do not have application capacity defined this value will be zero."
+ },
+ "ApplicationLoadMetricInformation": {
+ "$ref": "#/definitions/ApplicationLoadMetricInformationList",
+ "description": "List of application load metric information."
+ }
+ }
+ },
+ "ApplicationName": {
+ "type": "string",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "ApplicationNameInfo": {
+ "description": "Information about the application name.",
+ "properties": {
+ "Id": {
+ "$ref": "#/definitions/ApplicationId",
+ "description": "The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource.\nStarting in version 6.0, hierarchical names are delimited with the \"\\~\" character. For example, if the application name is \"fabric:/myapp/app1\",\nthe application identity would be \"myapp\\~app1\" in 6.0+ and \"myapp/app1\" in previous versions."
+ },
+ "Name": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ }
+ }
+ },
+ "ApplicationPackageCleanupPolicy": {
+ "type": "string",
+ "description": "The kind of action that needs to be taken for cleaning up the application package after successful provision.",
+ "enum": [
+ "Invalid",
+ "Default",
+ "Automatic",
+ "Manual"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationPackageCleanupPolicy",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates that the application package cleanup policy is invalid. This value is default. The value is zero."
+ },
+ {
+ "value": "Default",
+ "description": "Indicates that the cleanup policy of application packages is based on the cluster setting \"CleanupApplicationPackageOnProvisionSuccess.\" The value is 1."
+ },
+ {
+ "value": "Automatic",
+ "description": "Indicates that the service fabric runtime determines when to do the application package cleanup. By default, cleanup is done on successful provision. The value is 2."
+ },
+ {
+ "value": "Manual",
+ "description": "Indicates that the user has to explicitly clean up the application package. The value is 3."
+ }
+ ]
+ }
+ },
+ "ApplicationParameter": {
+ "description": "Describes an application parameter override to be applied when creating or upgrading an application.",
+ "required": [
+ "Key",
+ "Value"
+ ],
+ "properties": {
+ "Key": {
+ "type": "string",
+ "description": "The name of the parameter."
+ },
+ "Value": {
+ "type": "string",
+ "description": "The value of the parameter."
+ }
+ }
+ },
+ "ApplicationParameterList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationParameter"
+ },
+ "description": "List of application parameters with overridden values from their default values specified in the application manifest."
+ },
+ "ApplicationsHealthEvaluation": {
+ "x-ms-discriminator-value": "Applications",
+ "description": "Represents health evaluation for applications, containing health evaluations for each unhealthy application that impacted current aggregated health state.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "MaxPercentUnhealthyApplications": {
+ "type": "integer",
+ "description": "Maximum allowed percentage of unhealthy applications from the ClusterHealthPolicy."
+ },
+ "TotalCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total number of applications from the health store."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ApplicationHealthEvaluation that impacted the aggregated health."
+ }
+ }
+ },
+ "ApplicationStatus": {
+ "type": "string",
+ "description": "The status of the application.",
+ "enum": [
+ "Invalid",
+ "Ready",
+ "Upgrading",
+ "Creating",
+ "Deleting",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the application status is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Ready",
+ "description": "Indicates the application status is ready. The value is 1."
+ },
+ {
+ "value": "Upgrading",
+ "description": "Indicates the application status is upgrading. The value is 2."
+ },
+ {
+ "value": "Creating",
+ "description": "Indicates the application status is creating. The value is 3."
+ },
+ {
+ "value": "Deleting",
+ "description": "Indicates the application status is deleting. The value is 4."
+ },
+ {
+ "value": "Failed",
+ "description": "Indicates the creation or deletion of application was terminated due to persistent failures. Another create/delete request can be accepted to resume a failed application. The value is 5."
+ }
+ ]
+ }
+ },
+ "ApplicationTypeApplicationsHealthEvaluation": {
+ "x-ms-discriminator-value": "ApplicationTypeApplications",
+ "description": "Represents health evaluation for applications of a particular application type. The application type applications evaluation can be returned when cluster health evaluation returns unhealthy aggregated health state, either Error or Warning. It contains health evaluations for each unhealthy application of the included application type that impacted current aggregated health state.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "ApplicationTypeName": {
+ "$ref": "#/definitions/ApplicationTypeName",
+ "description": "The application type name as defined in the application manifest."
+ },
+ "MaxPercentUnhealthyApplications": {
+ "type": "integer",
+ "description": "Maximum allowed percentage of unhealthy applications for the application type, specified as an entry in ApplicationTypeHealthPolicyMap."
+ },
+ "TotalCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total number of applications of the application type found in the health store."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ApplicationHealthEvaluation of this application type that impacted the aggregated health."
+ }
+ }
+ },
+ "ApplicationTypeDefinitionKind": {
+ "type": "string",
+ "description": "The mechanism used to define a Service Fabric application type.",
+ "enum": [
+ "Invalid",
+ "ServiceFabricApplicationPackage",
+ "Compose"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationTypeDefinitionKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the application type definition kind is invalid. All Service Fabric enumerations have the invalid type. The value is 0."
+ },
+ {
+ "value": "ServiceFabricApplicationPackage",
+ "description": "Indicates the application type is defined and created by a Service Fabric application package provided by the user. The value is 1."
+ },
+ {
+ "value": "Compose",
+ "description": "Indicates the application type is defined and created implicitly as part of a compose deployment. The value is 2."
+ }
+ ]
+ }
+ },
+ "ApplicationTypeHealthPolicyMap": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationTypeHealthPolicyMapItem"
+ },
+ "description": "Defines a map with max percentage unhealthy applications for specific application types.\nEach entry specifies as key the application type name and as value an integer that represents the MaxPercentUnhealthyApplications percentage used to evaluate the applications of the specified application type.\n\nThe application type health policy map can be used during cluster health evaluation to describe special application types.\nThe application types included in the map are evaluated against the percentage specified in the map, and not with the global MaxPercentUnhealthyApplications defined in the cluster health policy.\nThe applications of application types specified in the map are not counted against the global pool of applications.\nFor example, if some applications of a type are critical, the cluster administrator can add an entry to the map for that application type\nand assign it a value of 0% (that is, do not tolerate any failures).\nAll other applications can be evaluated with MaxPercentUnhealthyApplications set to 20% to tolerate some failures out of the thousands of application instances.\nThe application type health policy map is used only if the cluster manifest enables application type health evaluation using the configuration entry for HealthManager/EnableApplicationTypeHealthEvaluation."
+ },
+ "ApplicationTypeHealthPolicyMapItem": {
+ "description": "Defines an item in ApplicationTypeHealthPolicyMap.",
+ "required": [
+ "Key",
+ "Value"
+ ],
+ "properties": {
+ "Key": {
+ "type": "string",
+ "description": "The key of the application type health policy map item. This is the name of the application type."
+ },
+ "Value": {
+ "type": "integer",
+ "description": "The value of the application type health policy map item.\nThe max percent unhealthy applications allowed for the application type. Must be between zero and 100."
+ }
+ }
+ },
+ "ApplicationTypeInfo": {
+ "description": "Information about an application type.",
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/ApplicationTypeName",
+ "description": "The application type name as defined in the application manifest."
+ },
+ "Version": {
+ "$ref": "#/definitions/ApplicationTypeVersion",
+ "description": "The version of the application type as defined in the application manifest."
+ },
+ "DefaultParameterList": {
+ "$ref": "#/definitions/ApplicationTypeParameterList",
+ "description": "List of application type parameters that can be overridden when creating or updating the application."
+ },
+ "Status": {
+ "$ref": "#/definitions/ApplicationTypeStatus",
+ "description": "The status of the application type."
+ },
+ "StatusDetails": {
+ "type": "string",
+ "description": "Additional detailed information about the status of the application type."
+ },
+ "ApplicationTypeDefinitionKind": {
+ "$ref": "#/definitions/ApplicationTypeDefinitionKind",
+ "description": "The mechanism used to define a Service Fabric application type."
+ }
+ }
+ },
+ "PagedApplicationTypeInfoList": {
+ "description": "The list of application types that are provisioned or being provisioned in the cluster. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "List of application type information.",
+ "items": {
+ "$ref": "#/definitions/ApplicationTypeInfo"
+ }
+ }
+ }
+ },
+ "ApplicationTypeManifest": {
+ "description": "Contains the manifest describing an application type registered in a Service Fabric cluster.",
+ "properties": {
+ "Manifest": {
+ "type": "string",
+ "description": "The XML manifest as a string."
+ }
+ }
+ },
+ "ApplicationTypeName": {
+ "type": "string",
+ "description": "The application type name as defined in the application manifest."
+ },
+ "ApplicationTypeParameterList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationParameter"
+ },
+ "description": "List of application type parameters that can be overridden when creating or updating the application."
+ },
+ "ApplicationTypeStatus": {
+ "type": "string",
+ "description": "The status of the application type.",
+ "enum": [
+ "Invalid",
+ "Provisioning",
+ "Available",
+ "Unprovisioning",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationTypeStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the application type status is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Provisioning",
+ "description": "Indicates that the application type is being provisioned in the cluster. The value is 1."
+ },
+ {
+ "value": "Available",
+ "description": "Indicates that the application type is fully provisioned and is available for use. An application of this type and version can be created. The value is 2."
+ },
+ {
+ "value": "Unprovisioning",
+ "description": "Indicates that the application type is in process of being unprovisioned from the cluster. The value is 3."
+ },
+ {
+ "value": "Failed",
+ "description": "Indicates that the application type provisioning failed and it is unavailable for use. The failure details can be obtained from the application type information query. The failed application type information remains in the cluster until it is unprovisioned or reprovisioned successfully. The value is 4."
+ }
+ ]
+ }
+ },
+ "ApplicationUnhealthyEvaluations": {
+ "description": "List of health evaluations that resulted in the current aggregated health state.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthEvaluationWrapper"
+ }
+ },
+ "ApplicationUpgradeDescription": {
+ "description": "Describes the parameters for an application upgrade. Note that upgrade description replaces the existing application description. This means that if the parameters are not specified, the existing parameters on the applications will be overwritten with the empty parameters list. This would result in the application using the default value of the parameters from the application manifest. If you do not want to change any existing parameter values, please get the application parameters first using the GetApplicationInfo query and then supply those values as Parameters in this ApplicationUpgradeDescription.",
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/TargetApplicationName",
+ "description": "The name of the target application, including the 'fabric:' URI scheme."
+ },
+ "TargetApplicationTypeVersion": {
+ "$ref": "#/definitions/TargetApplicationTypeVersion",
+ "description": "The target application type version (found in the application manifest) for the application upgrade."
+ },
+ "Parameters": {
+ "$ref": "#/definitions/ApplicationParameterList",
+ "description": "List of application parameters with overridden values from their default values specified in the application manifest."
+ },
+ "UpgradeKind": {
+ "$ref": "#/definitions/UpgradeKind",
+ "description": "The kind of upgrade out of the following possible values."
+ },
+ "RollingUpgradeMode": {
+ "$ref": "#/definitions/UpgradeMode",
+ "description": "The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored."
+ },
+ "UpgradeReplicaSetCheckTimeoutInSeconds": {
+ "$ref": "#/definitions/UpgradeReplicaSetCheckTimeout",
+ "description": "The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer)."
+ },
+ "ForceRestart": {
+ "$ref": "#/definitions/ForceRestart",
+ "description": "If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data)."
+ },
+ "SortOrder": {
+ "$ref": "#/definitions/UpgradeSortOrder",
+ "description": "Defines the order in which an upgrade proceeds through the cluster."
+ },
+ "MonitoringPolicy": {
+ "$ref": "#/definitions/MonitoringPolicyDescription",
+ "description": "Describes the parameters for monitoring an upgrade in Monitored mode."
+ },
+ "ApplicationHealthPolicy": {
+ "$ref": "#/definitions/ApplicationHealthPolicy",
+ "description": "Defines a health policy used to evaluate the health of an application or one of its children entities."
+ },
+ "InstanceCloseDelayDurationInSeconds": {
+ "$ref": "#/definitions/InstanceCloseDelayDurationInSeconds",
+ "description": "Duration in seconds, to wait before a stateless instance is closed, to allow the active requests to drain gracefully. This would be effective when the instance is closing during the application/cluster\nupgrade, only for those instances which have a non-zero delay duration configured in the service description. See InstanceCloseDelayDurationSeconds property in $ref: \"#/definitions/StatelessServiceDescription.yaml\" for details.\nNote, the default value of InstanceCloseDelayDurationInSeconds is 4294967295, which indicates that the behavior will entirely depend on the delay configured in the stateless service description."
+ }
+ },
+ "required": [
+ "Name",
+ "TargetApplicationTypeVersion",
+ "UpgradeKind"
+ ]
+ },
+ "ApplicationUpgradeProgressInfo": {
+ "description": "Describes the parameters for an application upgrade.",
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/TargetApplicationName",
+ "description": "The name of the target application, including the 'fabric:' URI scheme."
+ },
+ "TypeName": {
+ "$ref": "#/definitions/ApplicationTypeName",
+ "description": "The application type name as defined in the application manifest."
+ },
+ "TargetApplicationTypeVersion": {
+ "$ref": "#/definitions/TargetApplicationTypeVersion",
+ "description": "The target application type version (found in the application manifest) for the application upgrade."
+ },
+ "UpgradeDomains": {
+ "$ref": "#/definitions/UpgradeDomainInfoList",
+ "description": "List of upgrade domains and their statuses."
+ },
+ "UpgradeState": {
+ "$ref": "#/definitions/UpgradeState",
+ "description": "The state of the upgrade domain."
+ },
+ "NextUpgradeDomain": {
+ "$ref": "#/definitions/NextUpgradeDomain",
+ "description": "The name of the next upgrade domain to be processed."
+ },
+ "RollingUpgradeMode": {
+ "$ref": "#/definitions/UpgradeMode",
+ "description": "The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored."
+ },
+ "UpgradeDescription": {
+ "$ref": "#/definitions/ApplicationUpgradeDescription",
+ "description": "Describes the parameters for an application upgrade. Note that upgrade description replaces the existing application description. This means that if the parameters are not specified, the existing parameters on the applications will be overwritten with the empty parameters list. This would result in the application using the default value of the parameters from the application manifest. If you do not want to change any existing parameter values, please get the application parameters first using the GetApplicationInfo query and then supply those values as Parameters in this ApplicationUpgradeDescription."
+ },
+ "UpgradeDurationInMilliseconds": {
+ "type": "string",
+ "description": "The estimated total amount of time spent processing the overall upgrade."
+ },
+ "UpgradeDomainDurationInMilliseconds": {
+ "type": "string",
+ "description": "The estimated total amount of time spent processing the current upgrade domain."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of health evaluations that resulted in the current aggregated health state."
+ },
+ "CurrentUpgradeDomainProgress": {
+ "$ref": "#/definitions/CurrentUpgradeDomainProgressInfo",
+ "description": "Information about the current in-progress upgrade domain."
+ },
+ "StartTimestampUtc": {
+ "type": "string",
+ "description": "The estimated UTC datetime when the upgrade started."
+ },
+ "FailureTimestampUtc": {
+ "type": "string",
+ "description": "The estimated UTC datetime when the upgrade failed and FailureAction was executed."
+ },
+ "FailureReason": {
+ "$ref": "#/definitions/FailureReason",
+ "description": "The cause of an upgrade failure that resulted in FailureAction being executed."
+ },
+ "UpgradeDomainProgressAtFailure": {
+ "$ref": "#/definitions/FailureUpgradeDomainProgressInfo",
+ "description": "Information about the upgrade domain progress at the time of upgrade failure."
+ },
+ "UpgradeStatusDetails": {
+ "type": "string",
+ "description": "Additional detailed information about the status of the pending upgrade."
+ }
+ }
+ },
+ "ByteArray": {
+ "description": "Array of bytes to be sent as an integer array. Each element of array is a number between 0 and 255.",
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "ClusterConfiguration": {
+ "description": "Information about the standalone cluster configuration.",
+ "properties": {
+ "ClusterConfiguration": {
+ "type": "string",
+ "description": "The contents of the cluster configuration file."
+ }
+ }
+ },
+ "ClusterEvent": {
+ "description": "Represents the base for all Cluster Events.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/FabricEvent"
+ }
+ ],
+ "x-ms-discriminator-value": "ClusterEvent"
+ },
+ "ClusterEventList": {
+ "description": "A list of ClusterEvent objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ClusterEvent"
+ }
+ },
+ "ClusterHealth": {
+ "description": "Represents the health of the cluster.\nContains the cluster aggregated health state, the cluster application and node health states as well as the health events and the unhealthy evaluations.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealth"
+ }
+ ],
+ "properties": {
+ "NodeHealthStates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NodeHealthState"
+ },
+ "description": "Cluster node health states as found in the health store."
+ },
+ "ApplicationHealthStates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationHealthState"
+ },
+ "description": "Cluster application health states as found in the health store."
+ }
+ }
+ },
+ "ClusterHealthChunk": {
+ "description": "Represents the health chunk of the cluster.\nContains the cluster aggregated health state, and the cluster entities that respect the input filter.",
+ "properties": {
+ "HealthState": {
+ "$ref": "#/definitions/HealthState",
+ "description": "The HealthState representing the aggregated health state of the cluster computed by Health Manager.\nThe health evaluation of the entity reflects all events reported on the entity and its children (if any).\nThe aggregation is done by applying the desired cluster health policy and the application health policies."
+ },
+ "NodeHealthStateChunks": {
+ "$ref": "#/definitions/NodeHealthStateChunkList",
+ "description": "The list of node health state chunks in the cluster that respect the filters in the cluster health chunk query description."
+ },
+ "ApplicationHealthStateChunks": {
+ "$ref": "#/definitions/ApplicationHealthStateChunkList",
+ "description": "The list of application health state chunks in the cluster that respect the filters in the cluster health chunk query description."
+ }
+ }
+ },
+ "ClusterHealthChunkQueryDescription": {
+ "description": "The cluster health chunk query description, which can specify the health policies to evaluate cluster health and very expressive filters to select which cluster entities to include in response.",
+ "properties": {
+ "NodeFilters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NodeHealthStateFilter"
+ },
+ "description": "Defines a list of filters that specify which nodes to be included in the returned cluster health chunk.\nIf no filters are specified, no nodes are returned. All the nodes are used to evaluate the cluster's aggregated health state, regardless of the input filters.\nThe cluster health chunk query may specify multiple node filters.\nFor example, it can specify a filter to return all nodes with health state Error and another filter to always include a node identified by its NodeName."
+ },
+ "ApplicationFilters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationHealthStateFilter"
+ },
+ "description": "Defines a list of filters that specify which applications to be included in the returned cluster health chunk.\nIf no filters are specified, no applications are returned. All the applications are used to evaluate the cluster's aggregated health state, regardless of the input filters.\nThe cluster health chunk query may specify multiple application filters.\nFor example, it can specify a filter to return all applications with health state Error and another filter to always include applications of a specified application type."
+ },
+ "ClusterHealthPolicy": {
+ "$ref": "#/definitions/ClusterHealthPolicy",
+ "description": "Defines a health policy used to evaluate the health of the cluster or of a cluster node."
+ },
+ "ApplicationHealthPolicies": {
+ "$ref": "#/definitions/ApplicationHealthPolicies",
+ "description": "Defines the application health policy map used to evaluate the health of an application or one of its children entities."
+ }
+ }
+ },
+ "ClusterHealthPolicies": {
+ "description": "Health policies to evaluate cluster health.",
+ "properties": {
+ "ApplicationHealthPolicyMap": {
+ "$ref": "#/definitions/ApplicationHealthPolicyMap",
+ "description": "Defines a map that contains specific application health policies for different applications.\nEach entry specifies as key the application name and as value an ApplicationHealthPolicy used to evaluate the application health.\nIf an application is not specified in the map, the application health evaluation uses the ApplicationHealthPolicy found in its application manifest or the default application health policy (if no health policy is defined in the manifest).\nThe map is empty by default."
+ },
+ "ClusterHealthPolicy": {
+ "$ref": "#/definitions/ClusterHealthPolicy",
+ "description": "Defines a health policy used to evaluate the health of the cluster or of a cluster node."
+ }
+ }
+ },
+ "ClusterHealthPolicy": {
+ "description": "Defines a health policy used to evaluate the health of the cluster or of a cluster node.",
+ "properties": {
+ "ConsiderWarningAsError": {
+ "type": "boolean",
+ "description": "Indicates whether warnings are treated with the same severity as errors.",
+ "default": false
+ },
+ "MaxPercentUnhealthyNodes": {
+ "type": "integer",
+ "description": "The maximum allowed percentage of unhealthy nodes before reporting an error. For example, to allow 10% of nodes to be unhealthy, this value would be 10.\n\nThe percentage represents the maximum tolerated percentage of nodes that can be unhealthy before the cluster is considered in error.\nIf the percentage is respected but there is at least one unhealthy node, the health is evaluated as Warning.\nThe percentage is calculated by dividing the number of unhealthy nodes over the total number of nodes in the cluster.\nThe computation rounds up to tolerate one failure on small numbers of nodes. Default percentage is zero.\n\nIn large clusters, some nodes will always be down or out for repairs, so this percentage should be configured to tolerate that.",
+ "default": 0
+ },
+ "MaxPercentUnhealthyApplications": {
+ "type": "integer",
+ "description": "The maximum allowed percentage of unhealthy applications before reporting an error. For example, to allow 10% of applications to be unhealthy, this value would be 10.\n\nThe percentage represents the maximum tolerated percentage of applications that can be unhealthy before the cluster is considered in error.\nIf the percentage is respected but there is at least one unhealthy application, the health is evaluated as Warning.\nThis is calculated by dividing the number of unhealthy applications over the total number of application instances in the cluster, excluding applications of application types that are included in the ApplicationTypeHealthPolicyMap.\nThe computation rounds up to tolerate one failure on small numbers of applications. Default percentage is zero.",
+ "default": 0
+ },
+ "ApplicationTypeHealthPolicyMap": {
+ "$ref": "#/definitions/ApplicationTypeHealthPolicyMap",
+ "description": "Defines a map with max percentage unhealthy applications for specific application types.\nEach entry specifies as key the application type name and as value an integer that represents the MaxPercentUnhealthyApplications percentage used to evaluate the applications of the specified application type.\n\nThe application type health policy map can be used during cluster health evaluation to describe special application types.\nThe application types included in the map are evaluated against the percentage specified in the map, and not with the global MaxPercentUnhealthyApplications defined in the cluster health policy.\nThe applications of application types specified in the map are not counted against the global pool of applications.\nFor example, if some applications of a type are critical, the cluster administrator can add an entry to the map for that application type\nand assign it a value of 0% (that is, do not tolerate any failures).\nAll other applications can be evaluated with MaxPercentUnhealthyApplications set to 20% to tolerate some failures out of the thousands of application instances.\nThe application type health policy map is used only if the cluster manifest enables application type health evaluation using the configuration entry for HealthManager/EnableApplicationTypeHealthEvaluation."
+ }
+ }
+ },
+ "ClusterManifest": {
+ "description": "Information about the cluster manifest.",
+ "properties": {
+ "Manifest": {
+ "type": "string",
+ "description": "The contents of the cluster manifest file."
+ }
+ }
+ },
+ "ClusterLoadInfo": {
+ "description": "Information about load in a Service Fabric cluster. It holds a summary of all metrics and their load in a cluster.",
+ "properties": {
+ "LastBalancingStartTimeUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The starting time of last resource balancing run."
+ },
+ "LastBalancingEndTimeUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The end time of last resource balancing run."
+ },
+ "LoadMetricInformation": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LoadMetricInformation"
+ },
+ "description": "List that contains metrics and their load information in this cluster."
+ }
+ }
+ },
+ "LoadMetricInformation": {
+ "description": "Represents data structure that contains load information for a certain metric in a cluster.",
+ "properties": {
+ "Name": {
+ "type": "string",
+ "description": "Name of the metric for which this load information is provided."
+ },
+ "IsBalancedBefore": {
+ "type": "boolean",
+ "description": "Value that indicates whether the metrics is balanced or not before resource balancer run"
+ },
+ "IsBalancedAfter": {
+ "type": "boolean",
+ "description": "Value that indicates whether the metrics is balanced or not after resource balancer run."
+ },
+ "DeviationBefore": {
+ "type": "string",
+ "format": "double",
+ "description": "The standard average deviation of the metrics before resource balancer run."
+ },
+ "DeviationAfter": {
+ "type": "string",
+ "format": "double",
+ "description": "The standard average deviation of the metrics after resource balancer run."
+ },
+ "BalancingThreshold": {
+ "type": "string",
+ "format": "double",
+ "description": "The balancing threshold for a certain metric."
+ },
+ "Action": {
+ "type": "string",
+ "description": "The current action being taken with regard to this metric"
+ },
+ "ActivityThreshold": {
+ "type": "string",
+ "format": "double",
+ "description": "The Activity Threshold specified for this metric in the system Cluster Manifest."
+ },
+ "ClusterCapacity": {
+ "type": "string",
+ "description": "The total cluster capacity for a given metric"
+ },
+ "ClusterLoad": {
+ "type": "string",
+ "description": "The total cluster load. In future releases of Service Fabric this parameter will be deprecated in favor of CurrentClusterLoad."
+ },
+ "CurrentClusterLoad": {
+ "type": "string",
+ "format": "double",
+ "description": "The total cluster load."
+ },
+ "ClusterRemainingCapacity": {
+ "type": "string",
+ "description": "The remaining capacity for the metric in the cluster. In future releases of Service Fabric this parameter will be deprecated in favor of ClusterCapacityRemaining."
+ },
+ "ClusterCapacityRemaining": {
+ "type": "string",
+ "description": "The remaining capacity for the metric in the cluster."
+ },
+ "IsClusterCapacityViolation": {
+ "type": "boolean",
+ "description": "Indicates that the metric is currently over capacity in the cluster."
+ },
+ "NodeBufferPercentage": {
+ "type": "string",
+ "format": "double",
+ "description": "The reserved percentage of total node capacity for this metric."
+ },
+ "ClusterBufferedCapacity": {
+ "type": "string",
+ "description": "Remaining capacity in the cluster excluding the reserved space. In future releases of Service Fabric this parameter will be deprecated in favor of BufferedClusterCapacityRemaining."
+ },
+ "BufferedClusterCapacityRemaining": {
+ "type": "string",
+ "format": "double",
+ "description": "Remaining capacity in the cluster excluding the reserved space."
+ },
+ "ClusterRemainingBufferedCapacity": {
+ "type": "string",
+ "description": "The remaining percentage of cluster total capacity for this metric."
+ },
+ "MinNodeLoadValue": {
+ "type": "string",
+ "description": "The minimum load on any node for this metric. In future releases of Service Fabric this parameter will be deprecated in favor of MinimumNodeLoad."
+ },
+ "MinimumNodeLoad": {
+ "type": "string",
+ "format": "double",
+ "description": "The minimum load on any node for this metric."
+ },
+ "MinNodeLoadNodeId": {
+ "$ref": "#/definitions/NodeId",
+ "description": "The node id of the node with the minimum load for this metric."
+ },
+ "MaxNodeLoadValue": {
+ "type": "string",
+ "description": "The maximum load on any node for this metric. In future releases of Service Fabric this parameter will be deprecated in favor of MaximumNodeLoad."
+ },
+ "MaximumNodeLoad": {
+ "type": "string",
+ "format": "double",
+ "description": "The maximum load on any node for this metric."
+ },
+ "MaxNodeLoadNodeId": {
+ "$ref": "#/definitions/NodeId",
+ "description": "The node id of the node with the maximum load for this metric."
+ },
+ "PlannedLoadRemoval": {
+ "type": "string",
+ "format": "double",
+ "description": "This value represents the load of the replicas that are planned to be removed in the future within the cluster.\nThis kind of load is reported for replicas that are currently being moving to other nodes and for replicas that are currently being dropped but still use the load on the source node."
+ }
+ }
+ },
+ "ClusterVersion": {
+ "description": "The cluster version.",
+ "properties": {
+ "Version": {
+ "type": "string",
+ "description": "The Service Fabric cluster runtime version."
+ }
+ }
+ },
+ "ContainerApiRequestBody": {
+ "description": "parameters for making container API call.",
+ "properties": {
+ "HttpVerb": {
+ "type": "string",
+ "description": "HTTP verb of container REST API, defaults to \"GET\""
+ },
+ "UriPath": {
+ "type": "string",
+ "description": "URI path of container REST API"
+ },
+ "Content-Type": {
+ "type": "string",
+ "description": "Content type of container REST API request, defaults to \"application/json\""
+ },
+ "Body": {
+ "type": "string",
+ "description": "HTTP request body of container REST API"
+ }
+ },
+ "required": [
+ "UriPath"
+ ]
+ },
+ "ContainerApiResponse": {
+ "description": "Response body that wraps container API result.",
+ "properties": {
+ "ContainerApiResult": {
+ "$ref": "#/definitions/ContainerApiResult",
+ "description": "Container API result."
+ }
+ },
+ "required": [
+ "ContainerApiResult"
+ ]
+ },
+ "ContainerApiResult": {
+ "description": "Container API result.",
+ "properties": {
+ "Status": {
+ "type": "integer",
+ "description": "HTTP status code returned by the target container API"
+ },
+ "Content-Type": {
+ "type": "string",
+ "description": "HTTP content type"
+ },
+ "Content-Encoding": {
+ "type": "string",
+ "description": "HTTP content encoding"
+ },
+ "Body": {
+ "type": "string",
+ "description": "container API result body"
+ }
+ },
+ "required": [
+ "Status"
+ ]
+ },
+ "ContainerInstanceEvent": {
+ "description": "Represents the base for all Container Events.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/FabricEvent"
+ }
+ ],
+ "x-ms-discriminator-value": "ContainerInstanceEvent"
+ },
+ "ContainerInstanceEventList": {
+ "description": "A list of ContainerInstanceEvent objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerInstanceEvent"
+ }
+ },
+ "ContinuationToken": {
+ "type": "string",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "ConfigParameterOverrideList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ConfigParameterOverride"
+ },
+ "description": "List that contains parameters, sections that they belong and their values."
+ },
+ "ConfigParameterOverride": {
+ "description": "Information about a configuration parameter override.",
+ "properties": {
+ "SectionName": {
+ "type": "string",
+ "description": "Name of the section for the parameter override."
+ },
+ "ParameterName": {
+ "type": "string",
+ "description": "Name of the parameter that has been overridden."
+ },
+ "ParameterValue": {
+ "type": "string",
+ "description": "Value of the overridden parameter."
+ },
+ "Timeout": {
+ "type": "string",
+ "format": "duration",
+ "description": "The duration until config override is considered as valid."
+ },
+ "PersistAcrossUpgrade": {
+ "type": "boolean",
+ "description": "A value that indicates whether config override will be removed on upgrade or will still be considered as valid."
+ }
+ },
+ "required": [
+ "SectionName",
+ "ParameterName",
+ "ParameterValue"
+ ]
+ },
+ "CurrentUpgradeDomainProgressInfo": {
+ "description": "Information about the current in-progress upgrade domain.",
+ "properties": {
+ "DomainName": {
+ "$ref": "#/definitions/UpgradeDomainName",
+ "description": "The name of the upgrade domain"
+ },
+ "NodeUpgradeProgressList": {
+ "$ref": "#/definitions/NodeUpgradeProgressInfoList",
+ "description": "List of upgrading nodes and their statuses"
+ }
+ }
+ },
+ "CurrentUpgradeDomainDuration": {
+ "type": "string",
+ "description": "The estimated amount of time spent processing current Upgrade Domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.",
+ "default": "PT0H2M0S"
+ },
+ "DeactivationIntentDescription": {
+ "description": "Describes the intent or reason for deactivating the node.",
+ "properties": {
+ "DeactivationIntent": {
+ "type": "string",
+ "description": "Describes the intent or reason for deactivating the node. The possible values are following.",
+ "enum": [
+ "Pause",
+ "Restart",
+ "RemoveData"
+ ],
+ "x-ms-enum": {
+ "name": "DeactivationIntent",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Pause",
+ "description": "Indicates that the node should be paused. The value is 1."
+ },
+ {
+ "value": "Restart",
+ "description": "Indicates that the intent is for the node to be restarted after a short period of time. The value is 2."
+ },
+ {
+ "value": "RemoveData",
+ "description": "Indicates the intent is for the node to remove data. The value is 3."
+ }
+ ]
+ }
+ }
+ }
+ },
+ "DeltaNodesCheckHealthEvaluation": {
+ "x-ms-discriminator-value": "DeltaNodesCheck",
+ "description": "Represents health evaluation for delta nodes, containing health evaluations for each unhealthy node that impacted current aggregated health state.\nCan be returned during cluster upgrade when the aggregated health state of the cluster is Warning or Error.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "BaselineErrorCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Number of nodes with aggregated heath state Error in the health store at the beginning of the cluster upgrade."
+ },
+ "BaselineTotalCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total number of nodes in the health store at the beginning of the cluster upgrade."
+ },
+ "MaxPercentDeltaUnhealthyNodes": {
+ "type": "integer",
+ "description": "Maximum allowed percentage of delta unhealthy nodes from the ClusterUpgradeHealthPolicy."
+ },
+ "TotalCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total number of nodes in the health store."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the aggregated health state.\nIncludes all the unhealthy NodeHealthEvaluation that impacted the aggregated health."
+ }
+ }
+ },
+ "DeployedApplicationHealth": {
+ "description": "Information about the health of an application deployed on a Service Fabric node.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealth"
+ }
+ ],
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "Name of the application deployed on the node whose health information is described by this object."
+ },
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "Name of the node where this application is deployed."
+ },
+ "DeployedServicePackageHealthStates": {
+ "$ref": "#/definitions/DeployedServicePackageHealthStateList",
+ "description": "Deployed service package health states for the current deployed application as found in the health store."
+ }
+ }
+ },
+ "DeployedApplicationHealthEvaluation": {
+ "x-ms-discriminator-value": "DeployedApplication",
+ "description": "Represents health evaluation for a deployed application, containing information about the data and the algorithm used by the health store to evaluate health.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "Name of the node where the application is deployed to."
+ },
+ "ApplicationName": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the current aggregated health state of the deployed application.\nThe types of the unhealthy evaluations can be DeployedServicePackagesHealthEvaluation or EventHealthEvaluation."
+ }
+ }
+ },
+ "DeployedApplicationHealthState": {
+ "description": "Represents the health state of a deployed application, which contains the entity identifier and the aggregated health state.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthState"
+ }
+ ],
+ "properties": {
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "Name of the node on which the service package is deployed."
+ },
+ "ApplicationName": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ }
+ }
+ },
+ "DeployedApplicationHealthStateChunk": {
+ "description": "Represents the health state chunk of a deployed application, which contains the node where the application is deployed, the aggregated health state and any deployed service packages that respect the chunk query description filters.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthStateChunk"
+ }
+ ],
+ "properties": {
+ "NodeName": {
+ "type": "string",
+ "description": "The name of node where the application is deployed."
+ },
+ "DeployedServicePackageHealthStateChunks": {
+ "$ref": "#/definitions/DeployedServicePackageHealthStateChunkList",
+ "description": "The list of deployed service package health state chunks belonging to the deployed application that respect the filters in the cluster health chunk query description."
+ }
+ }
+ },
+ "DeployedApplicationHealthStateChunkList": {
+ "description": "The list of deployed application health state chunks that respect the input filters in the chunk query. Returned by get cluster health state chunks query.",
+ "properties": {
+ "Items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeployedApplicationHealthStateChunk"
+ },
+ "description": "The list of deployed application health state chunks that respect the input filters in the chunk query."
+ }
+ }
+ },
+ "DeployedApplicationHealthStateFilter": {
+ "description": "Defines matching criteria to determine whether a deployed application should be included as a child of an application in the cluster health chunk.\nThe deployed applications are only returned if the parent application matches a filter specified in the cluster health chunk query description.\nOne filter can match zero, one or multiple deployed applications, depending on its properties.",
+ "properties": {
+ "NodeNameFilter": {
+ "type": "string",
+ "description": "The name of the node where the application is deployed in order to match the filter.\nIf specified, the filter is applied only to the application deployed on the specified node.\nIf the application is not deployed on the node with the specified name, no deployed application is returned in the cluster health chunk based on this filter.\nOtherwise, the deployed application is included in the cluster health chunk if it respects the other filter properties.\nIf not specified, all deployed applications that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter."
+ },
+ "HealthStateFilter": {
+ "type": "integer",
+ "default": 0,
+ "description": "The filter for the health state of the deployed applications. It allows selecting deployed applications if they match the desired health states.\nThe possible values are integer value of one of the following health states. Only deployed applications that match the filter are returned. All deployed applications are used to evaluate the cluster aggregated health state.\nIf not specified, default value is None, unless the node name is specified. If the filter has default value and node name is specified, the matching deployed application is returned.\nThe state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.\nFor example, if the provided value is 6, it matches deployed applications with HealthState value of OK (2) and Warning (4).\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535."
+ },
+ "DeployedServicePackageFilters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeployedServicePackageHealthStateFilter"
+ },
+ "description": "Defines a list of filters that specify which deployed service packages to be included in the returned cluster health chunk as children of the parent deployed application. The deployed service packages are returned only if the parent deployed application matches a filter.\nIf the list is empty, no deployed service packages are returned. All the deployed service packages are used to evaluate the parent deployed application aggregated health state, regardless of the input filters.\nThe deployed application filter may specify multiple deployed service package filters.\nFor example, it can specify a filter to return all deployed service packages with health state Error and another filter to always include a deployed service package on a node."
+ }
+ }
+ },
+ "DeployedApplicationInfo": {
+ "description": "Information about application deployed on the node.",
+ "properties": {
+ "Id": {
+ "$ref": "#/definitions/ApplicationId",
+ "description": "The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource.\nStarting in version 6.0, hierarchical names are delimited with the \"\\~\" character. For example, if the application name is \"fabric:/myapp/app1\",\nthe application identity would be \"myapp\\~app1\" in 6.0+ and \"myapp/app1\" in previous versions."
+ },
+ "Name": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "TypeName": {
+ "$ref": "#/definitions/ApplicationTypeName",
+ "description": "The application type name as defined in the application manifest."
+ },
+ "Status": {
+ "$ref": "#/definitions/DeployedApplicationStatus",
+ "description": "The status of the application deployed on the node. Following are the possible values."
+ },
+ "WorkDirectory": {
+ "type": "string",
+ "description": "The work directory of the application on the node. The work directory can be used to store application data."
+ },
+ "LogDirectory": {
+ "type": "string",
+ "description": "The log directory of the application on the node. The log directory can be used to store application logs."
+ },
+ "TempDirectory": {
+ "type": "string",
+ "description": "The temp directory of the application on the node. The code packages belonging to the application are forked with this directory set as their temporary directory."
+ },
+ "HealthState": {
+ "$ref": "#/definitions/HealthState",
+ "description": "The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc."
+ }
+ }
+ },
+ "DeployedApplicationInfoList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeployedApplicationInfo"
+ },
+ "description": "List of deployed application information."
+ },
+ "DeployedApplicationsHealthEvaluation": {
+ "x-ms-discriminator-value": "DeployedApplications",
+ "description": "Represents health evaluation for deployed applications, containing health evaluations for each unhealthy deployed application that impacted current aggregated health state.\nCan be returned when evaluating application health and the aggregated health state is either Error or Warning.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "MaxPercentUnhealthyDeployedApplications": {
+ "type": "integer",
+ "description": "Maximum allowed percentage of unhealthy deployed applications from the ApplicationHealthPolicy."
+ },
+ "TotalCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total number of deployed applications of the application in the health store."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy DeployedApplicationHealthEvaluation that impacted the aggregated health."
+ }
+ }
+ },
+ "DeployedApplicationStatus": {
+ "type": "string",
+ "description": "The status of the application deployed on the node. Following are the possible values.",
+ "enum": [
+ "Invalid",
+ "Downloading",
+ "Activating",
+ "Active",
+ "Upgrading",
+ "Deactivating"
+ ],
+ "x-ms-enum": {
+ "name": "DeployedApplicationStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates that deployment status is not valid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Downloading",
+ "description": "Indicates that the package is downloading from the ImageStore. The value is 1."
+ },
+ {
+ "value": "Activating",
+ "description": "Indicates that the package is activating. The value is 2."
+ },
+ {
+ "value": "Active",
+ "description": "Indicates that the package is active. The value is 3."
+ },
+ {
+ "value": "Upgrading",
+ "description": "Indicates that the package is upgrading. The value is 4."
+ },
+ {
+ "value": "Deactivating",
+ "description": "Indicates that the package is deactivating. The value is 5."
+ }
+ ]
+ }
+ },
+ "DeployedServicePackageHealth": {
+ "description": "Information about the health of a service package for a specific application deployed on a Service Fabric node.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealth"
+ }
+ ],
+ "properties": {
+ "ApplicationName": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "ServiceManifestName": {
+ "$ref": "#/definitions/ServiceManifestName",
+ "description": "Name of the service manifest."
+ },
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "Name of the node where this service package is deployed."
+ }
+ }
+ },
+ "DeployedServicePackageHealthEvaluation": {
+ "x-ms-discriminator-value": "DeployedServicePackage",
+ "description": "Represents health evaluation for a deployed service package, containing information about the data and the algorithm used by health store to evaluate health. The evaluation is returned only when the aggregated health state is either Error or Warning.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "ApplicationName": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "ServiceManifestName": {
+ "$ref": "#/definitions/ServiceManifestName",
+ "description": "The name of the service manifest."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the current aggregated health state. The type of the unhealthy evaluations can be EventHealthEvaluation."
+ }
+ }
+ },
+ "DeployedServicePackageHealthState": {
+ "description": "Represents the health state of a deployed service package, containing the entity identifier and the aggregated health state.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthState"
+ }
+ ],
+ "properties": {
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "Name of the node on which the service package is deployed."
+ },
+ "ApplicationName": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "ServiceManifestName": {
+ "$ref": "#/definitions/ServiceManifestName",
+ "description": "Name of the manifest describing the service package."
+ },
+ "ServicePackageActivationId": {
+ "$ref": "#/definitions/ServicePackageActivationId",
+ "description": "The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service\nis 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId\nis always an empty string."
+ }
+ }
+ },
+ "DeployedServicePackageHealthStateChunk": {
+ "description": "Represents the health state chunk of a deployed service package, which contains the service manifest name and the service package aggregated health state.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthStateChunk"
+ }
+ ],
+ "properties": {
+ "ServiceManifestName": {
+ "$ref": "#/definitions/ServiceManifestName",
+ "description": "The name of the service manifest."
+ },
+ "ServicePackageActivationId": {
+ "$ref": "#/definitions/ServicePackageActivationId",
+ "description": "The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service\nis 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId\nis always an empty string."
+ }
+ }
+ },
+ "DeployedServicePackageHealthStateChunkList": {
+ "description": "The list of deployed service package health state chunks that respect the input filters in the chunk query. Returned by get cluster health state chunks query.",
+ "properties": {
+ "Items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeployedServicePackageHealthStateChunk"
+ },
+ "description": "The list of deployed service package health state chunks that respect the input filters in the chunk query."
+ }
+ }
+ },
+ "DeployedServicePackageHealthStateFilter": {
+ "description": "Defines matching criteria to determine whether a deployed service package should be included as a child of a deployed application in the cluster health chunk.\nThe deployed service packages are only returned if the parent entities match a filter specified in the cluster health chunk query description. The parent deployed application and its parent application must be included in the cluster health chunk.\nOne filter can match zero, one or multiple deployed service packages, depending on its properties.",
+ "properties": {
+ "ServiceManifestNameFilter": {
+ "type": "string",
+ "description": "The name of the service manifest which identifies the deployed service packages that matches the filter.\nIf specified, the filter is applied only to the specified deployed service packages, if any.\nIf no deployed service packages with specified manifest name exist, nothing is returned in the cluster health chunk based on this filter.\nIf any deployed service package exists, they are included in the cluster health chunk if it respects the other filter properties.\nIf not specified, all deployed service packages that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter."
+ },
+ "ServicePackageActivationIdFilter": {
+ "type": "string",
+ "description": "The activation ID of a deployed service package that matches the filter.\nIf not specified, the filter applies to all deployed service packages that match the other parameters.\nIf specified, the filter matches only the deployed service package with the specified activation ID."
+ },
+ "HealthStateFilter": {
+ "type": "integer",
+ "default": 0,
+ "description": "The filter for the health state of the deployed service packages. It allows selecting deployed service packages if they match the desired health states.\nThe possible values are integer value of one of the following health states. Only deployed service packages that match the filter are returned. All deployed service packages are used to evaluate the parent deployed application aggregated health state.\nIf not specified, default value is None, unless the deployed service package ID is specified. If the filter has default value and deployed service package ID is specified, the matching deployed service package is returned.\nThe state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.\nFor example, if the provided value is 6, it matches deployed service packages with HealthState value of OK (2) and Warning (4).\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535."
+ }
+ }
+ },
+ "DeployedServicePackageHealthStateList": {
+ "description": "List of health states for a service package deployed on a Service Fabric node.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeployedServicePackageHealthState"
+ }
+ },
+ "DeployedServicePackagesHealthEvaluation": {
+ "x-ms-discriminator-value": "DeployedServicePackages",
+ "description": "Represents health evaluation for deployed service packages, containing health evaluations for each unhealthy deployed service package that impacted current aggregated health state. Can be returned when evaluating deployed application health and the aggregated health state is either Error or Warning.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "TotalCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total number of deployed service packages of the deployed application in the health store."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy DeployedServicePackageHealthEvaluation that impacted the aggregated health."
+ }
+ }
+ },
+ "DeployedServiceReplicaInfo": {
+ "discriminator": "ServiceKind",
+ "description": "Information about a Service Fabric service replica deployed on a node.",
+ "required": [
+ "ServiceKind"
+ ],
+ "properties": {
+ "ServiceKind": {
+ "$ref": "#/definitions/ServiceKind",
+ "description": "The kind of service (Stateless or Stateful)."
+ },
+ "ServiceName": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The full name of the service with 'fabric:' URI scheme."
+ },
+ "ServiceTypeName": {
+ "$ref": "#/definitions/ServiceTypeName",
+ "description": "Name of the service type as specified in the service manifest."
+ },
+ "ServiceManifestName": {
+ "$ref": "#/definitions/ServiceManifestName",
+ "description": "The name of the service manifest in which this service type is defined."
+ },
+ "CodePackageName": {
+ "$ref": "#/definitions/CodePackageName",
+ "description": "The name of the code package that hosts this replica."
+ },
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different."
+ },
+ "ReplicaStatus": {
+ "$ref": "#/definitions/ReplicaStatus",
+ "description": "The status of a replica of a service."
+ },
+ "Address": {
+ "type": "string",
+ "description": "The last address returned by the replica in Open or ChangeRole."
+ },
+ "ServicePackageActivationId": {
+ "$ref": "#/definitions/ServicePackageActivationId",
+ "description": "The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service\nis 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId\nis always an empty string."
+ },
+ "HostProcessId": {
+ "type": "string",
+ "description": "Host process ID of the process that is hosting the replica. This will be zero if the replica is down. In hyper-v containers this host process ID will be from different kernel."
+ }
+ }
+ },
+ "DeployedServiceReplicaInfoList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeployedServiceReplicaInfo"
+ },
+ "description": "List of deployed service replica information."
+ },
+ "DeployedStatefulServiceReplicaInfo": {
+ "description": "Information about a stateful service replica deployed on a node.",
+ "x-ms-discriminator-value": "Stateful",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DeployedServiceReplicaInfo"
+ }
+ ],
+ "properties": {
+ "ReplicaId": {
+ "$ref": "#/definitions/ReplicaId",
+ "description": "Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id."
+ },
+ "ReplicaRole": {
+ "$ref": "#/definitions/ReplicaRole",
+ "description": "The role of a replica of a stateful service."
+ },
+ "ReconfigurationInformation": {
+ "$ref": "#/definitions/ReconfigurationInformation",
+ "description": "Information about current reconfiguration like phase, type, previous configuration role of replica and reconfiguration start date time."
+ }
+ }
+ },
+ "DeployedStatelessServiceInstanceInfo": {
+ "description": "Information about a stateless service instance deployed on a node.",
+ "x-ms-discriminator-value": "Stateless",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DeployedServiceReplicaInfo"
+ }
+ ],
+ "properties": {
+ "InstanceId": {
+ "$ref": "#/definitions/InstanceId",
+ "description": "Id of a stateless service instance. InstanceId is used by Service Fabric to uniquely identify an instance of a partition of a stateless service. It is unique within a partition and does not change for the lifetime of the instance. If the instance has failed over on the same or different node, it will get a different value for the InstanceId."
+ }
+ }
+ },
+ "EntityHealth": {
+ "description": "Health information common to all entities in the cluster. It contains the aggregated health state, health events and unhealthy evaluation.",
+ "properties": {
+ "AggregatedHealthState": {
+ "$ref": "#/definitions/HealthState",
+ "description": "The HealthState representing the aggregated health state of the entity computed by Health Manager.\nThe health evaluation of the entity reflects all events reported on the entity and its children (if any).\nThe aggregation is done by applying the desired health policy."
+ },
+ "HealthEvents": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthEvent"
+ },
+ "description": "The list of health events reported on the entity."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager."
+ },
+ "HealthStatistics": {
+ "$ref": "#/definitions/HealthStatistics",
+ "description": "Shows the health statistics for all children types of the queried entity."
+ }
+ }
+ },
+ "EntityHealthState": {
+ "description": "A base type for the health state of various entities in the cluster. It contains the aggregated health state.",
+ "properties": {
+ "AggregatedHealthState": {
+ "$ref": "#/definitions/HealthState",
+ "description": "The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc."
+ }
+ }
+ },
+ "EntityHealthStateChunk": {
+ "description": "A base type for the health state chunk of various entities in the cluster. It contains the aggregated health state.",
+ "properties": {
+ "HealthState": {
+ "$ref": "#/definitions/HealthState",
+ "description": "The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc."
+ }
+ }
+ },
+ "EntityHealthStateChunkList": {
+ "description": "A base type for the list of health state chunks found in the cluster. It contains the total number of health states that match the input filters.",
+ "properties": {
+ "TotalCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total number of entity health state objects that match the specified filters from the cluster health chunk query description."
+ }
+ }
+ },
+ "Epoch": {
+ "description": "An Epoch is a configuration number for the partition as a whole. When the configuration of the replica set changes, for example when the Primary replica changes, the operations that are replicated from the new Primary replica are said to be a new Epoch from the ones which were sent by the old Primary replica.",
+ "properties": {
+ "ConfigurationVersion": {
+ "type": "string",
+ "description": "The current configuration number of this Epoch. The configuration number is an increasing value that is updated whenever the configuration of this replica set changes."
+ },
+ "DataLossVersion": {
+ "type": "string",
+ "description": "The current data loss number of this Epoch. The data loss number property is an increasing value which is updated whenever data loss is suspected, as when loss of a quorum of replicas in the replica set that includes the Primary replica."
+ }
+ }
+ },
+ "EventHealthEvaluation": {
+ "x-ms-discriminator-value": "Event",
+ "description": "Represents health evaluation of a HealthEvent that was reported on the entity.\nThe health evaluation is returned when evaluating health of an entity results in Error or Warning.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "ConsiderWarningAsError": {
+ "type": "boolean",
+ "description": "Indicates whether warnings are treated with the same severity as errors. The field is specified in the health policy used to evaluate the entity."
+ },
+ "UnhealthyEvent": {
+ "$ref": "#/definitions/HealthEvent",
+ "description": "Represents health information reported on a health entity, such as cluster, application or node, with additional metadata added by the Health Manager."
+ }
+ }
+ },
+ "EventList": {
+ "description": "A list of FabricEvent objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FabricEvent"
+ }
+ },
+ "FabricCodeVersionInfo": {
+ "description": "Information about a Service Fabric code version.",
+ "properties": {
+ "CodeVersion": {
+ "description": "The product version of Service Fabric.",
+ "type": "string"
+ }
+ }
+ },
+ "FabricCodeVersionInfoList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FabricCodeVersionInfo"
+ },
+ "description": "List of all Service Fabric code versions."
+ },
+ "FabricConfigVersionInfo": {
+ "description": "Information about a Service Fabric config version.",
+ "properties": {
+ "ConfigVersion": {
+ "description": "The config version of Service Fabric.",
+ "type": "string"
+ }
+ }
+ },
+ "FabricConfigVersionInfoList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FabricConfigVersionInfo"
+ },
+ "description": "List of all Service Fabric config versions."
+ },
+ "FabricEvent": {
+ "discriminator": "Kind",
+ "description": "Represents the base for all Fabric Events.",
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/FabricEventKind",
+ "description": "The kind of FabricEvent."
+ },
+ "EventInstanceId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "The identifier for the FabricEvent instance."
+ },
+ "Category": {
+ "type": "string",
+ "description": "The category of event."
+ },
+ "TimeStamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time event was logged."
+ },
+ "HasCorrelatedEvents": {
+ "type": "boolean",
+ "description": "Shows there is existing related events available."
+ }
+ },
+ "required": [
+ "Kind",
+ "EventInstanceId",
+ "TimeStamp"
+ ]
+ },
+ "FabricEventKind": {
+ "type": "string",
+ "description": "The kind of FabricEvent.",
+ "enum": [
+ "ClusterEvent",
+ "ContainerInstanceEvent",
+ "NodeEvent",
+ "ApplicationEvent",
+ "ServiceEvent",
+ "PartitionEvent",
+ "ReplicaEvent",
+ "PartitionAnalysisEvent",
+ "ApplicationCreated",
+ "ApplicationDeleted",
+ "ApplicationNewHealthReport",
+ "ApplicationHealthReportExpired",
+ "ApplicationUpgradeCompleted",
+ "ApplicationUpgradeDomainCompleted",
+ "ApplicationUpgradeRollbackCompleted",
+ "ApplicationUpgradeRollbackStarted",
+ "ApplicationUpgradeStarted",
+ "DeployedApplicationNewHealthReport",
+ "DeployedApplicationHealthReportExpired",
+ "ApplicationProcessExited",
+ "ApplicationContainerInstanceExited",
+ "NodeAborted",
+ "NodeAddedToCluster",
+ "NodeClosed",
+ "NodeDeactivateCompleted",
+ "NodeDeactivateStarted",
+ "NodeDown",
+ "NodeNewHealthReport",
+ "NodeHealthReportExpired",
+ "NodeOpenSucceeded",
+ "NodeOpenFailed",
+ "NodeRemovedFromCluster",
+ "NodeUp",
+ "PartitionNewHealthReport",
+ "PartitionHealthReportExpired",
+ "PartitionReconfigured",
+ "PartitionPrimaryMoveAnalysis",
+ "ServiceCreated",
+ "ServiceDeleted",
+ "ServiceNewHealthReport",
+ "ServiceHealthReportExpired",
+ "DeployedServicePackageNewHealthReport",
+ "DeployedServicePackageHealthReportExpired",
+ "StatefulReplicaNewHealthReport",
+ "StatefulReplicaHealthReportExpired",
+ "StatelessReplicaNewHealthReport",
+ "StatelessReplicaHealthReportExpired",
+ "ClusterNewHealthReport",
+ "ClusterHealthReportExpired",
+ "ClusterUpgradeCompleted",
+ "ClusterUpgradeDomainCompleted",
+ "ClusterUpgradeRollbackCompleted",
+ "ClusterUpgradeRollbackStarted",
+ "ClusterUpgradeStarted",
+ "ChaosStopped",
+ "ChaosStarted",
+ "ChaosCodePackageRestartScheduled",
+ "ChaosReplicaRemovalScheduled",
+ "ChaosPartitionSecondaryMoveScheduled",
+ "ChaosPartitionPrimaryMoveScheduled",
+ "ChaosReplicaRestartScheduled",
+ "ChaosNodeRestartScheduled"
+ ],
+ "x-ms-enum": {
+ "name": "FabricEventKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "ClusterEvent"
+ },
+ {
+ "value": "ContainerInstanceEvent"
+ },
+ {
+ "value": "NodeEvent"
+ },
+ {
+ "value": "ApplicationEvent"
+ },
+ {
+ "value": "ServiceEvent"
+ },
+ {
+ "value": "PartitionEvent"
+ },
+ {
+ "value": "ReplicaEvent"
+ },
+ {
+ "value": "PartitionAnalysisEvent"
+ },
+ {
+ "value": "ApplicationCreated"
+ },
+ {
+ "value": "ApplicationDeleted"
+ },
+ {
+ "value": "ApplicationNewHealthReport"
+ },
+ {
+ "value": "ApplicationHealthReportExpired"
+ },
+ {
+ "value": "ApplicationUpgradeCompleted"
+ },
+ {
+ "value": "ApplicationUpgradeDomainCompleted"
+ },
+ {
+ "value": "ApplicationUpgradeRollbackCompleted"
+ },
+ {
+ "value": "ApplicationUpgradeRollbackStarted"
+ },
+ {
+ "value": "ApplicationUpgradeStarted"
+ },
+ {
+ "value": "DeployedApplicationNewHealthReport"
+ },
+ {
+ "value": "DeployedApplicationHealthReportExpired"
+ },
+ {
+ "value": "ApplicationProcessExited"
+ },
+ {
+ "value": "ApplicationContainerInstanceExited"
+ },
+ {
+ "value": "NodeAborted"
+ },
+ {
+ "value": "NodeAddedToCluster"
+ },
+ {
+ "value": "NodeClosed"
+ },
+ {
+ "value": "NodeDeactivateCompleted"
+ },
+ {
+ "value": "NodeDeactivateStarted"
+ },
+ {
+ "value": "NodeDown"
+ },
+ {
+ "value": "NodeNewHealthReport"
+ },
+ {
+ "value": "NodeHealthReportExpired"
+ },
+ {
+ "value": "NodeOpenSucceeded"
+ },
+ {
+ "value": "NodeOpenFailed"
+ },
+ {
+ "value": "NodeRemovedFromCluster"
+ },
+ {
+ "value": "NodeUp"
+ },
+ {
+ "value": "PartitionNewHealthReport"
+ },
+ {
+ "value": "PartitionHealthReportExpired"
+ },
+ {
+ "value": "PartitionReconfigured"
+ },
+ {
+ "value": "PartitionPrimaryMoveAnalysis"
+ },
+ {
+ "value": "ServiceCreated"
+ },
+ {
+ "value": "ServiceDeleted"
+ },
+ {
+ "value": "ServiceNewHealthReport"
+ },
+ {
+ "value": "ServiceHealthReportExpired"
+ },
+ {
+ "value": "DeployedServicePackageNewHealthReport"
+ },
+ {
+ "value": "DeployedServicePackageHealthReportExpired"
+ },
+ {
+ "value": "StatefulReplicaNewHealthReport"
+ },
+ {
+ "value": "StatefulReplicaHealthReportExpired"
+ },
+ {
+ "value": "StatelessReplicaNewHealthReport"
+ },
+ {
+ "value": "StatelessReplicaHealthReportExpired"
+ },
+ {
+ "value": "ClusterNewHealthReport"
+ },
+ {
+ "value": "ClusterHealthReportExpired"
+ },
+ {
+ "value": "ClusterUpgradeCompleted"
+ },
+ {
+ "value": "ClusterUpgradeDomainCompleted"
+ },
+ {
+ "value": "ClusterUpgradeRollbackCompleted"
+ },
+ {
+ "value": "ClusterUpgradeRollbackStarted"
+ },
+ {
+ "value": "ClusterUpgradeStarted"
+ },
+ {
+ "value": "ChaosStopped"
+ },
+ {
+ "value": "ChaosStarted"
+ },
+ {
+ "value": "ChaosCodePackageRestartScheduled"
+ },
+ {
+ "value": "ChaosReplicaRemovalScheduled"
+ },
+ {
+ "value": "ChaosPartitionSecondaryMoveScheduled"
+ },
+ {
+ "value": "ChaosPartitionPrimaryMoveScheduled"
+ },
+ {
+ "value": "ChaosReplicaRestartScheduled"
+ },
+ {
+ "value": "ChaosNodeRestartScheduled"
+ }
+ ]
+ }
+ },
+ "ClusterConfigurationUpgradeStatusInfo": {
+ "description": "Information about a standalone cluster configuration upgrade status.",
+ "properties": {
+ "UpgradeState": {
+ "$ref": "#/definitions/UpgradeState",
+ "description": "The state of the upgrade domain."
+ },
+ "ProgressStatus": {
+ "type": "integer",
+ "description": "The cluster manifest version."
+ },
+ "ConfigVersion": {
+ "type": "string",
+ "description": "The cluster configuration version."
+ },
+ "Details": {
+ "type": "string",
+ "description": "The cluster upgrade status details."
+ }
+ }
+ },
+ "FailureAction": {
+ "type": "string",
+ "description": "The compensating action to perform when a Monitored upgrade encounters monitoring policy or health policy violations.\nInvalid indicates the failure action is invalid. Rollback specifies that the upgrade will start rolling back automatically.\nManual indicates that the upgrade will switch to UnmonitoredManual upgrade mode.",
+ "enum": [
+ "Invalid",
+ "Rollback",
+ "Manual"
+ ],
+ "x-ms-enum": {
+ "name": "FailureAction",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the failure action is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Rollback",
+ "description": "The upgrade will start rolling back automatically. The value is 1"
+ },
+ {
+ "value": "Manual",
+ "description": "The upgrade will switch to UnmonitoredManual upgrade mode. The value is 2"
+ }
+ ]
+ }
+ },
+ "FailureReason": {
+ "type": "string",
+ "description": "The cause of an upgrade failure that resulted in FailureAction being executed.",
+ "enum": [
+ "None",
+ "Interrupted",
+ "HealthCheck",
+ "UpgradeDomainTimeout",
+ "OverallUpgradeTimeout"
+ ],
+ "x-ms-enum": {
+ "name": "FailureReason",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "None",
+ "description": "Indicates the reason is invalid or unknown. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Interrupted",
+ "description": "There was an external request to roll back the upgrade. The value is 1"
+ },
+ {
+ "value": "HealthCheck",
+ "description": "The upgrade failed due to health policy violations. The value is 2"
+ },
+ {
+ "value": "UpgradeDomainTimeout",
+ "description": "An upgrade domain took longer than the allowed upgrade domain timeout to process. The value is 3"
+ },
+ {
+ "value": "OverallUpgradeTimeout",
+ "description": "The overall upgrade took longer than the allowed upgrade timeout to process. The value is 4"
+ }
+ ]
+ }
+ },
+ "FailureUpgradeDomainProgressInfo": {
+ "description": "Information about the upgrade domain progress at the time of upgrade failure.",
+ "properties": {
+ "DomainName": {
+ "$ref": "#/definitions/UpgradeDomainName",
+ "description": "The name of the upgrade domain"
+ },
+ "NodeUpgradeProgressList": {
+ "$ref": "#/definitions/NodeUpgradeProgressInfoList",
+ "description": "List of upgrading nodes and their statuses"
+ }
+ }
+ },
+ "ForceRestart": {
+ "type": "boolean",
+ "description": "If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data).",
+ "default": false
+ },
+ "HealthCheckRetryTimeout": {
+ "type": "string",
+ "description": "The amount of time to retry health evaluation when the application or cluster is unhealthy before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.",
+ "default": "PT0H10M0S"
+ },
+ "HealthCheckStableDuration": {
+ "type": "string",
+ "description": "The amount of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.",
+ "default": "PT0H2M0S"
+ },
+ "HealthCheckWaitDuration": {
+ "type": "string",
+ "description": "The amount of time to wait after completing an upgrade domain before applying health policies. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.",
+ "default": "0"
+ },
+ "HealthEvaluation": {
+ "discriminator": "Kind",
+ "description": "Represents a health evaluation which describes the data and the algorithm used by health manager to evaluate the health of an entity.",
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/HealthEvaluationKind",
+ "description": "The health manager in the cluster performs health evaluations in determining the aggregated health state of an entity. This enumeration provides information on the kind of evaluation that was performed. Following are the possible values."
+ },
+ "AggregatedHealthState": {
+ "$ref": "#/definitions/HealthState",
+ "description": "The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of the health evaluation, which represents a summary of the evaluation process."
+ }
+ },
+ "required": [
+ "Kind"
+ ]
+ },
+ "HealthEvaluationKind": {
+ "type": "string",
+ "description": "The health manager in the cluster performs health evaluations in determining the aggregated health state of an entity. This enumeration provides information on the kind of evaluation that was performed. Following are the possible values.",
+ "enum": [
+ "Invalid",
+ "Event",
+ "Replicas",
+ "Partitions",
+ "DeployedServicePackages",
+ "DeployedApplications",
+ "Services",
+ "Nodes",
+ "Applications",
+ "SystemApplication",
+ "UpgradeDomainDeployedApplications",
+ "UpgradeDomainNodes",
+ "Replica",
+ "Partition",
+ "DeployedServicePackage",
+ "DeployedApplication",
+ "Service",
+ "Node",
+ "Application",
+ "DeltaNodesCheck",
+ "UpgradeDomainDeltaNodesCheck",
+ "ApplicationTypeApplications"
+ ],
+ "x-ms-enum": {
+ "name": "HealthEvaluationKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates that the health evaluation is invalid. The value is zero."
+ },
+ {
+ "value": "Event",
+ "description": "Indicates that the health evaluation is for a health event. The value is 1."
+ },
+ {
+ "value": "Replicas",
+ "description": "Indicates that the health evaluation is for the replicas of a partition. The value is 2."
+ },
+ {
+ "value": "Partitions",
+ "description": "Indicates that the health evaluation is for the partitions of a service. The value is 3."
+ },
+ {
+ "value": "DeployedServicePackages",
+ "description": "Indicates that the health evaluation is for the deployed service packages of a deployed application. The value is 4."
+ },
+ {
+ "value": "DeployedApplications",
+ "description": "Indicates that the health evaluation is for the deployed applications of an application. The value is 5."
+ },
+ {
+ "value": "Services",
+ "description": "Indicates that the health evaluation is for services of an application. The value is 6."
+ },
+ {
+ "value": "Nodes",
+ "description": "Indicates that the health evaluation is for the cluster nodes. The value is 7."
+ },
+ {
+ "value": "Applications",
+ "description": "Indicates that the health evaluation is for the cluster applications. The value is 8."
+ },
+ {
+ "value": "SystemApplication",
+ "description": "Indicates that the health evaluation is for the system application. The value is 9."
+ },
+ {
+ "value": "UpgradeDomainDeployedApplications",
+ "description": "Indicates that the health evaluation is for the deployed applications of an application in an upgrade domain. The value is 10."
+ },
+ {
+ "value": "UpgradeDomainNodes",
+ "description": "Indicates that the health evaluation is for the cluster nodes in an upgrade domain. The value is 11."
+ },
+ {
+ "value": "Replica",
+ "description": "Indicates that the health evaluation is for a replica. The value is 13."
+ },
+ {
+ "value": "Partition",
+ "description": "Indicates that the health evaluation is for a partition. The value is 14."
+ },
+ {
+ "value": "DeployedServicePackage",
+ "description": "Indicates that the health evaluation is for a deployed service package. The value is 16."
+ },
+ {
+ "value": "DeployedApplication",
+ "description": "Indicates that the health evaluation is for a deployed application. The value is 17."
+ },
+ {
+ "value": "Service",
+ "description": "Indicates that the health evaluation is for a service. The value is 15."
+ },
+ {
+ "value": "Node",
+ "description": "Indicates that the health evaluation is for a node. The value is 12."
+ },
+ {
+ "value": "Application",
+ "description": "Indicates that the health evaluation is for an application. The value is 18."
+ },
+ {
+ "value": "DeltaNodesCheck",
+ "description": "Indicates that the health evaluation is for the delta of unhealthy cluster nodes. The value is 19."
+ },
+ {
+ "value": "UpgradeDomainDeltaNodesCheck",
+ "description": "Indicates that the health evaluation is for the delta of unhealthy upgrade domain cluster nodes. The value is 20."
+ },
+ {
+ "value": "ApplicationTypeApplications",
+ "description": "– Indicates that the health evaluation is for applications of an application type. The value is 21."
+ }
+ ]
+ }
+ },
+ "HealthEvaluationWrapper": {
+ "description": "Wrapper object for health evaluation.",
+ "properties": {
+ "HealthEvaluation": {
+ "$ref": "#/definitions/HealthEvaluation",
+ "description": "Represents a health evaluation which describes the data and the algorithm used by health manager to evaluate the health of an entity."
+ }
+ }
+ },
+ "HealthEvent": {
+ "description": "Represents health information reported on a health entity, such as cluster, application or node, with additional metadata added by the Health Manager.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthInformation"
+ }
+ ],
+ "properties": {
+ "IsExpired": {
+ "type": "boolean",
+ "description": "Returns true if the health event is expired, otherwise false."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The date and time when the health report was sent by the source."
+ },
+ "LastModifiedUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The date and time when the health report was last modified by the health store."
+ },
+ "LastOkTransitionAt": {
+ "type": "string",
+ "format": "date-time",
+ "description": "If the current health state is 'Ok', this property returns the time at which the health report was first reported with 'Ok'.\nFor periodic reporting, many reports with the same state may have been generated.\nThis property returns the date and time when the first 'Ok' health report was received.\n\nIf the current health state is 'Error' or 'Warning', returns the date and time at which the health state was last in 'Ok', before transitioning to a different state.\n\nIf the health state was never 'Ok', the value will be zero date-time."
+ },
+ "LastWarningTransitionAt": {
+ "type": "string",
+ "format": "date-time",
+ "description": "If the current health state is 'Warning', this property returns the time at which the health report was first reported with 'Warning'. For periodic reporting, many reports with the same state may have been generated however, this property returns only the date and time at the first 'Warning' health report was received.\n\nIf the current health state is 'Ok' or 'Error', returns the date and time at which the health state was last in 'Warning', before transitioning to a different state.\n\nIf the health state was never 'Warning', the value will be zero date-time."
+ },
+ "LastErrorTransitionAt": {
+ "type": "string",
+ "format": "date-time",
+ "description": "If the current health state is 'Error', this property returns the time at which the health report was first reported with 'Error'. For periodic reporting, many reports with the same state may have been generated however, this property returns only the date and time at the first 'Error' health report was received.\n\nIf the current health state is 'Ok' or 'Warning', returns the date and time at which the health state was last in 'Error', before transitioning to a different state.\n\nIf the health state was never 'Error', the value will be zero date-time."
+ }
+ }
+ },
+ "HealthInformation": {
+ "description": "Represents common health report information. It is included in all health reports sent to health store and in all health events returned by health queries.",
+ "required": [
+ "SourceId",
+ "Property",
+ "HealthState"
+ ],
+ "properties": {
+ "SourceId": {
+ "type": "string",
+ "description": "The source name that identifies the client/watchdog/system component that generated the health information."
+ },
+ "Property": {
+ "type": "string",
+ "description": "The property of the health information. An entity can have health reports for different properties.\nThe property is a string and not a fixed enumeration to allow the reporter flexibility to categorize the state condition that triggers the report.\nFor example, a reporter with SourceId \"LocalWatchdog\" can monitor the state of the available disk on a node,\nso it can report \"AvailableDisk\" property on that node.\nThe same reporter can monitor the node connectivity, so it can report a property \"Connectivity\" on the same node.\nIn the health store, these reports are treated as separate health events for the specified node.\n\nTogether with the SourceId, the property uniquely identifies the health information."
+ },
+ "HealthState": {
+ "$ref": "#/definitions/HealthState",
+ "description": "The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc."
+ },
+ "TimeToLiveInMilliSeconds": {
+ "type": "string",
+ "format": "duration",
+ "description": "The duration for which this health report is valid. This field uses ISO8601 format for specifying the duration.\nWhen clients report periodically, they should send reports with higher frequency than time to live.\nIf clients report on transition, they can set the time to live to infinite.\nWhen time to live expires, the health event that contains the health information\nis either removed from health store, if RemoveWhenExpired is true, or evaluated at error, if RemoveWhenExpired false.\n\nIf not specified, time to live defaults to infinite value."
+ },
+ "Description": {
+ "type": "string",
+ "description": "The description of the health information. It represents free text used to add human readable information about the report.\nThe maximum string length for the description is 4096 characters.\nIf the provided string is longer, it will be automatically truncated.\nWhen truncated, the last characters of the description contain a marker \"[Truncated]\", and total string size is 4096 characters.\nThe presence of the marker indicates to users that truncation occurred.\nNote that when truncated, the description has less than 4096 characters from the original string."
+ },
+ "SequenceNumber": {
+ "type": "string",
+ "description": "The sequence number for this health report as a numeric string.\nThe report sequence number is used by the health store to detect stale reports.\nIf not specified, a sequence number is auto-generated by the health client when a report is added."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Value that indicates whether the report is removed from health store when it expires.\nIf set to true, the report is removed from the health store after it expires.\nIf set to false, the report is treated as an error when expired. The value of this property is false by default.\nWhen clients report periodically, they should set RemoveWhenExpired false (default).\nThis way, if the reporter has issues (e.g. deadlock) and can't report, the entity is evaluated at error when the health report expires.\nThis flags the entity as being in Error health state."
+ },
+ "HealthReportId": {
+ "type": "string",
+ "description": "A health report ID which identifies the health report and can be used to find more detailed information about a specific health event at\naka.ms/sfhealthid"
+ }
+ }
+ },
+ "Int64RangePartitionInformation": {
+ "description": "Describes the partition information for the integer range that is based on partition schemes.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionInformation"
+ }
+ ],
+ "x-ms-discriminator-value": "Int64Range",
+ "properties": {
+ "LowKey": {
+ "type": "string",
+ "description": "Specifies the minimum key value handled by this partition."
+ },
+ "HighKey": {
+ "type": "string",
+ "description": "Specifies the maximum key value handled by this partition."
+ }
+ }
+ },
+ "MinInstanceCount": {
+ "type": "integer",
+ "default": 1,
+ "minimum": 1,
+ "description": "MinInstanceCount is the minimum number of instances that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.\nThe actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).\nNote, if InstanceCount is set to -1, during MinInstanceCount computation -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service."
+ },
+ "MinInstancePercentage": {
+ "type": "integer",
+ "default": 0,
+ "minimum": 0,
+ "maximum": 100,
+ "description": "MinInstancePercentage is the minimum percentage of InstanceCount that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.\nThe actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).\nNote, if InstanceCount is set to -1, during MinInstancePercentage computation, -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service."
+ },
+ "MonitoringPolicyDescription": {
+ "description": "Describes the parameters for monitoring an upgrade in Monitored mode.",
+ "properties": {
+ "FailureAction": {
+ "$ref": "#/definitions/FailureAction",
+ "description": "The compensating action to perform when a Monitored upgrade encounters monitoring policy or health policy violations.\nInvalid indicates the failure action is invalid. Rollback specifies that the upgrade will start rolling back automatically.\nManual indicates that the upgrade will switch to UnmonitoredManual upgrade mode."
+ },
+ "HealthCheckWaitDurationInMilliseconds": {
+ "$ref": "#/definitions/HealthCheckWaitDuration",
+ "description": "The amount of time to wait after completing an upgrade domain before applying health policies. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds."
+ },
+ "HealthCheckStableDurationInMilliseconds": {
+ "$ref": "#/definitions/HealthCheckStableDuration",
+ "description": "The amount of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds."
+ },
+ "HealthCheckRetryTimeoutInMilliseconds": {
+ "$ref": "#/definitions/HealthCheckRetryTimeout",
+ "description": "The amount of time to retry health evaluation when the application or cluster is unhealthy before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds."
+ },
+ "UpgradeTimeoutInMilliseconds": {
+ "$ref": "#/definitions/UpgradeTimeout",
+ "description": "The amount of time the overall upgrade has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds."
+ },
+ "UpgradeDomainTimeoutInMilliseconds": {
+ "$ref": "#/definitions/UpgradeDomainTimeout",
+ "description": "The amount of time each upgrade domain has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds."
+ }
+ }
+ },
+ "NamedPartitionInformation": {
+ "description": "Describes the partition information for the name as a string that is based on partition schemes.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionInformation"
+ }
+ ],
+ "x-ms-discriminator-value": "Named",
+ "properties": {
+ "Name": {
+ "type": "string",
+ "description": "Name of the partition."
+ }
+ }
+ },
+ "NextUpgradeDomain": {
+ "type": "string",
+ "description": "The name of the next upgrade domain to be processed."
+ },
+ "NodeDeactivationInfo": {
+ "description": "Information about the node deactivation. This information is valid for a node that is undergoing deactivation or has already been deactivated.",
+ "properties": {
+ "NodeDeactivationIntent": {
+ "$ref": "#/definitions/NodeDeactivationIntent",
+ "description": "The intent or the reason for deactivating the node. Following are the possible values for it."
+ },
+ "NodeDeactivationStatus": {
+ "$ref": "#/definitions/NodeDeactivationStatus",
+ "description": "The status of node deactivation operation. Following are the possible values."
+ },
+ "NodeDeactivationTask": {
+ "$ref": "#/definitions/NodeDeactivationTaskList",
+ "description": "List of tasks representing the deactivation operation on the node."
+ },
+ "PendingSafetyChecks": {
+ "$ref": "#/definitions/SafetyCheckInfoList",
+ "description": "List of pending safety checks"
+ }
+ }
+ },
+ "NodeDeactivationIntent": {
+ "type": "string",
+ "description": "The intent or the reason for deactivating the node. Following are the possible values for it.",
+ "enum": [
+ "Invalid",
+ "Pause",
+ "Restart",
+ "RemoveData",
+ "RemoveNode"
+ ],
+ "x-ms-enum": {
+ "name": "NodeDeactivationIntent",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the node deactivation intent is invalid. All Service Fabric enumerations have the invalid type. The value is zero. This value is not used."
+ },
+ {
+ "value": "Pause",
+ "description": "Indicates that the node should be paused. The value is 1."
+ },
+ {
+ "value": "Restart",
+ "description": "Indicates that the intent is for the node to be restarted after a short period of time. Service Fabric does not restart the node, this action is done outside of Service Fabric. The value is 2."
+ },
+ {
+ "value": "RemoveData",
+ "description": "Indicates that the intent is to reimage the node. Service Fabric does not reimage the node, this action is done outside of Service Fabric. The value is 3."
+ },
+ {
+ "value": "RemoveNode",
+ "description": "Indicates that the node is being decommissioned and is not expected to return. Service Fabric does not decommission the node, this action is done outside of Service Fabric. The value is 4."
+ }
+ ]
+ }
+ },
+ "NodeDeactivationStatus": {
+ "type": "string",
+ "description": "The status of node deactivation operation. Following are the possible values.",
+ "enum": [
+ "None",
+ "SafetyCheckInProgress",
+ "SafetyCheckComplete",
+ "Completed"
+ ],
+ "x-ms-enum": {
+ "name": "NodeDeactivationStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "None",
+ "description": "No status is associated with the task. The value is zero."
+ },
+ {
+ "value": "SafetyCheckInProgress",
+ "description": "When a node is deactivated Service Fabric performs checks to ensure that the operation is safe to proceed to ensure availability of the service and reliability of the state. This value indicates that one or more safety checks are in progress. The value is 1."
+ },
+ {
+ "value": "SafetyCheckComplete",
+ "description": "When a node is deactivated Service Fabric performs checks to ensure that the operation is safe to proceed to ensure availability of the service and reliability of the state. This value indicates that all safety checks have been completed. The value is 2."
+ },
+ {
+ "value": "Completed",
+ "description": "The task is completed. The value is 3."
+ }
+ ]
+ }
+ },
+ "NodeDeactivationTask": {
+ "description": "The task representing the deactivation operation on the node.",
+ "properties": {
+ "NodeDeactivationTaskId": {
+ "$ref": "#/definitions/NodeDeactivationTaskId",
+ "description": "Identity of the task related to deactivation operation on the node."
+ },
+ "NodeDeactivationIntent": {
+ "$ref": "#/definitions/NodeDeactivationIntent",
+ "description": "The intent or the reason for deactivating the node. Following are the possible values for it."
+ }
+ }
+ },
+ "NodeDeactivationTaskId": {
+ "description": "Identity of the task related to deactivation operation on the node.",
+ "properties": {
+ "Id": {
+ "type": "string",
+ "description": "Value of the task id."
+ },
+ "NodeDeactivationTaskType": {
+ "$ref": "#/definitions/NodeDeactivationTaskType",
+ "description": "The type of the task that performed the node deactivation. Following are the possible values."
+ }
+ }
+ },
+ "NodeDeactivationTaskList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NodeDeactivationTask"
+ },
+ "description": "List of tasks representing the deactivation operation on the node."
+ },
+ "NodeDeactivationTaskType": {
+ "type": "string",
+ "description": "The type of the task that performed the node deactivation. Following are the possible values.",
+ "enum": [
+ "Invalid",
+ "Infrastructure",
+ "Repair",
+ "Client"
+ ],
+ "x-ms-enum": {
+ "name": "NodeDeactivationTaskType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the node deactivation task type is invalid. All Service Fabric enumerations have the invalid type. The value is zero. This value is not used."
+ },
+ {
+ "value": "Infrastructure",
+ "description": "Specifies the task created by Infrastructure hosting the nodes. The value is 1."
+ },
+ {
+ "value": "Repair",
+ "description": "Specifies the task that was created by the Repair Manager service. The value is 2."
+ },
+ {
+ "value": "Client",
+ "description": "Specifies that the task was created by using the public API. The value is 3."
+ }
+ ]
+ }
+ },
+ "NodeEvent": {
+ "description": "Represents the base for all Node Events.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/FabricEvent"
+ }
+ ],
+ "properties": {
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ }
+ },
+ "required": [
+ "NodeName"
+ ],
+ "x-ms-discriminator-value": "NodeEvent"
+ },
+ "NodeEventList": {
+ "description": "A list of NodeEvent objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NodeEvent"
+ }
+ },
+ "NodeHealth": {
+ "description": "Information about the health of a Service Fabric node.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealth"
+ }
+ ],
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/NodeName",
+ "description": "Name of the node whose health information is described by this object."
+ }
+ }
+ },
+ "NodeHealthEvaluation": {
+ "x-ms-discriminator-value": "Node",
+ "description": "Represents health evaluation for a node, containing information about the data and the algorithm used by health store to evaluate health. The evaluation is returned only when the aggregated health state is either Error or Warning.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the current aggregated health state of the node. The types of the unhealthy evaluations can be EventHealthEvaluation."
+ }
+ }
+ },
+ "NodeHealthState": {
+ "description": "Represents the health state of a node, which contains the node identifier and its aggregated health state.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthState"
+ }
+ ],
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "Id": {
+ "$ref": "#/definitions/NodeId",
+ "description": "An internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically generated from node name."
+ }
+ }
+ },
+ "NodeHealthStateChunk": {
+ "description": "Represents the health state chunk of a node, which contains the node name and its aggregated health state.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthStateChunk"
+ }
+ ],
+ "properties": {
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ }
+ }
+ },
+ "NodeHealthStateChunkList": {
+ "description": "The list of node health state chunks in the cluster that respect the input filters in the chunk query. Returned by get cluster health state chunks query.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthStateChunkList"
+ }
+ ],
+ "properties": {
+ "Items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NodeHealthStateChunk"
+ },
+ "description": "The list of node health state chunks that respect the input filters in the chunk query."
+ }
+ }
+ },
+ "NodeHealthStateFilter": {
+ "description": "Defines matching criteria to determine whether a node should be included in the returned cluster health chunk.\nOne filter can match zero, one or multiple nodes, depending on its properties.\nCan be specified in the cluster health chunk query description.",
+ "properties": {
+ "NodeNameFilter": {
+ "type": "string",
+ "description": "Name of the node that matches the filter. The filter is applied only to the specified node, if it exists.\nIf the node doesn't exist, no node is returned in the cluster health chunk based on this filter.\nIf the node exists, it is included in the cluster health chunk if the health state matches the other filter properties.\nIf not specified, all nodes that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter."
+ },
+ "HealthStateFilter": {
+ "type": "integer",
+ "default": 0,
+ "description": "The filter for the health state of the nodes. It allows selecting nodes if they match the desired health states.\nThe possible values are integer value of one of the following health states. Only nodes that match the filter are returned. All nodes are used to evaluate the cluster aggregated health state.\nIf not specified, default value is None, unless the node name is specified. If the filter has default value and node name is specified, the matching node is returned.\nThe state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.\nFor example, if the provided value is 6, it matches nodes with HealthState value of OK (2) and Warning (4).\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535."
+ }
+ }
+ },
+ "NodeId": {
+ "description": "An internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically generated from node name.",
+ "properties": {
+ "Id": {
+ "type": "string",
+ "description": "Value of the node Id. This is a 128 bit integer."
+ }
+ }
+ },
+ "NodeIdList": {
+ "description": "A list of NodeIds.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NodeId"
+ }
+ },
+ "NodeInfo": {
+ "description": "Information about a node in Service Fabric cluster.",
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "IpAddressOrFQDN": {
+ "type": "string",
+ "description": "The IP address or fully qualified domain name of the node."
+ },
+ "Type": {
+ "type": "string",
+ "description": "The type of the node."
+ },
+ "CodeVersion": {
+ "type": "string",
+ "description": "The version of Service Fabric binaries that the node is running."
+ },
+ "ConfigVersion": {
+ "type": "string",
+ "description": "The version of Service Fabric cluster manifest that the node is using."
+ },
+ "NodeStatus": {
+ "$ref": "#/definitions/NodeStatus",
+ "description": "The status of the node."
+ },
+ "NodeUpTimeInSeconds": {
+ "type": "string",
+ "description": "Time in seconds since the node has been in NodeStatus Up. Value zero indicates that the node is not Up."
+ },
+ "HealthState": {
+ "$ref": "#/definitions/HealthState",
+ "description": "The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc."
+ },
+ "IsSeedNode": {
+ "type": "boolean",
+ "description": "Indicates if the node is a seed node or not. Returns true if the node is a seed node, otherwise false. A quorum of seed nodes are required for proper operation of Service Fabric cluster."
+ },
+ "UpgradeDomain": {
+ "type": "string",
+ "description": "The upgrade domain of the node."
+ },
+ "FaultDomain": {
+ "type": "string",
+ "description": "The fault domain of the node."
+ },
+ "Id": {
+ "$ref": "#/definitions/NodeId",
+ "description": "An internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically generated from node name."
+ },
+ "InstanceId": {
+ "type": "string",
+ "description": "The ID representing the node instance. While the ID of the node is deterministically generated from the node name and remains same across restarts, the InstanceId changes every time node restarts."
+ },
+ "NodeDeactivationInfo": {
+ "$ref": "#/definitions/NodeDeactivationInfo",
+ "description": "Information about the node deactivation. This information is valid for a node that is undergoing deactivation or has already been deactivated."
+ },
+ "IsStopped": {
+ "type": "boolean",
+ "description": "Indicates if the node is stopped by calling stop node API or not. Returns true if the node is stopped, otherwise false."
+ },
+ "NodeDownTimeInSeconds": {
+ "type": "string",
+ "description": "Time in seconds since the node has been in NodeStatus Down. Value zero indicates node is not NodeStatus Down."
+ },
+ "NodeUpAt": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Date time in UTC when the node came up. If the node has never been up then this value will be zero date time."
+ },
+ "NodeDownAt": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Date time in UTC when the node went down. If node has never been down then this value will be zero date time."
+ }
+ }
+ },
+ "NodeLoadInfo": {
+ "description": "Information about load on a Service Fabric node. It holds a summary of all metrics and their load on a node.",
+ "properties": {
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "Name of the node for which the load information is provided by this object."
+ },
+ "NodeLoadMetricInformation": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NodeLoadMetricInformation"
+ },
+ "description": "List that contains metrics and their load information on this node."
+ }
+ }
+ },
+ "NodeLoadMetricInformation": {
+ "description": "Represents data structure that contains load information for a certain metric on a node.",
+ "properties": {
+ "Name": {
+ "type": "string",
+ "description": "Name of the metric for which this load information is provided."
+ },
+ "NodeCapacity": {
+ "type": "string",
+ "description": "Total capacity on the node for this metric."
+ },
+ "NodeLoad": {
+ "type": "string",
+ "description": "Current load on the node for this metric. In future releases of Service Fabric this parameter will be deprecated in favor of CurrentNodeLoad."
+ },
+ "NodeRemainingCapacity": {
+ "type": "string",
+ "description": "The remaining capacity on the node for this metric. In future releases of Service Fabric this parameter will be deprecated in favor of NodeCapacityRemaining."
+ },
+ "IsCapacityViolation": {
+ "type": "boolean",
+ "description": "Indicates if there is a capacity violation for this metric on the node."
+ },
+ "NodeBufferedCapacity": {
+ "type": "string",
+ "description": "The value that indicates the reserved capacity for this metric on the node."
+ },
+ "NodeRemainingBufferedCapacity": {
+ "type": "string",
+ "description": "The remaining reserved capacity for this metric on the node. In future releases of Service Fabric this parameter will be deprecated in favor of BufferedNodeCapacityRemaining."
+ },
+ "CurrentNodeLoad": {
+ "type": "string",
+ "format": "double",
+ "description": "Current load on the node for this metric."
+ },
+ "NodeCapacityRemaining": {
+ "type": "string",
+ "format": "double",
+ "description": "The remaining capacity on the node for the metric."
+ },
+ "BufferedNodeCapacityRemaining": {
+ "type": "string",
+ "format": "double",
+ "description": "The remaining capacity which is not reserved by NodeBufferPercentage for this metric on the node."
+ },
+ "PlannedNodeLoadRemoval": {
+ "type": "string",
+ "format": "double",
+ "description": "This value represents the load of the replicas that are planned to be removed in the future.\nThis kind of load is reported for replicas that are currently being moving to other nodes and for replicas that are currently being dropped but still use the load on the source node."
+ }
+ }
+ },
+ "NodeName": {
+ "type": "string",
+ "description": "The name of a Service Fabric node."
+ },
+ "NodeType": {
+ "type": "string",
+ "description": "The type name of a Service Fabric node.\nRefer to the article [The relationship between Service Fabric node types and Virtual Machine Scale Sets](https://docs.microsoft.com/azure/service-fabric/service-fabric-cluster-nodetypes) for more details."
+ },
+ "NodesHealthEvaluation": {
+ "x-ms-discriminator-value": "Nodes",
+ "description": "Represents health evaluation for nodes, containing health evaluations for each unhealthy node that impacted current aggregated health state. Can be returned when evaluating cluster health and the aggregated health state is either Error or Warning.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "MaxPercentUnhealthyNodes": {
+ "type": "integer",
+ "description": "Maximum allowed percentage of unhealthy nodes from the ClusterHealthPolicy."
+ },
+ "TotalCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total number of nodes found in the health store."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health."
+ }
+ }
+ },
+ "NodeStatus": {
+ "type": "string",
+ "description": "The status of the node.",
+ "enum": [
+ "Invalid",
+ "Up",
+ "Down",
+ "Enabling",
+ "Disabling",
+ "Disabled",
+ "Unknown",
+ "Removed"
+ ],
+ "x-ms-enum": {
+ "name": "NodeStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the node status is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Up",
+ "description": "Indicates the node is up. The value is 1."
+ },
+ {
+ "value": "Down",
+ "description": "Indicates the node is down. The value is 2."
+ },
+ {
+ "value": "Enabling",
+ "description": "Indicates the node is in process of being enabled. The value is 3."
+ },
+ {
+ "value": "Disabling",
+ "description": "Indicates the node is in the process of being disabled. The value is 4."
+ },
+ {
+ "value": "Disabled",
+ "description": "Indicates the node is disabled. The value is 5."
+ },
+ {
+ "value": "Unknown",
+ "description": "Indicates the node is unknown. A node would be in Unknown state if Service Fabric does not have authoritative information about that node. This can happen if the system learns about a node at runtime.The value is 6."
+ },
+ {
+ "value": "Removed",
+ "description": "Indicates the node is removed. A node would be in Removed state if NodeStateRemoved API has been called for this node. In other words, Service Fabric has been informed that the persisted state on the node has been permanently lost. The value is 7."
+ }
+ ]
+ }
+ },
+ "NodeUpgradePhase": {
+ "type": "string",
+ "description": "The state of the upgrading node.",
+ "enum": [
+ "Invalid",
+ "PreUpgradeSafetyCheck",
+ "Upgrading",
+ "PostUpgradeSafetyCheck"
+ ],
+ "x-ms-enum": {
+ "name": "NodeUpgradePhase",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the upgrade state is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "PreUpgradeSafetyCheck",
+ "description": "The upgrade has not started yet due to pending safety checks. The value is 1"
+ },
+ {
+ "value": "Upgrading",
+ "description": "The upgrade is in progress. The value is 2"
+ },
+ {
+ "value": "PostUpgradeSafetyCheck",
+ "description": "The upgrade has completed and post upgrade safety checks are being performed. The value is 3"
+ }
+ ]
+ }
+ },
+ "NodeUpgradeProgressInfo": {
+ "description": "Information about the upgrading node and its status",
+ "properties": {
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "UpgradePhase": {
+ "$ref": "#/definitions/NodeUpgradePhase",
+ "description": "The state of the upgrading node."
+ },
+ "PendingSafetyChecks": {
+ "$ref": "#/definitions/SafetyCheckInfoList",
+ "description": "List of pending safety checks"
+ }
+ }
+ },
+ "NodeUpgradeProgressInfoList": {
+ "type": "array",
+ "description": "List of upgrading nodes and their statuses",
+ "items": {
+ "$ref": "#/definitions/NodeUpgradeProgressInfo"
+ }
+ },
+ "PagedApplicationInfoList": {
+ "description": "The list of applications in the cluster. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "List of application information.",
+ "items": {
+ "$ref": "#/definitions/ApplicationInfo"
+ }
+ }
+ }
+ },
+ "PagedDeployedApplicationInfoList": {
+ "description": "The list of deployed applications in activating, downloading, or active states on a node.\nThe list is paged when all of the results cannot fit in a single message.\nThe next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "List of deployed application information.",
+ "items": {
+ "$ref": "#/definitions/DeployedApplicationInfo"
+ }
+ }
+ }
+ },
+ "PagedNodeInfoList": {
+ "description": "The list of nodes in the cluster. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "List of node information.",
+ "items": {
+ "$ref": "#/definitions/NodeInfo"
+ }
+ }
+ }
+ },
+ "PagedServicePartitionInfoList": {
+ "description": "The list of partition in the cluster for a service. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "List of service partition information.",
+ "items": {
+ "$ref": "#/definitions/ServicePartitionInfo"
+ }
+ }
+ }
+ },
+ "PagedReplicaInfoList": {
+ "description": "The list of replicas in the cluster for a given partition. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "List of replica information.",
+ "items": {
+ "$ref": "#/definitions/ReplicaInfo"
+ }
+ }
+ }
+ },
+ "PagedServiceInfoList": {
+ "description": "The list of services in the cluster for an application. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "List of service information.",
+ "items": {
+ "$ref": "#/definitions/ServiceInfo"
+ }
+ }
+ }
+ },
+ "PartitionAnalysisEvent": {
+ "description": "Represents the base for all Partition Analysis Events.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionEvent"
+ }
+ ],
+ "properties": {
+ "Metadata": {
+ "$ref": "#/definitions/AnalysisEventMetadata",
+ "description": "Metadata about an Analysis Event."
+ }
+ },
+ "required": [
+ "Metadata"
+ ],
+ "x-ms-discriminator-value": "PartitionAnalysisEvent"
+ },
+ "PartitionEvent": {
+ "description": "Represents the base for all Partition Events.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/FabricEvent"
+ }
+ ],
+ "properties": {
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different."
+ }
+ },
+ "required": [
+ "PartitionId"
+ ],
+ "x-ms-discriminator-value": "PartitionEvent"
+ },
+ "PartitionEventList": {
+ "description": "A list of PartitionEvent objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PartitionEvent"
+ }
+ },
+ "PartitionHealth": {
+ "description": "Information about the health of a Service Fabric partition.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealth"
+ }
+ ],
+ "properties": {
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "ID of the partition whose health information is described by this object."
+ },
+ "ReplicaHealthStates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReplicaHealthState"
+ },
+ "description": "The list of replica health states associated with the partition."
+ }
+ }
+ },
+ "PartitionHealthEvaluation": {
+ "x-ms-discriminator-value": "Partition",
+ "description": "Represents health evaluation for a partition, containing information about the data and the algorithm used by health store to evaluate health. The evaluation is returned only when the aggregated health state is either Error or Warning.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "Id of the partition whose health evaluation is described by this object."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the current aggregated health state of the partition. The types of the unhealthy evaluations can be ReplicasHealthEvaluation or EventHealthEvaluation."
+ }
+ }
+ },
+ "PartitionHealthState": {
+ "description": "Represents the health state of a partition, which contains the partition identifier and its aggregated health state.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthState"
+ }
+ ],
+ "properties": {
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "Id of the partition whose health state is described by this object."
+ }
+ }
+ },
+ "PartitionHealthStateChunk": {
+ "description": "Represents the health state chunk of a partition, which contains the partition ID, its aggregated health state and any replicas that respect the filters in the cluster health chunk query description.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthStateChunk"
+ }
+ ],
+ "properties": {
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "The Id of the partition."
+ },
+ "ReplicaHealthStateChunks": {
+ "$ref": "#/definitions/ReplicaHealthStateChunkList",
+ "description": "The list of replica health state chunks belonging to the partition that respect the filters in the cluster health chunk query description."
+ }
+ }
+ },
+ "PartitionHealthStateChunkList": {
+ "description": "The list of partition health state chunks that respect the input filters in the chunk query description.\nReturned by get cluster health state chunks query as part of the parent application hierarchy.",
+ "properties": {
+ "Items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PartitionHealthStateChunk"
+ },
+ "description": "The list of partition health state chunks that respect the input filters in the chunk query."
+ }
+ }
+ },
+ "PartitionHealthStateFilter": {
+ "description": "Defines matching criteria to determine whether a partition should be included as a child of a service in the cluster health chunk.\nThe partitions are only returned if the parent entities match a filter specified in the cluster health chunk query description. The parent service and application must be included in the cluster health chunk.\nOne filter can match zero, one or multiple partitions, depending on its properties.",
+ "properties": {
+ "PartitionIdFilter": {
+ "type": "string",
+ "format": "uuid",
+ "description": "ID of the partition that matches the filter. The filter is applied only to the specified partition, if it exists.\nIf the partition doesn't exist, no partition is returned in the cluster health chunk based on this filter.\nIf the partition exists, it is included in the cluster health chunk if it respects the other filter properties.\nIf not specified, all partitions that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter."
+ },
+ "HealthStateFilter": {
+ "type": "integer",
+ "default": 0,
+ "description": "The filter for the health state of the partitions. It allows selecting partitions if they match the desired health states.\nThe possible values are integer value of one of the following health states. Only partitions that match the filter are returned. All partitions are used to evaluate the cluster aggregated health state.\nIf not specified, default value is None, unless the partition ID is specified. If the filter has default value and partition ID is specified, the matching partition is returned.\nThe state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.\nFor example, if the provided value is 6, it matches partitions with HealthState value of OK (2) and Warning (4).\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535."
+ },
+ "ReplicaFilters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReplicaHealthStateFilter"
+ },
+ "description": "Defines a list of filters that specify which replicas to be included in the returned cluster health chunk as children of the parent partition. The replicas are returned only if the parent partition matches a filter.\nIf the list is empty, no replicas are returned. All the replicas are used to evaluate the parent partition aggregated health state, regardless of the input filters.\nThe partition filter may specify multiple replica filters.\nFor example, it can specify a filter to return all replicas with health state Error and another filter to always include a replica identified by its replica id."
+ }
+ }
+ },
+ "PartitionId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different."
+ },
+ "PartitionInformation": {
+ "discriminator": "ServicePartitionKind",
+ "description": "Information about the partition identity, partitioning scheme and keys supported by it.",
+ "required": [
+ "ServicePartitionKind"
+ ],
+ "properties": {
+ "ServicePartitionKind": {
+ "$ref": "#/definitions/ServicePartitionKind",
+ "description": "The kind of partitioning scheme used to partition the service."
+ },
+ "Id": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different."
+ }
+ }
+ },
+ "ProvisionFabricDescription": {
+ "description": "Describes the parameters for provisioning a cluster.",
+ "properties": {
+ "CodeFilePath": {
+ "type": "string",
+ "description": "The cluster code package file path."
+ },
+ "ClusterManifestFilePath": {
+ "type": "string",
+ "description": "The cluster manifest file path."
+ }
+ }
+ },
+ "ProvisionApplicationTypeKind": {
+ "type": "string",
+ "description": "The kind of application type registration or provision requested. The application package can be registered or provisioned either from the image store or from an external store. Following are the kinds of the application type provision.",
+ "enum": [
+ "Invalid",
+ "ImageStorePath",
+ "ExternalStore"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisionApplicationTypeKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates that the provision kind is invalid. This value is default and should not be used. The value is zero."
+ },
+ {
+ "value": "ImageStorePath",
+ "description": "Indicates that the provision is for a package that was previously uploaded to the image store. The value is 1."
+ },
+ {
+ "value": "ExternalStore",
+ "description": "Indicates that the provision is for an application package that was previously uploaded to an external store. The application package ends with the extension *.sfpkg. The value is 2."
+ }
+ ]
+ }
+ },
+ "ProvisionApplicationTypeDescriptionBase": {
+ "discriminator": "Kind",
+ "description": "Represents the type of registration or provision requested, and if the operation needs to be asynchronous or not. Supported types of provision operations are from either image store or external store.",
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/ProvisionApplicationTypeKind",
+ "description": "The kind of application type registration or provision requested. The application package can be registered or provisioned either from the image store or from an external store. Following are the kinds of the application type provision."
+ },
+ "Async": {
+ "type": "boolean",
+ "description": "Indicates whether or not provisioning should occur asynchronously. When set to true, the provision operation returns when the request is accepted by the system, and the provision operation continues without any timeout limit. The default value is false. For large application packages, we recommend setting the value to true."
+ }
+ },
+ "required": [
+ "Kind",
+ "Async"
+ ]
+ },
+ "ProvisionApplicationTypeDescription": {
+ "description": "Describes the operation to register or provision an application type using an application package uploaded to the Service Fabric image store.",
+ "required": [
+ "ApplicationTypeBuildPath"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProvisionApplicationTypeDescriptionBase"
+ }
+ ],
+ "properties": {
+ "ApplicationTypeBuildPath": {
+ "description": "The relative path for the application package in the image store specified during the prior upload operation.",
+ "type": "string"
+ },
+ "ApplicationPackageCleanupPolicy": {
+ "$ref": "#/definitions/ApplicationPackageCleanupPolicy",
+ "description": "The kind of action that needs to be taken for cleaning up the application package after successful provision."
+ }
+ },
+ "x-ms-discriminator-value": "ImageStorePath"
+ },
+ "ExternalStoreProvisionApplicationTypeDescription": {
+ "description": "Describes the operation to register or provision an application type using an application package from an external store instead of a package uploaded to the Service Fabric image store.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProvisionApplicationTypeDescriptionBase"
+ }
+ ],
+ "properties": {
+ "ApplicationPackageDownloadUri": {
+ "description": "The path to the '.sfpkg' application package from where the application package can be downloaded using HTTP or HTTPS protocols. The application package can be stored in an external store that provides GET operation to download the file. Supported protocols are HTTP and HTTPS, and the path must allow READ access.",
+ "type": "string"
+ },
+ "ApplicationTypeName": {
+ "description": "The application type name represents the name of the application type found in the application manifest.",
+ "type": "string"
+ },
+ "ApplicationTypeVersion": {
+ "description": "The application type version represents the version of the application type found in the application manifest.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "ExternalStore",
+ "required": [
+ "ApplicationPackageDownloadUri",
+ "ApplicationTypeName",
+ "ApplicationTypeVersion"
+ ]
+ },
+ "UnprovisionFabricDescription": {
+ "description": "Describes the parameters for unprovisioning a cluster.",
+ "properties": {
+ "CodeVersion": {
+ "type": "string",
+ "description": "The cluster code package version."
+ },
+ "ConfigVersion": {
+ "type": "string",
+ "description": "The cluster manifest version."
+ }
+ }
+ },
+ "ResumeClusterUpgradeDescription": {
+ "description": "Describes the parameters for resuming a cluster upgrade.",
+ "properties": {
+ "UpgradeDomain": {
+ "type": "string",
+ "description": "The next upgrade domain for this cluster upgrade."
+ }
+ },
+ "required": [
+ "UpgradeDomain"
+ ]
+ },
+ "StartClusterUpgradeDescription": {
+ "description": "Describes the parameters for starting a cluster upgrade.",
+ "properties": {
+ "CodeVersion": {
+ "type": "string",
+ "description": "The cluster code version."
+ },
+ "ConfigVersion": {
+ "type": "string",
+ "description": "The cluster configuration version."
+ },
+ "UpgradeKind": {
+ "$ref": "#/definitions/UpgradeKind",
+ "description": "The kind of upgrade out of the following possible values."
+ },
+ "RollingUpgradeMode": {
+ "$ref": "#/definitions/UpgradeMode",
+ "description": "The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored."
+ },
+ "UpgradeReplicaSetCheckTimeoutInSeconds": {
+ "$ref": "#/definitions/UpgradeReplicaSetCheckTimeout",
+ "description": "The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer)."
+ },
+ "ForceRestart": {
+ "$ref": "#/definitions/ForceRestart",
+ "description": "If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data)."
+ },
+ "SortOrder": {
+ "$ref": "#/definitions/UpgradeSortOrder",
+ "description": "Defines the order in which an upgrade proceeds through the cluster."
+ },
+ "MonitoringPolicy": {
+ "$ref": "#/definitions/MonitoringPolicyDescription",
+ "description": "Describes the parameters for monitoring an upgrade in Monitored mode."
+ },
+ "ClusterHealthPolicy": {
+ "$ref": "#/definitions/ClusterHealthPolicy",
+ "description": "Defines a health policy used to evaluate the health of the cluster or of a cluster node."
+ },
+ "EnableDeltaHealthEvaluation": {
+ "type": "boolean",
+ "description": "When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain."
+ },
+ "ClusterUpgradeHealthPolicy": {
+ "$ref": "#/definitions/ClusterUpgradeHealthPolicyObject",
+ "description": "Defines a health policy used to evaluate the health of the cluster during a cluster upgrade."
+ },
+ "ApplicationHealthPolicyMap": {
+ "$ref": "#/definitions/ApplicationHealthPolicies",
+ "description": "Defines the application health policy map used to evaluate the health of an application or one of its children entities."
+ },
+ "InstanceCloseDelayDurationInSeconds": {
+ "$ref": "#/definitions/InstanceCloseDelayDurationInSeconds",
+ "description": "Duration in seconds, to wait before a stateless instance is closed, to allow the active requests to drain gracefully. This would be effective when the instance is closing during the application/cluster\nupgrade, only for those instances which have a non-zero delay duration configured in the service description. See InstanceCloseDelayDurationSeconds property in $ref: \"#/definitions/StatelessServiceDescription.yaml\" for details.\nNote, the default value of InstanceCloseDelayDurationInSeconds is 4294967295, which indicates that the behavior will entirely depend on the delay configured in the stateless service description."
+ }
+ }
+ },
+ "UpdateClusterUpgradeDescription": {
+ "description": "Parameters for updating a cluster upgrade.",
+ "properties": {
+ "UpgradeKind": {
+ "$ref": "#/definitions/UpgradeType",
+ "description": "The type of upgrade out of the following possible values."
+ },
+ "UpdateDescription": {
+ "$ref": "#/definitions/RollingUpgradeUpdateDescription",
+ "description": "Describes the parameters for updating a rolling upgrade of application or cluster."
+ },
+ "ClusterHealthPolicy": {
+ "$ref": "#/definitions/ClusterHealthPolicy",
+ "description": "Defines a health policy used to evaluate the health of the cluster or of a cluster node."
+ },
+ "EnableDeltaHealthEvaluation": {
+ "$ref": "#/definitions/DeltaHealthEvaluationBool",
+ "description": "When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain."
+ },
+ "ClusterUpgradeHealthPolicy": {
+ "$ref": "#/definitions/ClusterUpgradeHealthPolicyObject",
+ "description": "Defines a health policy used to evaluate the health of the cluster during a cluster upgrade."
+ },
+ "ApplicationHealthPolicyMap": {
+ "$ref": "#/definitions/ApplicationHealthPolicies",
+ "description": "Defines the application health policy map used to evaluate the health of an application or one of its children entities."
+ }
+ }
+ },
+ "SafetyCheckKind": {
+ "type": "string",
+ "description": "The kind of safety check performed by service fabric before continuing with the operations. These checks ensure the availability of the service and the reliability of the state. Following are the kinds of safety checks.",
+ "enum": [
+ "Invalid",
+ "EnsureSeedNodeQuorum",
+ "EnsurePartitionQuorum",
+ "WaitForPrimaryPlacement",
+ "WaitForPrimarySwap",
+ "WaitForReconfiguration",
+ "WaitForInbuildReplica",
+ "EnsureAvailability"
+ ],
+ "x-ms-enum": {
+ "name": "SafetyCheckKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates that the upgrade safety check kind is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "EnsureSeedNodeQuorum",
+ "description": "Indicates that if we bring down the node then this will result in global seed node quorum loss. The value is 1."
+ },
+ {
+ "value": "EnsurePartitionQuorum",
+ "description": "Indicates that there is some partition for which if we bring down the replica on the node, it will result in quorum loss for that partition. The value is 2."
+ },
+ {
+ "value": "WaitForPrimaryPlacement",
+ "description": "Indicates that there is some replica on the node that was moved out of this node due to upgrade. Service Fabric is now waiting for the primary to be moved back to this node. The value is 3."
+ },
+ {
+ "value": "WaitForPrimarySwap",
+ "description": "Indicates that Service Fabric is waiting for a primary replica to be moved out of the node before starting upgrade on that node. The value is 4."
+ },
+ {
+ "value": "WaitForReconfiguration",
+ "description": "Indicates that there is some replica on the node that is involved in a reconfiguration. Service Fabric is waiting for the reconfiguration to be complete before staring upgrade on that node. The value is 5."
+ },
+ {
+ "value": "WaitForInbuildReplica",
+ "description": "Indicates that there is either a replica on the node that is going through copy, or there is a primary replica on the node that is copying data to some other replica. In both cases, bringing down the replica on the node due to upgrade will abort the copy. The value is 6."
+ },
+ {
+ "value": "EnsureAvailability",
+ "description": "Indicates that there is either a stateless service partition on the node having exactly one instance, or there is a primary replica on the node for which the partition is quorum loss. In both cases, bringing down the replicas due to upgrade will result in loss of availability. The value is 7."
+ }
+ ]
+ }
+ },
+ "SafetyCheck": {
+ "discriminator": "Kind",
+ "description": "Represents a safety check performed by service fabric before continuing with the operations. These checks ensure the availability of the service and the reliability of the state.",
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/SafetyCheckKind",
+ "description": "The kind of safety check performed by service fabric before continuing with the operations. These checks ensure the availability of the service and the reliability of the state. Following are the kinds of safety checks."
+ }
+ },
+ "required": [
+ "Kind"
+ ]
+ },
+ "PartitionSafetyCheck": {
+ "description": "Represents a safety check for the service partition being performed by service fabric before continuing with operations.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/SafetyCheck"
+ }
+ ],
+ "properties": {
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "Id of the partition which is undergoing the safety check."
+ }
+ }
+ },
+ "EnsureAvailabilitySafetyCheck": {
+ "description": "Safety check that waits to ensure the availability of the partition. It waits until there are replicas available such that bringing down this replica will not cause availability loss for the partition.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionSafetyCheck"
+ }
+ ],
+ "x-ms-discriminator-value": "EnsureAvailability"
+ },
+ "EnsurePartitionQuorumSafetyCheck": {
+ "description": "Safety check that ensures that a quorum of replicas are not lost for a partition.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionSafetyCheck"
+ }
+ ],
+ "x-ms-discriminator-value": "EnsurePartitionQuorum"
+ },
+ "SeedNodeSafetyCheck": {
+ "description": "Represents a safety check for the seed nodes being performed by service fabric before continuing with node level operations.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/SafetyCheck"
+ }
+ ],
+ "x-ms-discriminator-value": "EnsureSeedNodeQuorum"
+ },
+ "PartitionsHealthEvaluation": {
+ "x-ms-discriminator-value": "Partitions",
+ "description": "Represents health evaluation for the partitions of a service, containing health evaluations for each unhealthy partition that impacts current aggregated health state. Can be returned when evaluating service health and the aggregated health state is either Error or Warning.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "MaxPercentUnhealthyPartitionsPerService": {
+ "type": "integer",
+ "description": "Maximum allowed percentage of unhealthy partitions per service from the ServiceTypeHealthPolicy."
+ },
+ "TotalCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total number of partitions of the service from the health store."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy PartitionHealthEvaluation that impacted the aggregated health."
+ }
+ }
+ },
+ "ReplicaEvent": {
+ "description": "Represents the base for all Replica Events.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/FabricEvent"
+ }
+ ],
+ "properties": {
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different."
+ },
+ "ReplicaId": {
+ "$ref": "#/definitions/ReplicaId_Integer",
+ "description": "Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id."
+ }
+ },
+ "required": [
+ "PartitionId",
+ "ReplicaId"
+ ],
+ "x-ms-discriminator-value": "ReplicaEvent"
+ },
+ "ReplicaEventList": {
+ "description": "A list of ReplicaEvent objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReplicaEvent"
+ }
+ },
+ "ReplicaHealth": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealth"
+ }
+ ],
+ "discriminator": "ServiceKind",
+ "description": "Represents a base class for stateful service replica or stateless service instance health.\nContains the replica aggregated health state, the health events and the unhealthy evaluations.",
+ "properties": {
+ "ServiceKind": {
+ "$ref": "#/definitions/ServiceKind",
+ "description": "The kind of service (Stateless or Stateful)."
+ },
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "Id of the partition to which this replica belongs."
+ }
+ },
+ "required": [
+ "ServiceKind"
+ ]
+ },
+ "ReplicaHealthEvaluation": {
+ "x-ms-discriminator-value": "Replica",
+ "description": "Represents health evaluation for a replica, containing information about the data and the algorithm used by health store to evaluate health. The evaluation is returned only when the aggregated health state is either Error or Warning.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "Id of the partition to which the replica belongs."
+ },
+ "ReplicaOrInstanceId": {
+ "$ref": "#/definitions/ReplicaOrInstanceId",
+ "description": "Id of a stateful service replica or a stateless service instance. This ID is used in the queries that apply to both stateful and stateless services. It is used by Service Fabric to uniquely identify a replica of a partition of a stateful service or an instance of a stateless service partition. It is unique within a partition and does not change for the lifetime of the replica or the instance. If a stateful replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the ID. If a stateless instance is failed over on the same or different node it will get a different value for the ID."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the current aggregated health state of the replica. The types of the unhealthy evaluations can be EventHealthEvaluation."
+ }
+ }
+ },
+ "ReplicaHealthState": {
+ "discriminator": "ServiceKind",
+ "required": [
+ "ServiceKind"
+ ],
+ "description": "Represents a base class for stateful service replica or stateless service instance health state.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthState"
+ }
+ ],
+ "properties": {
+ "ServiceKind": {
+ "$ref": "#/definitions/ServiceKind",
+ "description": "The kind of service (Stateless or Stateful)."
+ },
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "The ID of the partition to which this replica belongs."
+ }
+ }
+ },
+ "ReplicaHealthStateChunk": {
+ "description": "Represents the health state chunk of a stateful service replica or a stateless service instance.\nThe replica health state contains the replica ID and its aggregated health state.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthStateChunk"
+ }
+ ],
+ "properties": {
+ "ReplicaOrInstanceId": {
+ "$ref": "#/definitions/ReplicaOrInstanceId",
+ "description": "Id of a stateful service replica or a stateless service instance. This ID is used in the queries that apply to both stateful and stateless services. It is used by Service Fabric to uniquely identify a replica of a partition of a stateful service or an instance of a stateless service partition. It is unique within a partition and does not change for the lifetime of the replica or the instance. If a stateful replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the ID. If a stateless instance is failed over on the same or different node it will get a different value for the ID."
+ }
+ }
+ },
+ "ReplicaHealthStateChunkList": {
+ "description": "The list of replica health state chunks that respect the input filters in the chunk query. Returned by get cluster health state chunks query.",
+ "properties": {
+ "Items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReplicaHealthStateChunk"
+ },
+ "description": "The list of replica health state chunks that respect the input filters in the chunk query."
+ }
+ }
+ },
+ "ReplicaHealthStateFilter": {
+ "description": "Defines matching criteria to determine whether a replica should be included as a child of a partition in the cluster health chunk.\nThe replicas are only returned if the parent entities match a filter specified in the cluster health chunk query description. The parent partition, service and application must be included in the cluster health chunk.\nOne filter can match zero, one or multiple replicas, depending on its properties.",
+ "properties": {
+ "ReplicaOrInstanceIdFilter": {
+ "type": "string",
+ "description": "Id of the stateful service replica or stateless service instance that matches the filter. The filter is applied only to the specified replica, if it exists.\nIf the replica doesn't exist, no replica is returned in the cluster health chunk based on this filter.\nIf the replica exists, it is included in the cluster health chunk if it respects the other filter properties.\nIf not specified, all replicas that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter."
+ },
+ "HealthStateFilter": {
+ "type": "integer",
+ "default": 0,
+ "description": "The filter for the health state of the replicas. It allows selecting replicas if they match the desired health states.\nThe possible values are integer value of one of the following health states. Only replicas that match the filter are returned. All replicas are used to evaluate the parent partition aggregated health state.\nIf not specified, default value is None, unless the replica ID is specified. If the filter has default value and replica ID is specified, the matching replica is returned.\nThe state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.\nFor example, if the provided value is 6, it matches replicas with HealthState value of OK (2) and Warning (4).\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535."
+ }
+ }
+ },
+ "ReplicaId": {
+ "type": "string",
+ "description": "Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id."
+ },
+ "ReplicaId_Integer": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id."
+ },
+ "ReplicaOrInstanceId": {
+ "type": "string",
+ "description": "Id of a stateful service replica or a stateless service instance. This ID is used in the queries that apply to both stateful and stateless services. It is used by Service Fabric to uniquely identify a replica of a partition of a stateful service or an instance of a stateless service partition. It is unique within a partition and does not change for the lifetime of the replica or the instance. If a stateful replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the ID. If a stateless instance is failed over on the same or different node it will get a different value for the ID."
+ },
+ "ReplicaInfo": {
+ "discriminator": "ServiceKind",
+ "description": "Information about the identity, status, health, node name, uptime, and other details about the replica.",
+ "required": [
+ "ServiceKind"
+ ],
+ "properties": {
+ "ServiceKind": {
+ "$ref": "#/definitions/ServiceKind",
+ "description": "The kind of service (Stateless or Stateful)."
+ },
+ "ReplicaStatus": {
+ "$ref": "#/definitions/ReplicaStatus",
+ "description": "The status of a replica of a service."
+ },
+ "HealthState": {
+ "$ref": "#/definitions/HealthState",
+ "description": "The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc."
+ },
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "Address": {
+ "type": "string",
+ "description": "The address the replica is listening on."
+ },
+ "LastInBuildDurationInSeconds": {
+ "type": "string",
+ "description": "The last in build duration of the replica in seconds."
+ }
+ }
+ },
+ "ReplicaRole": {
+ "type": "string",
+ "description": "The role of a replica of a stateful service.",
+ "enum": [
+ "Unknown",
+ "None",
+ "Primary",
+ "IdleSecondary",
+ "ActiveSecondary"
+ ],
+ "x-ms-enum": {
+ "name": "ReplicaRole",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Unknown",
+ "description": "Indicates the initial role that a replica is created in. The value is zero."
+ },
+ {
+ "value": "None",
+ "description": "Specifies that the replica has no responsibility in regard to the replica set. The value is 1"
+ },
+ {
+ "value": "Primary",
+ "description": "Refers to the replica in the set on which all read and write operations are complete in order to enforce strong consistency semantics. Read operations are handled directly by the Primary replica, while write operations must be acknowledged by a quorum of the replicas in the replica set. There can only be one Primary replica in a replica set at a time. The value is 2."
+ },
+ {
+ "value": "IdleSecondary",
+ "description": "Refers to a replica in the set that receives a state transfer from the Primary replica to prepare for becoming an active Secondary replica. There can be multiple Idle Secondary replicas in a replica set at a time. Idle Secondary replicas do not count as a part of a write quorum. The value is 3."
+ },
+ {
+ "value": "ActiveSecondary",
+ "description": "Refers to a replica in the set that receives state updates from the Primary replica, applies them, and sends acknowledgements back. Secondary replicas must participate in the write quorum for a replica set. There can be multiple active Secondary replicas in a replica set at a time. The number of active Secondary replicas is configurable that the reliability subsystem should maintain. The value is 4."
+ }
+ ]
+ }
+ },
+ "ReplicasHealthEvaluation": {
+ "x-ms-discriminator-value": "Replicas",
+ "description": "Represents health evaluation for replicas, containing health evaluations for each unhealthy replica that impacted current aggregated health state. Can be returned when evaluating partition health and the aggregated health state is either Error or Warning.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "MaxPercentUnhealthyReplicasPerPartition": {
+ "type": "integer",
+ "description": "Maximum allowed percentage of unhealthy replicas per partition from the ApplicationHealthPolicy."
+ },
+ "TotalCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total number of replicas in the partition from the health store."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ReplicaHealthEvaluation that impacted the aggregated health."
+ }
+ }
+ },
+ "ReplicaStatus": {
+ "type": "string",
+ "description": "The status of a replica of a service.",
+ "enum": [
+ "Invalid",
+ "InBuild",
+ "Standby",
+ "Ready",
+ "Down",
+ "Dropped"
+ ],
+ "x-ms-enum": {
+ "name": "ReplicaStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the replica status is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "InBuild",
+ "description": "The replica is being built. This means that a primary replica is seeding this replica. The value is 1."
+ },
+ {
+ "value": "Standby",
+ "description": "The replica is in standby. The value is 2."
+ },
+ {
+ "value": "Ready",
+ "description": "The replica is ready. The value is 3."
+ },
+ {
+ "value": "Down",
+ "description": "The replica is down. The value is 4."
+ },
+ {
+ "value": "Dropped",
+ "description": "Replica is dropped. This means that the replica has been removed from the replica set. If it is persisted, its state has been deleted. The value is 5."
+ }
+ ]
+ }
+ },
+ "RestartNodeDescription": {
+ "description": "Describes the parameters to restart a Service Fabric node.",
+ "properties": {
+ "NodeInstanceId": {
+ "type": "string",
+ "description": "The instance ID of the target node. If instance ID is specified the node is restarted only if it matches with the current instance of the node. A default value of \"0\" would match any instance ID. The instance ID can be obtained using get node query.",
+ "default": "0"
+ },
+ "CreateFabricDump": {
+ "type": "string",
+ "description": "Specify True to create a dump of the fabric node process. This is case-sensitive.",
+ "enum": [
+ "False",
+ "True"
+ ],
+ "default": "False",
+ "x-ms-enum": {
+ "name": "CreateFabricDump",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "False"
+ },
+ {
+ "value": "True"
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "NodeInstanceId"
+ ]
+ },
+ "SafetyCheckInfoList": {
+ "type": "array",
+ "description": "List of pending safety checks",
+ "items": {
+ "$ref": "#/definitions/SafetyCheckWrapper"
+ }
+ },
+ "SafetyCheckWrapper": {
+ "description": "A wrapper for the safety check object. Safety checks are performed by service fabric before continuing with the operations. These checks ensure the availability of the service and the reliability of the state.",
+ "properties": {
+ "SafetyCheck": {
+ "$ref": "#/definitions/SafetyCheck",
+ "description": "Represents a safety check performed by service fabric before continuing with the operations. These checks ensure the availability of the service and the reliability of the state."
+ }
+ }
+ },
+ "ServiceEvent": {
+ "description": "Represents the base for all Service Events.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/FabricEvent"
+ }
+ ],
+ "properties": {
+ "ServiceId": {
+ "$ref": "#/definitions/ServiceId",
+ "description": "The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource.\nStarting in version 6.0, hierarchical names are delimited with the \"\\~\" character. For example, if the service name is \"fabric:/myapp/app1/svc1\",\nthe service identity would be \"myapp~app1\\~svc1\" in 6.0+ and \"myapp/app1/svc1\" in previous versions."
+ }
+ },
+ "required": [
+ "ServiceId"
+ ],
+ "x-ms-discriminator-value": "ServiceEvent"
+ },
+ "ServiceEventList": {
+ "description": "A list of ServiceEvent objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceEvent"
+ }
+ },
+ "ServiceFromTemplateDescription": {
+ "description": "Defines description for creating a Service Fabric service from a template defined in the application manifest.",
+ "required": [
+ "ApplicationName",
+ "ServiceName",
+ "ServiceTypeName"
+ ],
+ "properties": {
+ "ApplicationName": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "ServiceName": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The full name of the service with 'fabric:' URI scheme."
+ },
+ "ServiceTypeName": {
+ "$ref": "#/definitions/ServiceTypeName",
+ "description": "Name of the service type as specified in the service manifest."
+ },
+ "InitializationData": {
+ "$ref": "#/definitions/ByteArray",
+ "description": "The initialization data for the newly created service instance."
+ },
+ "ServicePackageActivationMode": {
+ "$ref": "#/definitions/ServicePackageActivationMode",
+ "description": "The activation mode of service package to be used for a service."
+ },
+ "ServiceDnsName": {
+ "type": "string",
+ "description": "The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster."
+ }
+ }
+ },
+ "ServiceHealthEvaluation": {
+ "x-ms-discriminator-value": "Service",
+ "description": "Represents health evaluation for a service, containing information about the data and the algorithm used by health store to evaluate health. The evaluation is returned only when the aggregated health state is either Error or Warning.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "ServiceName": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "Name of the service whose health evaluation is described by this object."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the current aggregated health state of the service. The types of the unhealthy evaluations can be PartitionsHealthEvaluation or EventHealthEvaluation."
+ }
+ }
+ },
+ "ServiceHealthState": {
+ "description": "Represents the health state of a service, which contains the service identifier and its aggregated health state.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthState"
+ }
+ ],
+ "properties": {
+ "ServiceName": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "Name of the service whose health state is represented by this object."
+ }
+ }
+ },
+ "ServiceHealthStateChunk": {
+ "description": "Represents the health state chunk of a service, which contains the service name, its aggregated health state and any partitions that respect the filters in the cluster health chunk query description.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealthStateChunk"
+ }
+ ],
+ "properties": {
+ "ServiceName": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The name of the service whose health state chunk is provided in this object."
+ },
+ "PartitionHealthStateChunks": {
+ "$ref": "#/definitions/PartitionHealthStateChunkList",
+ "description": "The list of partition health state chunks belonging to the service that respect the filters in the cluster health chunk query description."
+ }
+ }
+ },
+ "ServiceHealthStateChunkList": {
+ "description": "The list of service health state chunks that respect the input filters in the chunk query. Returned by get cluster health state chunks query.",
+ "properties": {
+ "Items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceHealthStateChunk"
+ },
+ "description": "The list of service health state chunks that respect the input filters in the chunk query."
+ }
+ }
+ },
+ "ServiceHealthStateFilter": {
+ "description": "Defines matching criteria to determine whether a service should be included as a child of an application in the cluster health chunk.\nThe services are only returned if the parent application matches a filter specified in the cluster health chunk query description.\nOne filter can match zero, one or multiple services, depending on its properties.",
+ "properties": {
+ "ServiceNameFilter": {
+ "type": "string",
+ "description": "The name of the service that matches the filter. The filter is applied only to the specified service, if it exists.\nIf the service doesn't exist, no service is returned in the cluster health chunk based on this filter.\nIf the service exists, it is included as the application's child if the health state matches the other filter properties.\nIf not specified, all services that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter."
+ },
+ "HealthStateFilter": {
+ "type": "integer",
+ "default": 0,
+ "description": "The filter for the health state of the services. It allows selecting services if they match the desired health states.\nThe possible values are integer value of one of the following health states. Only services that match the filter are returned. All services are used to evaluate the cluster aggregated health state.\nIf not specified, default value is None, unless the service name is specified. If the filter has default value and service name is specified, the matching service is returned.\nThe state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.\nFor example, if the provided value is 6, it matches services with HealthState value of OK (2) and Warning (4).\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535."
+ },
+ "PartitionFilters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PartitionHealthStateFilter"
+ },
+ "description": "Defines a list of filters that specify which partitions to be included in the returned cluster health chunk as children of the service. The partitions are returned only if the parent service matches a filter.\nIf the list is empty, no partitions are returned. All the partitions are used to evaluate the parent service aggregated health state, regardless of the input filters.\nThe service filter may specify multiple partition filters.\nFor example, it can specify a filter to return all partitions with health state Error and another filter to always include a partition identified by its partition ID."
+ }
+ }
+ },
+ "ServiceHealth": {
+ "description": "Information about the health of a Service Fabric service.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EntityHealth"
+ }
+ ],
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The name of the service whose health information is described by this object."
+ },
+ "PartitionHealthStates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PartitionHealthState"
+ },
+ "description": "The list of partition health states associated with the service."
+ }
+ }
+ },
+ "ServiceId": {
+ "type": "string",
+ "description": "The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource.\nStarting in version 6.0, hierarchical names are delimited with the \"\\~\" character. For example, if the service name is \"fabric:/myapp/app1/svc1\",\nthe service identity would be \"myapp~app1\\~svc1\" in 6.0+ and \"myapp/app1/svc1\" in previous versions."
+ },
+ "ServiceName": {
+ "type": "string",
+ "description": "The full name of the service with 'fabric:' URI scheme."
+ },
+ "ServiceManifestName": {
+ "type": "string",
+ "description": "The name of the service manifest."
+ },
+ "ServiceTypeName": {
+ "type": "string",
+ "description": "Name of the service type as specified in the service manifest."
+ },
+ "ServiceInfo": {
+ "discriminator": "ServiceKind",
+ "description": "Information about a Service Fabric service.",
+ "properties": {
+ "Id": {
+ "$ref": "#/definitions/ServiceId",
+ "description": "The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource.\nStarting in version 6.0, hierarchical names are delimited with the \"\\~\" character. For example, if the service name is \"fabric:/myapp/app1/svc1\",\nthe service identity would be \"myapp~app1\\~svc1\" in 6.0+ and \"myapp/app1/svc1\" in previous versions."
+ },
+ "ServiceKind": {
+ "$ref": "#/definitions/ServiceKind",
+ "description": "The kind of service (Stateless or Stateful)."
+ },
+ "Name": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The full name of the service with 'fabric:' URI scheme."
+ },
+ "TypeName": {
+ "$ref": "#/definitions/ServiceTypeName",
+ "description": "Name of the service type as specified in the service manifest."
+ },
+ "ManifestVersion": {
+ "description": "The version of the service manifest.",
+ "type": "string"
+ },
+ "HealthState": {
+ "$ref": "#/definitions/HealthState",
+ "description": "The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc."
+ },
+ "ServiceStatus": {
+ "$ref": "#/definitions/ServiceStatus",
+ "description": "The status of the application."
+ },
+ "IsServiceGroup": {
+ "description": "Whether the service is in a service group.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "ServiceKind"
+ ]
+ },
+ "ServiceKind": {
+ "type": "string",
+ "description": "The kind of service (Stateless or Stateful).",
+ "enum": [
+ "Invalid",
+ "Stateless",
+ "Stateful"
+ ],
+ "x-ms-enum": {
+ "name": "ServiceKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the service kind is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Stateless",
+ "description": "Does not use Service Fabric to make its state highly available or reliable. The value is 1."
+ },
+ {
+ "value": "Stateful",
+ "description": "Uses Service Fabric to make its state or part of its state highly available and reliable. The value is 2."
+ }
+ ]
+ }
+ },
+ "ServiceNameInfo": {
+ "description": "Information about the service name.",
+ "properties": {
+ "Id": {
+ "$ref": "#/definitions/ServiceId",
+ "description": "The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource.\nStarting in version 6.0, hierarchical names are delimited with the \"\\~\" character. For example, if the service name is \"fabric:/myapp/app1/svc1\",\nthe service identity would be \"myapp~app1\\~svc1\" in 6.0+ and \"myapp/app1/svc1\" in previous versions."
+ },
+ "Name": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The full name of the service with 'fabric:' URI scheme."
+ }
+ }
+ },
+ "ServicePackageActivationId": {
+ "type": "string",
+ "description": "The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service\nis 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId\nis always an empty string."
+ },
+ "ServicePartitionInfo": {
+ "discriminator": "ServiceKind",
+ "description": "Information about a partition of a Service Fabric service.",
+ "required": [
+ "ServiceKind"
+ ],
+ "properties": {
+ "ServiceKind": {
+ "$ref": "#/definitions/ServiceKind",
+ "description": "The kind of service (Stateless or Stateful)."
+ },
+ "HealthState": {
+ "$ref": "#/definitions/HealthState",
+ "description": "The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc."
+ },
+ "PartitionStatus": {
+ "$ref": "#/definitions/ServicePartitionStatus",
+ "description": "The status of the service fabric service partition."
+ },
+ "PartitionInformation": {
+ "$ref": "#/definitions/PartitionInformation",
+ "description": "Information about the partition identity, partitioning scheme and keys supported by it."
+ }
+ }
+ },
+ "ServicePartitionKind": {
+ "type": "string",
+ "description": "The kind of partitioning scheme used to partition the service.",
+ "enum": [
+ "Invalid",
+ "Singleton",
+ "Int64Range",
+ "Named"
+ ],
+ "x-ms-enum": {
+ "name": "ServicePartitionKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the partition kind is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Singleton",
+ "description": "Indicates that there is only one partition, and SingletonPartitionSchemeDescription was specified while creating the service. The value is 1."
+ },
+ {
+ "value": "Int64Range",
+ "description": "Indicates that the partition is based on Int64 key ranges, and UniformInt64RangePartitionSchemeDescription was specified while creating the service. The value is 2."
+ },
+ {
+ "value": "Named",
+ "description": "Indicates that the partition is based on string names, and NamedPartitionInformation was specified while creating the service. The value is 3."
+ }
+ ]
+ }
+ },
+ "ServicePartitionStatus": {
+ "type": "string",
+ "description": "The status of the service fabric service partition.",
+ "enum": [
+ "Invalid",
+ "Ready",
+ "NotReady",
+ "InQuorumLoss",
+ "Reconfiguring",
+ "Deleting"
+ ],
+ "x-ms-enum": {
+ "name": "ServicePartitionStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the partition status is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Ready",
+ "description": "Indicates that the partition is ready. This means that for a stateless service partition there is at least one instance that is up and for a stateful service partition the number of ready replicas is greater than or equal to the MinReplicaSetSize. The value is 1."
+ },
+ {
+ "value": "NotReady",
+ "description": "Indicates that the partition is not ready. This status is returned when none of the other states apply. The value is 2."
+ },
+ {
+ "value": "InQuorumLoss",
+ "description": "Indicates that the partition is in quorum loss. This means that number of replicas that are up and participating in a replica set is less than MinReplicaSetSize for this partition. The value is 3."
+ },
+ {
+ "value": "Reconfiguring",
+ "description": "Indicates that the partition is undergoing reconfiguration of its replica sets. This can happen due to failover, upgrade, load balancing or addition or removal of replicas from the replica set. The value is 4."
+ },
+ {
+ "value": "Deleting",
+ "description": "Indicates that the partition is being deleted. The value is 5."
+ }
+ ]
+ }
+ },
+ "ServicePlacementInvalidDomainPolicyDescription": {
+ "x-ms-discriminator-value": "InvalidDomain",
+ "description": "Describes the policy to be used for placement of a Service Fabric service where a particular fault or upgrade domain should not be used for placement of the instances or replicas of that service.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServicePlacementPolicyDescription"
+ }
+ ],
+ "properties": {
+ "DomainName": {
+ "type": "string",
+ "description": "The name of the domain that should not be used for placement."
+ }
+ }
+ },
+ "ServicePlacementNonPartiallyPlaceServicePolicyDescription": {
+ "x-ms-discriminator-value": "NonPartiallyPlaceService",
+ "description": "Describes the policy to be used for placement of a Service Fabric service where all replicas must be able to be placed in order for any replicas to be created.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServicePlacementPolicyDescription"
+ }
+ ]
+ },
+ "ServicePlacementPolicyDescription": {
+ "discriminator": "Type",
+ "description": "Describes the policy to be used for placement of a Service Fabric service.",
+ "required": [
+ "Type"
+ ],
+ "properties": {
+ "Type": {
+ "$ref": "#/definitions/ServicePlacementPolicyType",
+ "description": "The type of placement policy for a service fabric service. Following are the possible values."
+ }
+ }
+ },
+ "ServicePlacementPolicyDescriptionList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServicePlacementPolicyDescription"
+ },
+ "description": "List of service placement policy descriptions."
+ },
+ "ServicePlacementPolicyType": {
+ "type": "string",
+ "description": "The type of placement policy for a service fabric service. Following are the possible values.",
+ "enum": [
+ "Invalid",
+ "InvalidDomain",
+ "RequireDomain",
+ "PreferPrimaryDomain",
+ "RequireDomainDistribution",
+ "NonPartiallyPlaceService",
+ "AllowMultipleStatelessInstancesOnNode"
+ ],
+ "x-ms-enum": {
+ "name": "ServicePlacementPolicyType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the type of the placement policy is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "InvalidDomain",
+ "description": "Indicates that the ServicePlacementPolicyDescription is of type ServicePlacementInvalidDomainPolicyDescription, which indicates that a particular fault or upgrade domain cannot be used for placement of this service. The value is 1."
+ },
+ {
+ "value": "RequireDomain",
+ "description": "Indicates that the ServicePlacementPolicyDescription is of type ServicePlacementRequireDomainDistributionPolicyDescription indicating that the replicas of the service must be placed in a specific domain. The value is 2."
+ },
+ {
+ "value": "PreferPrimaryDomain",
+ "description": "Indicates that the ServicePlacementPolicyDescription is of type ServicePlacementPreferPrimaryDomainPolicyDescription, which indicates that if possible the Primary replica for the partitions of the service should be located in a particular domain as an optimization. The value is 3."
+ },
+ {
+ "value": "RequireDomainDistribution",
+ "description": "Indicates that the ServicePlacementPolicyDescription is of type ServicePlacementRequireDomainDistributionPolicyDescription, indicating that the system will disallow placement of any two replicas from the same partition in the same domain at any time. The value is 4."
+ },
+ {
+ "value": "NonPartiallyPlaceService",
+ "description": "Indicates that the ServicePlacementPolicyDescription is of type ServicePlacementNonPartiallyPlaceServicePolicyDescription, which indicates that if possible all replicas of a particular partition of the service should be placed atomically. The value is 5."
+ },
+ {
+ "value": "AllowMultipleStatelessInstancesOnNode",
+ "description": "Indicates that the ServicePlacementPolicyDescription is of type ServicePlacementAllowMultipleStatelessInstancesOnNodePolicyDescription, which indicates that multiple stateless instances of a particular partition of the service can be placed on a node. The value is 6."
+ }
+ ]
+ }
+ },
+ "ServicePlacementPreferPrimaryDomainPolicyDescription": {
+ "x-ms-discriminator-value": "PreferPrimaryDomain",
+ "description": "Describes the policy to be used for placement of a Service Fabric service where the service's Primary replicas should optimally be placed in a particular domain.\n\nThis placement policy is usually used with fault domains in scenarios where the Service Fabric cluster is geographically distributed in order to indicate that a service's primary replica should be located in a particular fault domain, which in geo-distributed scenarios usually aligns with regional or datacenter boundaries. Note that since this is an optimization it is possible that the Primary replica may not end up located in this domain due to failures, capacity limits, or other constraints.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServicePlacementPolicyDescription"
+ }
+ ],
+ "properties": {
+ "DomainName": {
+ "type": "string",
+ "description": "The name of the domain that should used for placement as per this policy."
+ }
+ }
+ },
+ "ServicePlacementRequiredDomainPolicyDescription": {
+ "x-ms-discriminator-value": "RequireDomain",
+ "description": "Describes the policy to be used for placement of a Service Fabric service where the instances or replicas of that service must be placed in a particular domain",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServicePlacementPolicyDescription"
+ }
+ ],
+ "properties": {
+ "DomainName": {
+ "type": "string",
+ "description": "The name of the domain that should used for placement as per this policy."
+ }
+ }
+ },
+ "ServicePlacementRequireDomainDistributionPolicyDescription": {
+ "x-ms-discriminator-value": "RequireDomainDistribution",
+ "description": "Describes the policy to be used for placement of a Service Fabric service where two replicas from the same partition should never be placed in the same fault or upgrade domain.\n\nWhile this is not common it can expose the service to an increased risk of concurrent failures due to unplanned outages or other cases of subsequent/concurrent failures. As an example, consider a case where replicas are deployed across different data center, with one replica per location. In the event that one of the datacenters goes offline, normally the replica that was placed in that datacenter will be packed into one of the remaining datacenters. If this is not desirable then this policy should be set.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServicePlacementPolicyDescription"
+ }
+ ],
+ "properties": {
+ "DomainName": {
+ "type": "string",
+ "description": "The name of the domain that should used for placement as per this policy."
+ }
+ }
+ },
+ "ServicesHealthEvaluation": {
+ "x-ms-discriminator-value": "Services",
+ "description": "Represents health evaluation for services of a certain service type belonging to an application, containing health evaluations for each unhealthy service that impacted current aggregated health state. Can be returned when evaluating application health and the aggregated health state is either Error or Warning.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "ServiceTypeName": {
+ "type": "string",
+ "description": "Name of the service type of the services."
+ },
+ "MaxPercentUnhealthyServices": {
+ "type": "integer",
+ "description": "Maximum allowed percentage of unhealthy services from the ServiceTypeHealthPolicy."
+ },
+ "TotalCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total number of services of the current service type in the application from the health store."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ServiceHealthEvaluation that impacted the aggregated health."
+ }
+ }
+ },
+ "ServiceStatus": {
+ "type": "string",
+ "description": "The status of the application.",
+ "enum": [
+ "Unknown",
+ "Active",
+ "Upgrading",
+ "Deleting",
+ "Creating",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "ServiceStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Unknown",
+ "description": "Indicates the service status is unknown. The value is zero."
+ },
+ {
+ "value": "Active",
+ "description": "Indicates the service status is active. The value is 1."
+ },
+ {
+ "value": "Upgrading",
+ "description": "Indicates the service is upgrading. The value is 2."
+ },
+ {
+ "value": "Deleting",
+ "description": "Indicates the service is being deleted. The value is 3."
+ },
+ {
+ "value": "Creating",
+ "description": "Indicates the service is being created. The value is 4."
+ },
+ {
+ "value": "Failed",
+ "description": "Indicates creation or deletion was terminated due to persistent failures. Another create/delete request can be accepted. The value is 5."
+ }
+ ]
+ }
+ },
+ "ServiceTypeDescription": {
+ "discriminator": "Kind",
+ "description": "Describes a service type defined in the service manifest of a provisioned application type. The properties the ones defined in the service manifest.",
+ "required": [
+ "Kind"
+ ],
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/ServiceKind",
+ "description": "The kind of service (Stateless or Stateful)."
+ },
+ "IsStateful": {
+ "type": "boolean",
+ "description": "Indicates whether the service type is a stateful service type or a stateless service type. This property is true if the service type is a stateful service type, false otherwise."
+ },
+ "ServiceTypeName": {
+ "$ref": "#/definitions/ServiceTypeName",
+ "description": "Name of the service type as specified in the service manifest."
+ },
+ "PlacementConstraints": {
+ "type": "string",
+ "description": "The placement constraint to be used when instantiating this service in a Service Fabric cluster."
+ },
+ "LoadMetrics": {
+ "$ref": "#/definitions/ServiceLoadMetricsList",
+ "description": "The service load metrics is given as an array of ServiceLoadMetricDescription objects."
+ },
+ "ServicePlacementPolicies": {
+ "$ref": "#/definitions/ServicePlacementPolicyDescriptionList",
+ "description": "List of service placement policy descriptions."
+ },
+ "Extensions": {
+ "$ref": "#/definitions/ServiceTypeExtensionDescriptionList",
+ "description": "List of service type extensions."
+ }
+ }
+ },
+ "ServiceTypeExtensionDescription": {
+ "description": "Describes extension of a service type defined in the service manifest.",
+ "properties": {
+ "Key": {
+ "type": "string",
+ "description": "The name of the extension."
+ },
+ "Value": {
+ "type": "string",
+ "description": "The extension value."
+ }
+ }
+ },
+ "ServiceTypeExtensionDescriptionList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceTypeExtensionDescription"
+ },
+ "description": "List of service type extensions."
+ },
+ "ServiceTypeHealthPolicy": {
+ "description": "Represents the health policy used to evaluate the health of services belonging to a service type.",
+ "properties": {
+ "MaxPercentUnhealthyPartitionsPerService": {
+ "type": "integer",
+ "description": "The maximum allowed percentage of unhealthy partitions per service. Allowed values are Byte values from zero to 100\n\nThe percentage represents the maximum tolerated percentage of partitions that can be unhealthy before the service is considered in error.\nIf the percentage is respected but there is at least one unhealthy partition, the health is evaluated as Warning.\nThe percentage is calculated by dividing the number of unhealthy partitions over the total number of partitions in the service.\nThe computation rounds up to tolerate one failure on small numbers of partitions. Default percentage is zero.",
+ "default": 0
+ },
+ "MaxPercentUnhealthyReplicasPerPartition": {
+ "type": "integer",
+ "description": "The maximum allowed percentage of unhealthy replicas per partition. Allowed values are Byte values from zero to 100.\n\nThe percentage represents the maximum tolerated percentage of replicas that can be unhealthy before the partition is considered in error.\nIf the percentage is respected but there is at least one unhealthy replica, the health is evaluated as Warning.\nThe percentage is calculated by dividing the number of unhealthy replicas over the total number of replicas in the partition.\nThe computation rounds up to tolerate one failure on small numbers of replicas. Default percentage is zero.",
+ "default": 0
+ },
+ "MaxPercentUnhealthyServices": {
+ "type": "integer",
+ "description": "The maximum allowed percentage of unhealthy services. Allowed values are Byte values from zero to 100.\n\nThe percentage represents the maximum tolerated percentage of services that can be unhealthy before the application is considered in error.\nIf the percentage is respected but there is at least one unhealthy service, the health is evaluated as Warning.\nThis is calculated by dividing the number of unhealthy services of the specific service type over the total number of services of the specific service type.\nThe computation rounds up to tolerate one failure on small numbers of services. Default percentage is zero.",
+ "default": 0
+ }
+ }
+ },
+ "ServiceTypeHealthPolicyMap": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceTypeHealthPolicyMapItem"
+ },
+ "description": "Defines a ServiceTypeHealthPolicy per service type name.\n\nThe entries in the map replace the default service type health policy for each specified service type. For example, in an application that contains both a stateless gateway service type and a stateful engine service type, the health policies for the stateless and stateful services can be configured differently. With policy per service type, there's more granular control of the health of the service.\n\nIf no policy is specified for a service type name, the DefaultServiceTypeHealthPolicy is used for evaluation."
+ },
+ "ServiceTypeHealthPolicyMapItem": {
+ "description": "Defines an item in ServiceTypeHealthPolicyMap.",
+ "required": [
+ "Key",
+ "Value"
+ ],
+ "properties": {
+ "Key": {
+ "type": "string",
+ "description": "The key of the service type health policy map item. This is the name of the service type."
+ },
+ "Value": {
+ "$ref": "#/definitions/ServiceTypeHealthPolicy",
+ "description": "The value of the service type health policy map item. This is the ServiceTypeHealthPolicy for this service type."
+ }
+ }
+ },
+ "ServiceTypeInfo": {
+ "description": "Information about a service type that is defined in a service manifest of a provisioned application type.",
+ "properties": {
+ "ServiceTypeDescription": {
+ "$ref": "#/definitions/ServiceTypeDescription",
+ "description": "Describes a service type defined in the service manifest of a provisioned application type. The properties the ones defined in the service manifest."
+ },
+ "ServiceManifestName": {
+ "$ref": "#/definitions/ServiceManifestName",
+ "description": "The name of the service manifest in which this service type is defined."
+ },
+ "ServiceManifestVersion": {
+ "type": "string",
+ "description": "The version of the service manifest in which this service type is defined."
+ },
+ "IsServiceGroup": {
+ "type": "boolean",
+ "description": "Indicates whether the service is a service group. If it is, the property value is true otherwise false."
+ }
+ }
+ },
+ "ServiceTypeInfoList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceTypeInfo"
+ },
+ "description": "List of service type information."
+ },
+ "ServiceTypeManifest": {
+ "description": "Contains the manifest describing a service type registered as part of an application in a Service Fabric cluster.",
+ "properties": {
+ "Manifest": {
+ "type": "string",
+ "description": "The XML manifest as a string."
+ }
+ }
+ },
+ "SingletonPartitionInformation": {
+ "description": "Information about a partition that is singleton. The services with singleton partitioning scheme are effectively non-partitioned. They only have one partition.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionInformation"
+ }
+ ],
+ "x-ms-discriminator-value": "Singleton"
+ },
+ "StatefulServiceInfo": {
+ "description": "Information about a stateful Service Fabric service.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceInfo"
+ }
+ ],
+ "properties": {
+ "HasPersistedState": {
+ "description": "Whether the service has persisted state.",
+ "type": "boolean"
+ }
+ },
+ "x-ms-discriminator-value": "Stateful"
+ },
+ "StatefulServicePartitionInfo": {
+ "description": "Information about a partition of a stateful Service Fabric service..",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServicePartitionInfo"
+ }
+ ],
+ "x-ms-discriminator-value": "Stateful",
+ "properties": {
+ "TargetReplicaSetSize": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The target replica set size as a number."
+ },
+ "MinReplicaSetSize": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The minimum replica set size as a number."
+ },
+ "LastQuorumLossDuration": {
+ "type": "string",
+ "format": "duration",
+ "description": "The duration for which this partition was in quorum loss. If the partition is currently in quorum loss, it returns the duration since it has been in that state. This field is using ISO8601 format for specifying the duration."
+ },
+ "PrimaryEpoch": {
+ "$ref": "#/definitions/Epoch",
+ "description": "An Epoch is a configuration number for the partition as a whole. When the configuration of the replica set changes, for example when the Primary replica changes, the operations that are replicated from the new Primary replica are said to be a new Epoch from the ones which were sent by the old Primary replica."
+ }
+ }
+ },
+ "StatefulServiceReplicaHealth": {
+ "description": "Represents the health of the stateful service replica.\nContains the replica aggregated health state, the health events and the unhealthy evaluations.",
+ "x-ms-discriminator-value": "Stateful",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicaHealth"
+ }
+ ],
+ "properties": {
+ "ReplicaId": {
+ "$ref": "#/definitions/ReplicaId",
+ "description": "Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id."
+ }
+ }
+ },
+ "StatefulServiceReplicaHealthState": {
+ "x-ms-discriminator-value": "Stateful",
+ "description": "Represents the health state of the stateful service replica, which contains the replica ID and the aggregated health state.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicaHealthState"
+ }
+ ],
+ "properties": {
+ "ReplicaId": {
+ "$ref": "#/definitions/ReplicaId",
+ "description": "Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id."
+ }
+ }
+ },
+ "StatefulServiceTypeDescription": {
+ "description": "Describes a stateful service type defined in the service manifest of a provisioned application type.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceTypeDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "Stateful",
+ "properties": {
+ "HasPersistedState": {
+ "type": "boolean",
+ "description": "A flag indicating whether this is a persistent service which stores states on the local disk. If it is then the value of this property is true, if not it is false."
+ }
+ }
+ },
+ "StatelessServiceInfo": {
+ "description": "Information about a stateless Service Fabric service.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceInfo"
+ }
+ ],
+ "x-ms-discriminator-value": "Stateless"
+ },
+ "StatelessServiceInstanceHealth": {
+ "description": "Represents the health of the stateless service instance.\nContains the instance aggregated health state, the health events and the unhealthy evaluations.",
+ "x-ms-discriminator-value": "Stateless",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicaHealth"
+ }
+ ],
+ "properties": {
+ "InstanceId": {
+ "$ref": "#/definitions/InstanceId",
+ "description": "Id of a stateless service instance. InstanceId is used by Service Fabric to uniquely identify an instance of a partition of a stateless service. It is unique within a partition and does not change for the lifetime of the instance. If the instance has failed over on the same or different node, it will get a different value for the InstanceId."
+ }
+ }
+ },
+ "StatelessServiceInstanceHealthState": {
+ "x-ms-discriminator-value": "Stateless",
+ "description": "Represents the health state of the stateless service instance, which contains the instance ID and the aggregated health state.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicaHealthState"
+ }
+ ],
+ "properties": {
+ "ReplicaId": {
+ "$ref": "#/definitions/ReplicaId",
+ "description": "Id of the stateless service instance on the wire this field is called ReplicaId."
+ }
+ }
+ },
+ "StatelessServicePartitionInfo": {
+ "description": "Information about a partition of a stateless Service Fabric service.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServicePartitionInfo"
+ }
+ ],
+ "x-ms-discriminator-value": "Stateless",
+ "properties": {
+ "InstanceCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Number of instances of this partition."
+ },
+ "MinInstanceCount": {
+ "$ref": "#/definitions/MinInstanceCount",
+ "description": "MinInstanceCount is the minimum number of instances that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.\nThe actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).\nNote, if InstanceCount is set to -1, during MinInstanceCount computation -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service."
+ },
+ "MinInstancePercentage": {
+ "$ref": "#/definitions/MinInstancePercentage",
+ "description": "MinInstancePercentage is the minimum percentage of InstanceCount that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.\nThe actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).\nNote, if InstanceCount is set to -1, during MinInstancePercentage computation, -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service."
+ }
+ }
+ },
+ "StatelessServiceTypeDescription": {
+ "description": "Describes a stateless service type defined in the service manifest of a provisioned application type.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceTypeDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "Stateless",
+ "properties": {
+ "UseImplicitHost": {
+ "type": "boolean",
+ "description": "A flag indicating if this type is not implemented and hosted by a user service process, but is implicitly hosted by a system created process. This value is true for services using the guest executable services, false otherwise."
+ }
+ }
+ },
+ "SystemApplicationHealthEvaluation": {
+ "x-ms-discriminator-value": "SystemApplication",
+ "description": "Represents health evaluation for the fabric:/System application, containing information about the data and the algorithm used by health store to evaluate health. The evaluation is returned only when the aggregated health state of the cluster is either Error or Warning.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the current aggregated health state of the system application. The types of the unhealthy evaluations can be DeployedApplicationsHealthEvaluation, ServicesHealthEvaluation or EventHealthEvaluation."
+ }
+ }
+ },
+ "TargetApplicationName": {
+ "type": "string",
+ "description": "The name of the target application, including the 'fabric:' URI scheme."
+ },
+ "TargetApplicationTypeVersion": {
+ "type": "string",
+ "description": "The target application type version (found in the application manifest) for the application upgrade."
+ },
+ "TargetDeploymentName": {
+ "type": "string",
+ "description": "The name of the target deployment."
+ },
+ "UnhealthyEvaluations": {
+ "description": "List of health evaluations that resulted in the current aggregated health state.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthEvaluationWrapper"
+ }
+ },
+ "UpgradeDomainDeltaNodesCheckHealthEvaluation": {
+ "x-ms-discriminator-value": "UpgradeDomainDeltaNodesCheck",
+ "description": "Represents health evaluation for delta unhealthy cluster nodes in an upgrade domain, containing health evaluations for each unhealthy node that impacted current aggregated health state.\nCan be returned during cluster upgrade when cluster aggregated health state is Warning or Error.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "UpgradeDomainName": {
+ "type": "string",
+ "description": "Name of the upgrade domain where nodes health is currently evaluated."
+ },
+ "BaselineErrorCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Number of upgrade domain nodes with aggregated heath state Error in the health store at the beginning of the cluster upgrade."
+ },
+ "BaselineTotalCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total number of upgrade domain nodes in the health store at the beginning of the cluster upgrade."
+ },
+ "MaxPercentDeltaUnhealthyNodes": {
+ "type": "integer",
+ "description": "Maximum allowed percentage of upgrade domain delta unhealthy nodes from the ClusterUpgradeHealthPolicy."
+ },
+ "TotalCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total number of upgrade domain nodes in the health store."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health."
+ }
+ }
+ },
+ "UpgradeDomainInfo": {
+ "description": "Information about an upgrade domain.",
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/UpgradeDomainName",
+ "description": "The name of the upgrade domain"
+ },
+ "State": {
+ "$ref": "#/definitions/UpgradeDomainState",
+ "description": "The state of the upgrade domain."
+ }
+ }
+ },
+ "UpgradeDomainInfoList": {
+ "type": "array",
+ "description": "List of upgrade domains and their statuses.",
+ "items": {
+ "$ref": "#/definitions/UpgradeDomainInfo"
+ }
+ },
+ "UpgradeDomainName": {
+ "type": "string",
+ "description": "The name of the upgrade domain"
+ },
+ "UpgradeDomainNodesHealthEvaluation": {
+ "x-ms-discriminator-value": "UpgradeDomainNodes",
+ "description": "Represents health evaluation for cluster nodes in an upgrade domain, containing health evaluations for each unhealthy node that impacted current aggregated health state. Can be returned when evaluating cluster health during cluster upgrade and the aggregated health state is either Error or Warning.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthEvaluation"
+ }
+ ],
+ "properties": {
+ "UpgradeDomainName": {
+ "type": "string",
+ "description": "Name of the upgrade domain where nodes health is currently evaluated."
+ },
+ "MaxPercentUnhealthyNodes": {
+ "type": "integer",
+ "description": "Maximum allowed percentage of unhealthy nodes from the ClusterHealthPolicy."
+ },
+ "TotalCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total number of nodes in the current upgrade domain."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health."
+ }
+ }
+ },
+ "UpgradeDomainState": {
+ "type": "string",
+ "description": "The state of the upgrade domain.",
+ "enum": [
+ "Invalid",
+ "Pending",
+ "InProgress",
+ "Completed"
+ ],
+ "x-ms-enum": {
+ "name": "UpgradeDomainState",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the upgrade domain state is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Pending",
+ "description": "The upgrade domain has not started upgrading yet. The value is 1"
+ },
+ {
+ "value": "InProgress",
+ "description": "The upgrade domain is being upgraded but not complete yet. The value is 2"
+ },
+ {
+ "value": "Completed",
+ "description": "The upgrade domain has completed upgrade. The value is 3"
+ }
+ ]
+ }
+ },
+ "UpgradeDomainTimeout": {
+ "type": "string",
+ "description": "The amount of time each upgrade domain has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.",
+ "default": "P10675199DT02H48M05.4775807S"
+ },
+ "UpgradeDuration": {
+ "type": "string",
+ "description": "The estimated amount of time that the overall upgrade elapsed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.",
+ "default": "PT0H2M0S"
+ },
+ "UpgradeKind": {
+ "type": "string",
+ "description": "The kind of upgrade out of the following possible values.",
+ "default": "Rolling",
+ "enum": [
+ "Invalid",
+ "Rolling"
+ ],
+ "x-ms-enum": {
+ "name": "UpgradeKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the upgrade kind is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Rolling",
+ "description": "The upgrade progresses one upgrade domain at a time. The value is 1"
+ }
+ ]
+ }
+ },
+ "UpgradeMode": {
+ "type": "string",
+ "description": "The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored.",
+ "enum": [
+ "Invalid",
+ "UnmonitoredAuto",
+ "UnmonitoredManual",
+ "Monitored"
+ ],
+ "default": "UnmonitoredAuto",
+ "x-ms-enum": {
+ "name": "UpgradeMode",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the upgrade mode is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "UnmonitoredAuto",
+ "description": "The upgrade will proceed automatically without performing any health monitoring. The value is 1"
+ },
+ {
+ "value": "UnmonitoredManual",
+ "description": "The upgrade will stop after completing each upgrade domain, giving the opportunity to manually monitor health before proceeding. The value is 2"
+ },
+ {
+ "value": "Monitored",
+ "description": "The upgrade will stop after completing each upgrade domain and automatically monitor health before proceeding. The value is 3"
+ }
+ ]
+ }
+ },
+ "UpgradeSortOrder": {
+ "type": "string",
+ "description": "Defines the order in which an upgrade proceeds through the cluster.",
+ "enum": [
+ "Invalid",
+ "Default",
+ "Numeric",
+ "Lexicographical",
+ "ReverseNumeric",
+ "ReverseLexicographical"
+ ],
+ "default": "Default",
+ "x-ms-enum": {
+ "name": "UpgradeSortOrder",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates that this sort order is not valid. All Service Fabric enumerations have the invalid type. The value is 0."
+ },
+ {
+ "value": "Default",
+ "description": "Indicates that the default sort order (as specified in cluster manifest) will be used. The value is 1."
+ },
+ {
+ "value": "Numeric",
+ "description": "Indicates that forward numeric sort order (UD names sorted as numbers) will be used. The value is 2."
+ },
+ {
+ "value": "Lexicographical",
+ "description": "Indicates that forward lexicographical sort order (UD names sorted as strings) will be used. The value is 3."
+ },
+ {
+ "value": "ReverseNumeric",
+ "description": "Indicates that reverse numeric sort order (UD names sorted as numbers) will be used. The value is 4."
+ },
+ {
+ "value": "ReverseLexicographical",
+ "description": "Indicates that reverse lexicographical sort order (UD names sorted as strings) will be used. The value is 5."
+ }
+ ]
+ }
+ },
+ "UpgradeType": {
+ "type": "string",
+ "description": "The type of upgrade out of the following possible values.",
+ "default": "Rolling",
+ "enum": [
+ "Invalid",
+ "Rolling",
+ "Rolling_ForceRestart"
+ ],
+ "x-ms-enum": {
+ "name": "UpgradeType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the upgrade kind is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Rolling",
+ "description": "The upgrade progresses one upgrade domain at a time. The value is 1."
+ },
+ {
+ "value": "Rolling_ForceRestart",
+ "description": "The upgrade gets restarted by force. The value is 2."
+ }
+ ]
+ }
+ },
+ "UpgradeReplicaSetCheckTimeout": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer).",
+ "default": 42949672925
+ },
+ "UpgradeState": {
+ "type": "string",
+ "description": "The state of the upgrade domain.",
+ "enum": [
+ "Invalid",
+ "RollingBackInProgress",
+ "RollingBackCompleted",
+ "RollingForwardPending",
+ "RollingForwardInProgress",
+ "RollingForwardCompleted",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "UpgradeState",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the upgrade state is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "RollingBackInProgress",
+ "description": "The upgrade is rolling back to the previous version but is not complete yet. The value is 1"
+ },
+ {
+ "value": "RollingBackCompleted",
+ "description": "The upgrade has finished rolling back. The value is 2"
+ },
+ {
+ "value": "RollingForwardPending",
+ "description": "The current upgrade domain has finished upgrading. The overall upgrade is waiting for an explicit move next request in UnmonitoredManual mode or performing health checks in Monitored mode. The value is 3"
+ },
+ {
+ "value": "RollingForwardInProgress",
+ "description": "The upgrade is rolling forward to the target version but is not complete yet. The value is 4"
+ },
+ {
+ "value": "RollingForwardCompleted",
+ "description": "The upgrade has finished rolling forward. The value is 5"
+ },
+ {
+ "value": "Failed",
+ "description": "The upgrade has failed and is unable to execute FailureAction. The value is 6"
+ }
+ ]
+ }
+ },
+ "UpgradeTimeout": {
+ "type": "string",
+ "description": "The amount of time the overall upgrade has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.",
+ "default": "P10675199DT02H48M05.4775807S"
+ },
+ "WaitForInbuildReplicaSafetyCheck": {
+ "description": "Safety check that waits for the replica build operation to finish. This indicates that there is a replica that is going through the copy or is providing data for building another replica. Bring the node down will abort this copy operation which are typically expensive involving data movements.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionSafetyCheck"
+ }
+ ],
+ "x-ms-discriminator-value": "WaitForInbuildReplica"
+ },
+ "WaitForPrimaryPlacementSafetyCheck": {
+ "description": "Safety check that waits for the primary replica that was moved out of the node due to upgrade to be placed back again on that node.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionSafetyCheck"
+ }
+ ],
+ "x-ms-discriminator-value": "WaitForPrimaryPlacement"
+ },
+ "WaitForPrimarySwapSafetyCheck": {
+ "description": "Safety check that waits for the primary replica to be moved out of the node before starting an upgrade to ensure the availability of the primary replica for the partition.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionSafetyCheck"
+ }
+ ],
+ "x-ms-discriminator-value": "WaitForPrimarySwap"
+ },
+ "WaitForReconfigurationSafetyCheck": {
+ "description": "Safety check that waits for the current reconfiguration of the partition to be completed before starting an upgrade.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionSafetyCheck"
+ }
+ ],
+ "x-ms-discriminator-value": "WaitForReconfiguration"
+ },
+ "LoadMetricReport": {
+ "description": "Represents the load metric report which contains the time metric was reported, its name and value.",
+ "properties": {
+ "LastReportedUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Gets the UTC time when the load was reported."
+ },
+ "Name": {
+ "type": "string",
+ "description": "The name of the load metric."
+ },
+ "Value": {
+ "type": "string",
+ "format": "int32",
+ "description": "The value of the load metric. In future releases of Service Fabric this parameter will be deprecated in favor of CurrentValue."
+ },
+ "CurrentValue": {
+ "type": "string",
+ "format": "double",
+ "description": "The value of the load metric."
+ }
+ }
+ },
+ "PartitionLoadInformation": {
+ "description": "Represents load information for a partition, which contains the primary and secondary reported load metrics.\nIn case there is no load reported, PartitionLoadInformation will contain the default load for the service of the partition.\nFor default loads, LoadMetricReport's LastReportedUtc is set to 0.",
+ "properties": {
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "Id of the partition."
+ },
+ "PrimaryLoadMetricReports": {
+ "type": "array",
+ "description": "Array of load reports from the primary replica for this partition.",
+ "items": {
+ "$ref": "#/definitions/LoadMetricReport"
+ }
+ },
+ "SecondaryLoadMetricReports": {
+ "type": "array",
+ "description": "Array of aggregated load reports from all secondary replicas for this partition.\nArray only contains the latest reported load for each metric.",
+ "items": {
+ "$ref": "#/definitions/LoadMetricReport"
+ }
+ }
+ }
+ },
+ "StatefulServiceReplicaInfo": {
+ "x-ms-discriminator-value": "Stateful",
+ "description": "Represents a stateful service replica. This includes information about the identity, role, status, health, node name, uptime, and other details about the replica.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicaInfo"
+ }
+ ],
+ "properties": {
+ "ReplicaRole": {
+ "$ref": "#/definitions/ReplicaRole",
+ "description": "The role of a replica of a stateful service."
+ },
+ "ReplicaId": {
+ "$ref": "#/definitions/ReplicaId",
+ "description": "Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id."
+ }
+ }
+ },
+ "StatelessServiceInstanceInfo": {
+ "x-ms-discriminator-value": "Stateless",
+ "description": "Represents a stateless service instance. This includes information about the identity, status, health, node name, uptime, and other details about the instance.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicaInfo"
+ }
+ ],
+ "properties": {
+ "InstanceId": {
+ "$ref": "#/definitions/InstanceId",
+ "description": "Id of a stateless service instance. InstanceId is used by Service Fabric to uniquely identify an instance of a partition of a stateless service. It is unique within a partition and does not change for the lifetime of the instance. If the instance has failed over on the same or different node, it will get a different value for the InstanceId."
+ }
+ }
+ },
+ "ClusterFabricCodeVersionString": {
+ "type": "string",
+ "description": "The ServiceFabric code version of the cluster."
+ },
+ "ClusterFabricConfigVersionString": {
+ "type": "string",
+ "description": "The cluster configuration version (specified in the cluster manifest)."
+ },
+ "ClusterUpgradeDescriptionObject": {
+ "description": "Represents a ServiceFabric cluster upgrade",
+ "properties": {
+ "ConfigVersion": {
+ "$ref": "#/definitions/ClusterFabricConfigVersionString",
+ "description": "The cluster configuration version (specified in the cluster manifest)."
+ },
+ "CodeVersion": {
+ "$ref": "#/definitions/ClusterFabricCodeVersionString",
+ "description": "The ServiceFabric code version of the cluster."
+ },
+ "UpgradeKind": {
+ "$ref": "#/definitions/UpgradeKind",
+ "description": "The kind of upgrade out of the following possible values."
+ },
+ "RollingUpgradeMode": {
+ "$ref": "#/definitions/UpgradeMode",
+ "description": "The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored."
+ },
+ "UpgradeReplicaSetCheckTimeoutInSeconds": {
+ "$ref": "#/definitions/UpgradeReplicaSetCheckTimeout",
+ "description": "The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer)."
+ },
+ "ForceRestart": {
+ "$ref": "#/definitions/ForceRestart",
+ "description": "If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data)."
+ },
+ "SortOrder": {
+ "$ref": "#/definitions/UpgradeSortOrder",
+ "description": "Defines the order in which an upgrade proceeds through the cluster."
+ },
+ "EnableDeltaHealthEvaluation": {
+ "$ref": "#/definitions/DeltaHealthEvaluationBool",
+ "description": "When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain."
+ },
+ "MonitoringPolicy": {
+ "$ref": "#/definitions/MonitoringPolicyDescription",
+ "description": "Describes the parameters for monitoring an upgrade in Monitored mode."
+ },
+ "ClusterHealthPolicy": {
+ "$ref": "#/definitions/ClusterHealthPolicy",
+ "description": "Defines a health policy used to evaluate the health of the cluster or of a cluster node."
+ },
+ "ClusterUpgradeHealthPolicy": {
+ "$ref": "#/definitions/ClusterUpgradeHealthPolicyObject",
+ "description": "Defines a health policy used to evaluate the health of the cluster during a cluster upgrade."
+ },
+ "ApplicationHealthPolicyMap": {
+ "$ref": "#/definitions/ApplicationHealthPolicyMapObject",
+ "description": "Represents the map of application health policies for a ServiceFabric cluster upgrade"
+ }
+ }
+ },
+ "ClusterUpgradeHealthPolicyObject": {
+ "description": "Defines a health policy used to evaluate the health of the cluster during a cluster upgrade.",
+ "properties": {
+ "MaxPercentDeltaUnhealthyNodes": {
+ "type": "integer",
+ "description": "The maximum allowed percentage of nodes health degradation allowed during cluster upgrades. The delta is measured between the state of the nodes at the beginning of upgrade and the state of the nodes at the time of the health evaluation. The check is performed after every upgrade domain upgrade completion to make sure the global state of the cluster is within tolerated limits. The default value is 10%.",
+ "maximum": 100,
+ "minimum": 0
+ },
+ "MaxPercentUpgradeDomainDeltaUnhealthyNodes": {
+ "type": "integer",
+ "description": "The maximum allowed percentage of upgrade domain nodes health degradation allowed during cluster upgrades. The delta is measured between the state of the upgrade domain nodes at the beginning of upgrade and the state of the upgrade domain nodes at the time of the health evaluation. The check is performed after every upgrade domain upgrade completion for all completed upgrade domains to make sure the state of the upgrade domains is within tolerated limits. The default value is 15%.",
+ "maximum": 100,
+ "minimum": 0
+ }
+ }
+ },
+ "ClusterUpgradeProgressObject": {
+ "description": "Information about a cluster upgrade.",
+ "properties": {
+ "CodeVersion": {
+ "$ref": "#/definitions/ClusterFabricCodeVersionString",
+ "description": "The ServiceFabric code version of the cluster."
+ },
+ "ConfigVersion": {
+ "$ref": "#/definitions/ClusterFabricConfigVersionString",
+ "description": "The cluster configuration version (specified in the cluster manifest)."
+ },
+ "UpgradeDomains": {
+ "$ref": "#/definitions/UpgradeDomainInfoList",
+ "description": "List of upgrade domains and their statuses."
+ },
+ "UpgradeState": {
+ "$ref": "#/definitions/UpgradeState",
+ "description": "The state of the upgrade domain."
+ },
+ "NextUpgradeDomain": {
+ "$ref": "#/definitions/NextUpgradeDomain",
+ "description": "The name of the next upgrade domain to be processed."
+ },
+ "RollingUpgradeMode": {
+ "$ref": "#/definitions/UpgradeMode",
+ "description": "The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored."
+ },
+ "UpgradeDescription": {
+ "$ref": "#/definitions/ClusterUpgradeDescriptionObject",
+ "description": "Represents a ServiceFabric cluster upgrade"
+ },
+ "UpgradeDurationInMilliseconds": {
+ "$ref": "#/definitions/UpgradeDurationString",
+ "description": "The estimated elapsed time spent processing the current overall upgrade."
+ },
+ "UpgradeDomainDurationInMilliseconds": {
+ "$ref": "#/definitions/UpgradeDomainDurationString",
+ "description": "The estimated elapsed time spent processing the current upgrade domain."
+ },
+ "UnhealthyEvaluations": {
+ "$ref": "#/definitions/UnhealthyEvaluations",
+ "description": "List of health evaluations that resulted in the current aggregated health state."
+ },
+ "CurrentUpgradeDomainProgress": {
+ "$ref": "#/definitions/CurrentUpgradeDomainProgressInfo",
+ "description": "Information about the current in-progress upgrade domain."
+ },
+ "StartTimestampUtc": {
+ "$ref": "#/definitions/UpgradeStartTimeUTCString",
+ "description": "The start time of the upgrade in UTC."
+ },
+ "FailureTimestampUtc": {
+ "$ref": "#/definitions/UpgradeFailureTimeUTCString",
+ "description": "The failure time of the upgrade in UTC."
+ },
+ "FailureReason": {
+ "$ref": "#/definitions/FailureReason",
+ "description": "The cause of an upgrade failure that resulted in FailureAction being executed."
+ },
+ "UpgradeDomainProgressAtFailure": {
+ "$ref": "#/definitions/FailedUpgradeDomainProgressObject",
+ "description": "The detailed upgrade progress for nodes in the current upgrade domain at the point of failure."
+ }
+ }
+ },
+ "ClusterConfigurationUpgradeDescription": {
+ "description": "Describes the parameters for a standalone cluster configuration upgrade.",
+ "properties": {
+ "ClusterConfig": {
+ "type": "string",
+ "description": "The cluster configuration as a JSON string. For example, [this file](https://github.com/Azure-Samples/service-fabric-dotnet-standalone-cluster-configuration/blob/master/Samples/ClusterConfig.Unsecure.DevCluster.json) contains JSON describing the [nodes and other properties of the cluster](https://docs.microsoft.com/azure/service-fabric/service-fabric-cluster-manifest)."
+ },
+ "HealthCheckRetryTimeout": {
+ "type": "string",
+ "format": "duration",
+ "description": "The length of time between attempts to perform health checks if the application or cluster is not healthy.",
+ "default": "PT0H0M0S"
+ },
+ "HealthCheckWaitDurationInSeconds": {
+ "type": "string",
+ "format": "duration",
+ "description": "The length of time to wait after completing an upgrade domain before starting the health checks process.",
+ "default": "PT0H0M0S"
+ },
+ "HealthCheckStableDurationInSeconds": {
+ "type": "string",
+ "format": "duration",
+ "description": "The length of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain.",
+ "default": "PT0H0M0S"
+ },
+ "UpgradeDomainTimeoutInSeconds": {
+ "type": "string",
+ "format": "duration",
+ "description": "The timeout for the upgrade domain.",
+ "default": "PT0H0M0S"
+ },
+ "UpgradeTimeoutInSeconds": {
+ "type": "string",
+ "format": "duration",
+ "description": "The upgrade timeout.",
+ "default": "PT0H0M0S"
+ },
+ "MaxPercentUnhealthyApplications": {
+ "type": "integer",
+ "description": "The maximum allowed percentage of unhealthy applications during the upgrade. Allowed values are integer values from zero to 100.",
+ "default": 0
+ },
+ "MaxPercentUnhealthyNodes": {
+ "type": "integer",
+ "description": "The maximum allowed percentage of unhealthy nodes during the upgrade. Allowed values are integer values from zero to 100.",
+ "default": 0
+ },
+ "MaxPercentDeltaUnhealthyNodes": {
+ "type": "integer",
+ "description": "The maximum allowed percentage of delta health degradation during the upgrade. Allowed values are integer values from zero to 100.",
+ "default": 0
+ },
+ "MaxPercentUpgradeDomainDeltaUnhealthyNodes": {
+ "type": "integer",
+ "description": "The maximum allowed percentage of upgrade domain delta health degradation during the upgrade. Allowed values are integer values from zero to 100.",
+ "default": 0
+ },
+ "ApplicationHealthPolicies": {
+ "$ref": "#/definitions/ApplicationHealthPolicies",
+ "description": "Defines the application health policy map used to evaluate the health of an application or one of its children entities."
+ }
+ },
+ "required": [
+ "ClusterConfig"
+ ]
+ },
+ "DeltaHealthEvaluationBool": {
+ "type": "boolean",
+ "description": "When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain."
+ },
+ "FailedUpgradeDomainProgressObject": {
+ "description": "The detailed upgrade progress for nodes in the current upgrade domain at the point of failure.",
+ "properties": {
+ "DomainName": {
+ "$ref": "#/definitions/UpgradeDomainName",
+ "description": "The name of the upgrade domain"
+ },
+ "NodeUpgradeProgressList": {
+ "$ref": "#/definitions/NodeUpgradeProgressInfoList",
+ "description": "List of upgrading nodes and their statuses"
+ }
+ }
+ },
+ "UpgradeDomainDurationString": {
+ "type": "string",
+ "description": "The estimated elapsed time spent processing the current upgrade domain."
+ },
+ "UpgradeDurationString": {
+ "type": "string",
+ "description": "The estimated elapsed time spent processing the current overall upgrade."
+ },
+ "UpgradeFailureTimeUTCString": {
+ "type": "string",
+ "description": "The failure time of the upgrade in UTC."
+ },
+ "UpgradeStartTimeUTCString": {
+ "type": "string",
+ "description": "The start time of the upgrade in UTC."
+ },
+ "UpgradeOrchestrationServiceState": {
+ "description": "Service state of Service Fabric Upgrade Orchestration Service.",
+ "properties": {
+ "ServiceState": {
+ "type": "string",
+ "description": "The state of Service Fabric Upgrade Orchestration Service."
+ }
+ }
+ },
+ "UpgradeOrchestrationServiceStateSummary": {
+ "description": "Service state summary of Service Fabric Upgrade Orchestration Service.",
+ "properties": {
+ "CurrentCodeVersion": {
+ "type": "string",
+ "description": "The current code version of the cluster."
+ },
+ "CurrentManifestVersion": {
+ "type": "string",
+ "description": "The current manifest version of the cluster."
+ },
+ "TargetCodeVersion": {
+ "type": "string",
+ "description": "The target code version of the cluster."
+ },
+ "TargetManifestVersion": {
+ "type": "string",
+ "description": "The target manifest version of the cluster."
+ },
+ "PendingUpgradeType": {
+ "type": "string",
+ "description": "The type of the pending upgrade of the cluster."
+ }
+ }
+ },
+ "ApplicationTypeImageStorePath": {
+ "description": "Path description for the application package in the image store specified during the prior copy operation.",
+ "required": [
+ "ApplicationTypeBuildPath"
+ ],
+ "properties": {
+ "ApplicationTypeBuildPath": {
+ "type": "string",
+ "description": "The relative image store path to the application package."
+ }
+ }
+ },
+ "UnprovisionApplicationTypeDescriptionInfo": {
+ "description": "Describes the operation to unregister or unprovision an application type and its version that was registered with the Service Fabric.",
+ "required": [
+ "ApplicationTypeVersion"
+ ],
+ "properties": {
+ "ApplicationTypeVersion": {
+ "$ref": "#/definitions/ApplicationTypeVersion",
+ "description": "The version of the application type as defined in the application manifest."
+ },
+ "Async": {
+ "type": "boolean",
+ "description": "The flag indicating whether or not unprovision should occur asynchronously. When set to true, the unprovision operation returns when the request is accepted by the system, and the unprovision operation continues without any timeout limit. The default value is false. However, we recommend setting it to true for large application packages that were provisioned."
+ }
+ }
+ },
+ "CodePackageName": {
+ "type": "string",
+ "description": "The name of the code package defined in the service manifest."
+ },
+ "CodePackageEntryPointStatistics": {
+ "description": "Statistics about setup or main entry point of a code package deployed on a Service Fabric node.",
+ "properties": {
+ "LastExitCode": {
+ "type": "string",
+ "description": "The last exit code of the entry point."
+ },
+ "LastActivationTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The last time (in UTC) when Service Fabric attempted to run the entry point."
+ },
+ "LastExitTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The last time (in UTC) when the entry point finished running."
+ },
+ "LastSuccessfulActivationTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The last time (in UTC) when the entry point ran successfully."
+ },
+ "LastSuccessfulExitTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The last time (in UTC) when the entry point finished running gracefully."
+ },
+ "ActivationCount": {
+ "type": "string",
+ "description": "Number of times the entry point has run."
+ },
+ "ActivationFailureCount": {
+ "type": "string",
+ "description": "Number of times the entry point failed to run."
+ },
+ "ContinuousActivationFailureCount": {
+ "type": "string",
+ "description": "Number of times the entry point continuously failed to run."
+ },
+ "ExitCount": {
+ "type": "string",
+ "description": "Number of times the entry point finished running."
+ },
+ "ExitFailureCount": {
+ "type": "string",
+ "description": "Number of times the entry point failed to exit gracefully."
+ },
+ "ContinuousExitFailureCount": {
+ "type": "string",
+ "description": "Number of times the entry point continuously failed to exit gracefully."
+ }
+ }
+ },
+ "DeployedCodePackageInfoList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeployedCodePackageInfo"
+ },
+ "description": "List of deployed code package information."
+ },
+ "DeployedCodePackageInfo": {
+ "description": "Information about code package deployed on a Service Fabric node.",
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/CodePackageName",
+ "description": "The name of the code package."
+ },
+ "Version": {
+ "type": "string",
+ "description": "The version of the code package specified in service manifest."
+ },
+ "ServiceManifestName": {
+ "$ref": "#/definitions/ServiceManifestName",
+ "description": "The name of service manifest that specified this code package."
+ },
+ "ServicePackageActivationId": {
+ "$ref": "#/definitions/ServicePackageActivationId",
+ "description": "The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service\nis 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId\nis always an empty string."
+ },
+ "HostType": {
+ "$ref": "#/definitions/HostType",
+ "description": "Specifies the type of host for main entry point of a code package as specified in service manifest."
+ },
+ "HostIsolationMode": {
+ "$ref": "#/definitions/HostIsolationMode",
+ "description": "Specifies the isolation mode of main entry point of a code package when it's host type is ContainerHost. This is specified as part of container host policies in application manifest while importing service manifest."
+ },
+ "Status": {
+ "$ref": "#/definitions/DeploymentStatus",
+ "description": "Specifies the status of a deployed application or service package on a Service Fabric node."
+ },
+ "RunFrequencyInterval": {
+ "type": "string",
+ "description": "The interval at which code package is run. This is used for periodic code package."
+ },
+ "SetupEntryPoint": {
+ "$ref": "#/definitions/CodePackageEntryPoint",
+ "description": "Information about setup or main entry point of a code package deployed on a Service Fabric node."
+ },
+ "MainEntryPoint": {
+ "$ref": "#/definitions/CodePackageEntryPoint",
+ "description": "Information about setup or main entry point of a code package deployed on a Service Fabric node."
+ }
+ }
+ },
+ "DeploymentStatus": {
+ "type": "string",
+ "description": "Specifies the status of a deployed application or service package on a Service Fabric node.",
+ "enum": [
+ "Invalid",
+ "Downloading",
+ "Activating",
+ "Active",
+ "Upgrading",
+ "Deactivating",
+ "RanToCompletion",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "DeploymentStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates status of the application or service package is not known or invalid. The value is 0."
+ },
+ {
+ "value": "Downloading",
+ "description": "Indicates the application or service package is being downloaded to the node from the ImageStore. The value is 1."
+ },
+ {
+ "value": "Activating",
+ "description": "Indicates the application or service package is being activated. The value is 2."
+ },
+ {
+ "value": "Active",
+ "description": "Indicates the application or service package is active the node. The value is 3."
+ },
+ {
+ "value": "Upgrading",
+ "description": "Indicates the application or service package is being upgraded. The value is 4."
+ },
+ {
+ "value": "Deactivating",
+ "description": "Indicates the application or service package is being deactivated. The value is 5."
+ },
+ {
+ "value": "RanToCompletion",
+ "description": "Indicates the application or service package has ran to completion successfully. The value is 6."
+ },
+ {
+ "value": "Failed",
+ "description": "Indicates the application or service package has failed to run to completion. The value is 7."
+ }
+ ]
+ }
+ },
+ "EntryPointStatus": {
+ "type": "string",
+ "description": "Specifies the status of the code package entry point deployed on a Service Fabric node.",
+ "enum": [
+ "Invalid",
+ "Pending",
+ "Starting",
+ "Started",
+ "Stopping",
+ "Stopped"
+ ],
+ "x-ms-enum": {
+ "name": "EntryPointStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates status of entry point is not known or invalid. The value is 0."
+ },
+ {
+ "value": "Pending",
+ "description": "Indicates the entry point is scheduled to be started. The value is 1."
+ },
+ {
+ "value": "Starting",
+ "description": "Indicates the entry point is being started. The value is 2."
+ },
+ {
+ "value": "Started",
+ "description": "Indicates the entry point was started successfully and is running. The value is 3."
+ },
+ {
+ "value": "Stopping",
+ "description": "Indicates the entry point is being stopped. The value is 4."
+ },
+ {
+ "value": "Stopped",
+ "description": "Indicates the entry point is not running. The value is 5."
+ }
+ ]
+ }
+ },
+ "CodePackageEntryPoint": {
+ "description": "Information about setup or main entry point of a code package deployed on a Service Fabric node.",
+ "properties": {
+ "EntryPointLocation": {
+ "type": "string",
+ "description": "The location of entry point executable on the node."
+ },
+ "ProcessId": {
+ "type": "string",
+ "description": "The process ID of the entry point."
+ },
+ "RunAsUserName": {
+ "type": "string",
+ "description": "The user name under which entry point executable is run on the node."
+ },
+ "CodePackageEntryPointStatistics": {
+ "$ref": "#/definitions/CodePackageEntryPointStatistics",
+ "description": "Statistics about setup or main entry point of a code package deployed on a Service Fabric node."
+ },
+ "Status": {
+ "$ref": "#/definitions/EntryPointStatus",
+ "description": "Specifies the status of the code package entry point deployed on a Service Fabric node."
+ },
+ "NextActivationTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time (in UTC) when the entry point executable will be run next."
+ },
+ "InstanceId": {
+ "$ref": "#/definitions/CodePackageInstanceId",
+ "description": "The instance ID for current running entry point. For a code package setup entry point (if specified) runs first and after it finishes main entry point is started. Each time entry point executable is run, its instance id will change."
+ }
+ }
+ },
+ "Chaos": {
+ "description": "Contains a description of Chaos.",
+ "properties": {
+ "ChaosParameters": {
+ "$ref": "#/definitions/ChaosParameters",
+ "description": "If Chaos is running, these are the parameters Chaos is running with."
+ },
+ "Status": {
+ "$ref": "#/definitions/ChaosStatus",
+ "description": "Current status of the Chaos run."
+ },
+ "ScheduleStatus": {
+ "$ref": "#/definitions/ChaosScheduleStatus",
+ "description": "Current status of the schedule."
+ }
+ }
+ },
+ "ChaosStatus": {
+ "type": "string",
+ "description": "Current status of the Chaos run.",
+ "enum": [
+ "Invalid",
+ "Running",
+ "Stopped"
+ ],
+ "x-ms-enum": {
+ "name": "ChaosStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid Chaos status. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Running",
+ "description": "Indicates that Chaos is not stopped. The value is one."
+ },
+ {
+ "value": "Stopped",
+ "description": "Indicates that Chaos is not scheduling further faults. The value is two."
+ }
+ ]
+ }
+ },
+ "ChaosScheduleStatus": {
+ "type": "string",
+ "description": "Current status of the schedule.",
+ "enum": [
+ "Invalid",
+ "Stopped",
+ "Active",
+ "Expired",
+ "Pending"
+ ],
+ "x-ms-enum": {
+ "name": "ChaosScheduleStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid Chaos Schedule status. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Stopped",
+ "description": "Indicates that the schedule is stopped and not being used to schedule runs of chaos. The value is one."
+ },
+ {
+ "value": "Active",
+ "description": "Indicates that the schedule is active and is being used to schedule runs of Chaos. The value is two."
+ },
+ {
+ "value": "Expired",
+ "description": "Indicates that the schedule is expired and will no longer be used to schedule runs of Chaos. The value is three."
+ },
+ {
+ "value": "Pending",
+ "description": "Indicates that the schedule is pending and is not yet being used to schedule runs of Chaos but will be used when the start time is passed. The value is four."
+ }
+ ]
+ }
+ },
+ "ChaosContextMap": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Describes a map that contains a collection of ChaosContextMapItem's."
+ },
+ "ChaosContext": {
+ "description": "Describes a map, which is a collection of (string, string) type key-value pairs. The map can be used to record information about\nthe Chaos run. There cannot be more than 100 such pairs and each string (key or value) can be at most 4095 characters long.\nThis map is set by the starter of the Chaos run to optionally store the context about the specific run.",
+ "properties": {
+ "Map": {
+ "$ref": "#/definitions/ChaosContextMap",
+ "description": "Describes a map that contains a collection of ChaosContextMapItem's."
+ }
+ }
+ },
+ "ChaosParameters": {
+ "description": "Defines all the parameters to configure a Chaos run.",
+ "properties": {
+ "TimeToRunInSeconds": {
+ "type": "string",
+ "description": "Total time (in seconds) for which Chaos will run before automatically stopping. The maximum allowed value is 4,294,967,295 (System.UInt32.MaxValue).",
+ "default": "4294967295"
+ },
+ "MaxClusterStabilizationTimeoutInSeconds": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The maximum amount of time to wait for all cluster entities to become stable and healthy. Chaos executes in iterations and at the start of each iteration it validates the health of cluster entities.\nDuring validation if a cluster entity is not stable and healthy within MaxClusterStabilizationTimeoutInSeconds, Chaos generates a validation failed event.",
+ "default": 60,
+ "minimum": 0,
+ "maximum": 4294967295
+ },
+ "MaxConcurrentFaults": {
+ "type": "integer",
+ "format": "int64",
+ "description": "MaxConcurrentFaults is the maximum number of concurrent faults induced per iteration.\nChaos executes in iterations and two consecutive iterations are separated by a validation phase.\nThe higher the concurrency, the more aggressive the injection of faults, leading to inducing more complex series of states to uncover bugs.\nThe recommendation is to start with a value of 2 or 3 and to exercise caution while moving up.",
+ "default": 1,
+ "minimum": 0,
+ "maximum": 4294967295
+ },
+ "EnableMoveReplicaFaults": {
+ "type": "boolean",
+ "description": "Enables or disables the move primary and move secondary faults.",
+ "default": true
+ },
+ "WaitTimeBetweenFaultsInSeconds": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Wait time (in seconds) between consecutive faults within a single iteration.\nThe larger the value, the lower the overlapping between faults and the simpler the sequence of state transitions that the cluster goes through.\nThe recommendation is to start with a value between 1 and 5 and exercise caution while moving up.",
+ "default": 20,
+ "minimum": 0,
+ "maximum": 4294967295
+ },
+ "WaitTimeBetweenIterationsInSeconds": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time-separation (in seconds) between two consecutive iterations of Chaos.\nThe larger the value, the lower the fault injection rate.",
+ "default": 30,
+ "minimum": 0,
+ "maximum": 4294967295
+ },
+ "ClusterHealthPolicy": {
+ "$ref": "#/definitions/ClusterHealthPolicy",
+ "description": "Passed-in cluster health policy is used to validate health of the cluster in between Chaos iterations. If the cluster health is in error or if an unexpected exception happens during fault execution--to provide the cluster with some time to recuperate--Chaos will wait for 30 minutes before the next health-check."
+ },
+ "Context": {
+ "$ref": "#/definitions/ChaosContext",
+ "description": "Describes a map, which is a collection of (string, string) type key-value pairs. The map can be used to record information about\nthe Chaos run. There cannot be more than 100 such pairs and each string (key or value) can be at most 4095 characters long.\nThis map is set by the starter of the Chaos run to optionally store the context about the specific run."
+ },
+ "ChaosTargetFilter": {
+ "$ref": "#/definitions/ChaosTargetFilter",
+ "description": "List of cluster entities to target for Chaos faults.\nThis filter can be used to target Chaos faults only to certain node types or only to certain application instances. If ChaosTargetFilter is not used, Chaos faults all cluster entities.\nIf ChaosTargetFilter is used, Chaos faults only the entities that meet the ChaosTargetFilter specification."
+ }
+ }
+ },
+ "ChaosParametersDictionaryItem": {
+ "description": "Defines an item in ChaosParametersDictionary of the Chaos Schedule.",
+ "required": [
+ "Key",
+ "Value"
+ ],
+ "properties": {
+ "Key": {
+ "type": "string",
+ "description": "The key identifying the Chaos Parameter in the dictionary. This key is referenced by Chaos Schedule Jobs."
+ },
+ "Value": {
+ "$ref": "#/definitions/ChaosParameters",
+ "description": "Defines all the parameters to configure a Chaos run."
+ }
+ }
+ },
+ "ChaosEvent": {
+ "discriminator": "Kind",
+ "description": "Represents an event generated during a Chaos run.",
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/ChaosEventKind",
+ "description": "The kind of Chaos event."
+ },
+ "TimeStampUtc": {
+ "type": "string",
+ "description": "The UTC timestamp when this Chaos event was generated.",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "Kind",
+ "TimeStampUtc"
+ ]
+ },
+ "ChaosEventWrapper": {
+ "description": "Wrapper object for Chaos event.",
+ "properties": {
+ "ChaosEvent": {
+ "$ref": "#/definitions/ChaosEvent",
+ "description": "Represents an event generated during a Chaos run."
+ }
+ }
+ },
+ "ChaosEventKind": {
+ "type": "string",
+ "description": "The kind of Chaos event.",
+ "enum": [
+ "Invalid",
+ "Started",
+ "ExecutingFaults",
+ "Waiting",
+ "ValidationFailed",
+ "TestError",
+ "Stopped"
+ ],
+ "x-ms-enum": {
+ "name": "ChaosEventKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid Chaos event kind. All Service Fabric enumerations have the invalid type."
+ },
+ {
+ "value": "Started",
+ "description": "Indicates a Chaos event that gets generated when Chaos is started."
+ },
+ {
+ "value": "ExecutingFaults",
+ "description": "Indicates a Chaos event that gets generated when Chaos has decided on the faults for an iteration. This Chaos event contains the details of the faults as a list of strings."
+ },
+ {
+ "value": "Waiting",
+ "description": "Indicates a Chaos event that gets generated when Chaos is waiting for the cluster to become ready for faulting, for example, Chaos may be waiting for the on-going upgrade to finish."
+ },
+ {
+ "value": "ValidationFailed",
+ "description": "Indicates a Chaos event that gets generated when the cluster entities do not become stable and healthy within ChaosParameters.MaxClusterStabilizationTimeoutInSeconds."
+ },
+ {
+ "value": "TestError",
+ "description": "Indicates a Chaos event that gets generated when an unexpected event has occurred in the Chaos engine, for example, due to the cluster snapshot being inconsistent, while faulting a faultable entity Chaos found that the entity was already faulted."
+ },
+ {
+ "value": "Stopped",
+ "description": "Indicates a Chaos event that gets generated when Chaos stops because either the user issued a stop or the time to run was up."
+ }
+ ]
+ }
+ },
+ "ChaosEventsSegment": {
+ "description": "Contains the list of Chaos events and the continuation token to get the next segment.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "History": {
+ "$ref": "#/definitions/ChaosEventHistory",
+ "description": "List of Chaos events that meet the user-supplied criteria."
+ }
+ }
+ },
+ "ChaosScheduleDescription": {
+ "description": "Defines the Chaos Schedule used by Chaos and the version of the Chaos Schedule. The version value wraps back to 0 after surpassing 2,147,483,647.",
+ "properties": {
+ "Version": {
+ "description": "The version number of the Schedule.",
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0
+ },
+ "Schedule": {
+ "$ref": "#/definitions/ChaosSchedule",
+ "description": "Defines the schedule used by Chaos."
+ }
+ }
+ },
+ "ChaosSchedule": {
+ "description": "Defines the schedule used by Chaos.",
+ "properties": {
+ "StartDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The date and time Chaos will start using this schedule.",
+ "default": "1601-01-01T00:00:00Z"
+ },
+ "ExpiryDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The date and time Chaos will continue to use this schedule until.",
+ "default": "9999-12-31T23:59:59.999Z"
+ },
+ "ChaosParametersDictionary": {
+ "type": "array",
+ "description": "A mapping of string names to Chaos Parameters to be referenced by Chaos Schedule Jobs.",
+ "items": {
+ "$ref": "#/definitions/ChaosParametersDictionaryItem"
+ }
+ },
+ "Jobs": {
+ "description": "A list of all Chaos Schedule Jobs that will be automated by the schedule.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChaosScheduleJob"
+ }
+ }
+ }
+ },
+ "ChaosScheduleJob": {
+ "description": "Defines a repetition rule and parameters of Chaos to be used with the Chaos Schedule.",
+ "properties": {
+ "ChaosParameters": {
+ "type": "string",
+ "description": "A reference to which Chaos Parameters of the Chaos Schedule to use."
+ },
+ "Days": {
+ "$ref": "#/definitions/ChaosScheduleJobActiveDaysOfWeek",
+ "description": "Defines the days of the week that a Chaos Schedule Job will run for."
+ },
+ "Times": {
+ "description": "A list of Time Ranges that specify when during active days that this job will run. The times are interpreted as UTC.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TimeRange"
+ }
+ }
+ }
+ },
+ "ChaosScheduleJobActiveDaysOfWeek": {
+ "description": "Defines the days of the week that a Chaos Schedule Job will run for.",
+ "properties": {
+ "Sunday": {
+ "type": "boolean",
+ "description": "Indicates if the Chaos Schedule Job will run on Sunday",
+ "default": false
+ },
+ "Monday": {
+ "type": "boolean",
+ "description": "Indicates if the Chaos Schedule Job will run on Monday",
+ "default": false
+ },
+ "Tuesday": {
+ "type": "boolean",
+ "description": "Indicates if the Chaos Schedule Job will run on Tuesday",
+ "default": false
+ },
+ "Wednesday": {
+ "type": "boolean",
+ "description": "Indicates if the Chaos Schedule Job will run on Wednesday",
+ "default": false
+ },
+ "Thursday": {
+ "type": "boolean",
+ "description": "Indicates if the Chaos Schedule Job will run on Thursday",
+ "default": false
+ },
+ "Friday": {
+ "type": "boolean",
+ "description": "Indicates if the Chaos Schedule Job will run on Friday",
+ "default": false
+ },
+ "Saturday": {
+ "type": "boolean",
+ "description": "Indicates if the Chaos Schedule Job will run on Saturday",
+ "default": false
+ }
+ }
+ },
+ "TimeRange": {
+ "description": "Defines a time range in a 24 hour day specified by a start and end time.",
+ "properties": {
+ "StartTime": {
+ "$ref": "#/definitions/TimeOfDay",
+ "description": "Defines an hour and minute of the day specified in 24 hour time."
+ },
+ "EndTime": {
+ "$ref": "#/definitions/TimeOfDay",
+ "description": "Defines an hour and minute of the day specified in 24 hour time."
+ }
+ }
+ },
+ "TimeOfDay": {
+ "description": "Defines an hour and minute of the day specified in 24 hour time.",
+ "properties": {
+ "Hour": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Represents the hour of the day. Value must be between 0 and 23 inclusive.",
+ "minimum": 0,
+ "maximum": 23
+ },
+ "Minute": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Represents the minute of the hour. Value must be between 0 to 59 inclusive.",
+ "minimum": 0,
+ "maximum": 59
+ }
+ }
+ },
+ "ExecutingFaultsChaosEvent": {
+ "description": "Describes a Chaos event that gets generated when Chaos has decided on the faults for an iteration. This Chaos event contains the details of the faults as a list of strings.",
+ "x-ms-discriminator-value": "ExecutingFaults",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ChaosEvent"
+ }
+ ],
+ "properties": {
+ "Faults": {
+ "type": "array",
+ "description": "List of string description of the faults that Chaos decided to execute in an iteration.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "StartedChaosEvent": {
+ "description": "Describes a Chaos event that gets generated when Chaos is started.",
+ "x-ms-discriminator-value": "Started",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ChaosEvent"
+ }
+ ],
+ "properties": {
+ "ChaosParameters": {
+ "$ref": "#/definitions/ChaosParameters",
+ "description": "Defines all the parameters to configure a Chaos run."
+ }
+ }
+ },
+ "StoppedChaosEvent": {
+ "description": "Describes a Chaos event that gets generated when Chaos stops because either the user issued a stop or the time to run was up.",
+ "x-ms-discriminator-value": "Stopped",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ChaosEvent"
+ }
+ ],
+ "properties": {
+ "Reason": {
+ "type": "string",
+ "description": "Describes why Chaos stopped. Chaos can stop because of StopChaos API call or the timeToRun provided in ChaosParameters is over."
+ }
+ }
+ },
+ "TestErrorChaosEvent": {
+ "description": "Describes a Chaos event that gets generated when an unexpected event occurs in the Chaos engine.\nFor example, due to the cluster snapshot being inconsistent, while faulting an entity, Chaos found that the entity was already faulted -- which would be an unexpected event.",
+ "x-ms-discriminator-value": "TestError",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ChaosEvent"
+ }
+ ],
+ "properties": {
+ "Reason": {
+ "type": "string",
+ "description": "Describes why TestErrorChaosEvent was generated. For example, Chaos tries to fault a partition but finds that the partition is no longer fault tolerant, then a TestErrorEvent gets generated with the reason stating that the partition is not fault tolerant."
+ }
+ }
+ },
+ "ValidationFailedChaosEvent": {
+ "description": "Chaos event corresponding to a failure during validation.",
+ "x-ms-discriminator-value": "ValidationFailed",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ChaosEvent"
+ }
+ ],
+ "properties": {
+ "Reason": {
+ "type": "string",
+ "description": "Describes why the ValidationFailedChaosEvent was generated. This may happen because more than MaxPercentUnhealthyNodes are unhealthy for more than MaxClusterStabilizationTimeout. This reason will be in the Reason property of the ValidationFailedChaosEvent as a string."
+ }
+ }
+ },
+ "WaitingChaosEvent": {
+ "description": "Describes a Chaos event that gets generated when Chaos is waiting for the cluster to become ready for faulting, for example, Chaos may be waiting for the on-going upgrade to finish.",
+ "x-ms-discriminator-value": "Waiting",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ChaosEvent"
+ }
+ ],
+ "properties": {
+ "Reason": {
+ "type": "string",
+ "description": "Describes why the WaitingChaosEvent was generated, for example, due to a cluster upgrade."
+ }
+ }
+ },
+ "ChaosEventHistory": {
+ "type": "array",
+ "description": "An list of Chaos events that were generated during the time range passed into the GetChaosReport API call.",
+ "items": {
+ "$ref": "#/definitions/ChaosEventWrapper"
+ }
+ },
+ "ChaosTargetFilter": {
+ "description": "Defines all filters for targeted Chaos faults, for example, faulting only certain node types or faulting only certain applications.\nIf ChaosTargetFilter is not used, Chaos faults all cluster entities. If ChaosTargetFilter is used, Chaos faults only the entities that meet the ChaosTargetFilter\nspecification. NodeTypeInclusionList and ApplicationInclusionList allow a union semantics only. It is not possible to specify an intersection\nof NodeTypeInclusionList and ApplicationInclusionList. For example, it is not possible to specify \"fault this application only when it is on that node type.\"\nOnce an entity is included in either NodeTypeInclusionList or ApplicationInclusionList, that entity cannot be excluded using ChaosTargetFilter. Even if\napplicationX does not appear in ApplicationInclusionList, in some Chaos iteration applicationX can be faulted because it happens to be on a node of nodeTypeY that is included\nin NodeTypeInclusionList. If both NodeTypeInclusionList and ApplicationInclusionList are null or empty, an ArgumentException is thrown.",
+ "properties": {
+ "NodeTypeInclusionList": {
+ "type": "array",
+ "description": "A list of node types to include in Chaos faults.\nAll types of faults (restart node, restart code package, remove replica, restart replica, move primary, and move secondary) are enabled for the nodes of these node types.\nIf a node type (say NodeTypeX) does not appear in the NodeTypeInclusionList, then node level faults (like NodeRestart) will never be enabled for the nodes of\nNodeTypeX, but code package and replica faults can still be enabled for NodeTypeX if an application in the ApplicationInclusionList.\nhappens to reside on a node of NodeTypeX.\nAt most 100 node type names can be included in this list, to increase this number, a config upgrade is required for MaxNumberOfNodeTypesInChaosEntityFilter configuration.",
+ "items": {
+ "$ref": "#/definitions/NodeType"
+ }
+ },
+ "ApplicationInclusionList": {
+ "type": "array",
+ "description": "A list of application URIs to include in Chaos faults.\nAll replicas belonging to services of these applications are amenable to replica faults (restart replica, remove replica, move primary, and move secondary) by Chaos.\nChaos may restart a code package only if the code package hosts replicas of these applications only.\nIf an application does not appear in this list, it can still be faulted in some Chaos iteration if the application ends up on a node of a node type that is included in NodeTypeInclusionList.\nHowever, if applicationX is tied to nodeTypeY through placement constraints and applicationX is absent from ApplicationInclusionList and nodeTypeY is absent from NodeTypeInclusionList, then applicationX will never be faulted.\nAt most 1000 application names can be included in this list, to increase this number, a config upgrade is required for MaxNumberOfApplicationsInChaosEntityFilter configuration.",
+ "items": {
+ "$ref": "#/definitions/ApplicationName"
+ }
+ }
+ }
+ },
+ "ApplicationTypeVersion": {
+ "type": "string",
+ "description": "The version of the application type as defined in the application manifest."
+ },
+ "ApplicationCapacityDescription": {
+ "description": "Describes capacity information for services of this application. This description can be used for describing the following.\n- Reserving the capacity for the services on the nodes\n- Limiting the total number of nodes that services of this application can run on\n- Limiting the custom capacity metrics to limit the total consumption of this metric by the services of this application",
+ "properties": {
+ "MinimumNodes": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The minimum number of nodes where Service Fabric will reserve capacity for this application. Note that this does not mean that the services of this application will be placed on all of those nodes. If this property is set to zero, no capacity will be reserved. The value of this property cannot be more than the value of the MaximumNodes property.",
+ "minimum": 0
+ },
+ "MaximumNodes": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The maximum number of nodes where Service Fabric will reserve capacity for this application. Note that this does not mean that the services of this application will be placed on all of those nodes. By default, the value of this property is zero and it means that the services can be placed on any node.",
+ "minimum": 0,
+ "default": 0
+ },
+ "ApplicationMetrics": {
+ "$ref": "#/definitions/ApplicationMetricDescriptionList",
+ "description": "List of application capacity metric description."
+ }
+ }
+ },
+ "ApplicationDescription": {
+ "description": "Describes a Service Fabric application.",
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "TypeName": {
+ "$ref": "#/definitions/ApplicationTypeName",
+ "description": "The application type name as defined in the application manifest."
+ },
+ "TypeVersion": {
+ "$ref": "#/definitions/ApplicationTypeVersion",
+ "description": "The version of the application type as defined in the application manifest."
+ },
+ "ParameterList": {
+ "$ref": "#/definitions/ApplicationParameterList",
+ "description": "List of application parameters with overridden values from their default values specified in the application manifest."
+ },
+ "ApplicationCapacity": {
+ "$ref": "#/definitions/ApplicationCapacityDescription",
+ "description": "Describes capacity information for services of this application. This description can be used for describing the following.\n- Reserving the capacity for the services on the nodes\n- Limiting the total number of nodes that services of this application can run on\n- Limiting the custom capacity metrics to limit the total consumption of this metric by the services of this application"
+ },
+ "ManagedApplicationIdentity": {
+ "$ref": "#/definitions/ManagedApplicationIdentityDescription",
+ "description": "Managed application identity description."
+ }
+ },
+ "required": [
+ "Name",
+ "TypeName",
+ "TypeVersion"
+ ]
+ },
+ "ApplicationMetricDescription": {
+ "description": "Describes capacity information for a custom resource balancing metric. This can be used to limit the total consumption of this metric by the services of this application.",
+ "properties": {
+ "Name": {
+ "type": "string",
+ "description": "The name of the metric."
+ },
+ "MaximumCapacity": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The maximum node capacity for Service Fabric application.\nThis is the maximum Load for an instance of this application on a single node. Even if the capacity of node is greater than this value, Service Fabric will limit the total load of services within the application on each node to this value.\nIf set to zero, capacity for this metric is unlimited on each node.\nWhen creating a new application with application capacity defined, the product of MaximumNodes and this value must always be smaller than or equal to TotalApplicationCapacity.\nWhen updating existing application with application capacity, the product of MaximumNodes and this value must always be smaller than or equal to TotalApplicationCapacity."
+ },
+ "ReservationCapacity": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The node reservation capacity for Service Fabric application.\nThis is the amount of load which is reserved on nodes which have instances of this application.\nIf MinimumNodes is specified, then the product of these values will be the capacity reserved in the cluster for the application.\nIf set to zero, no capacity is reserved for this metric.\nWhen setting application capacity or when updating application capacity; this value must be smaller than or equal to MaximumCapacity for each metric."
+ },
+ "TotalApplicationCapacity": {
+ "description": "The total metric capacity for Service Fabric application.\nThis is the total metric capacity for this application in the cluster. Service Fabric will try to limit the sum of loads of services within the application to this value.\nWhen creating a new application with application capacity defined, the product of MaximumNodes and MaximumCapacity must always be smaller than or equal to this value.",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "ApplicationMetricDescriptionList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationMetricDescription"
+ },
+ "description": "List of application capacity metric description."
+ },
+ "ApplicationLoadMetricInformation": {
+ "description": "Describes load information for a custom resource balancing metric. This can be used to limit the total consumption of this metric by the services of this application.",
+ "properties": {
+ "Name": {
+ "type": "string",
+ "description": "The name of the metric."
+ },
+ "ReservationCapacity": {
+ "type": "integer",
+ "format": "int64",
+ "description": "This is the capacity reserved in the cluster for the application.\nIt's the product of NodeReservationCapacity and MinimumNodes.\nIf set to zero, no capacity is reserved for this metric.\nWhen setting application capacity or when updating application capacity this value must be smaller than or equal to MaximumCapacity for each metric."
+ },
+ "ApplicationCapacity": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Total capacity for this metric in this application instance."
+ },
+ "ApplicationLoad": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Current load for this metric in this application instance."
+ }
+ }
+ },
+ "ApplicationLoadMetricInformationList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationLoadMetricInformation"
+ },
+ "description": "List of application load metric information."
+ },
+ "ComposeDeploymentStatus": {
+ "type": "string",
+ "description": "The status of the compose deployment.",
+ "enum": [
+ "Invalid",
+ "Provisioning",
+ "Creating",
+ "Ready",
+ "Unprovisioning",
+ "Deleting",
+ "Failed",
+ "Upgrading"
+ ],
+ "x-ms-enum": {
+ "name": "ComposeDeploymentStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates that the compose deployment status is invalid. The value is zero."
+ },
+ {
+ "value": "Provisioning",
+ "description": "Indicates that the compose deployment is being provisioned in background. The value is 1."
+ },
+ {
+ "value": "Creating",
+ "description": "Indicates that the compose deployment is being created in background. The value is 2."
+ },
+ {
+ "value": "Ready",
+ "description": "Indicates that the compose deployment has been successfully created or upgraded. The value is 3."
+ },
+ {
+ "value": "Unprovisioning",
+ "description": "Indicates that the compose deployment is being unprovisioned in background. The value is 4."
+ },
+ {
+ "value": "Deleting",
+ "description": "Indicates that the compose deployment is being deleted in background. The value is 5."
+ },
+ {
+ "value": "Failed",
+ "description": "Indicates that the compose deployment was terminated due to persistent failures. The value is 6."
+ },
+ {
+ "value": "Upgrading",
+ "description": "Indicates that the compose deployment is being upgraded in the background. The value is 7."
+ }
+ ]
+ }
+ },
+ "ComposeDeploymentStatusInfo": {
+ "description": "Information about a Service Fabric compose deployment.",
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/DeploymentName",
+ "description": "The name of the deployment."
+ },
+ "ApplicationName": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "Status": {
+ "$ref": "#/definitions/ComposeDeploymentStatus",
+ "description": "The status of the compose deployment."
+ },
+ "StatusDetails": {
+ "description": "The status details of compose deployment including failure message.",
+ "type": "string"
+ }
+ }
+ },
+ "ComposeDeploymentUpgradeDescription": {
+ "description": "Describes the parameters for a compose deployment upgrade.",
+ "properties": {
+ "DeploymentName": {
+ "$ref": "#/definitions/DeploymentName",
+ "description": "The name of the deployment."
+ },
+ "ComposeFileContent": {
+ "type": "string",
+ "description": "The content of the compose file that describes the deployment to create."
+ },
+ "RegistryCredential": {
+ "$ref": "#/definitions/RegistryCredential",
+ "description": "Credential information to connect to container registry."
+ },
+ "UpgradeKind": {
+ "$ref": "#/definitions/UpgradeKind",
+ "description": "The kind of upgrade out of the following possible values."
+ },
+ "RollingUpgradeMode": {
+ "$ref": "#/definitions/UpgradeMode",
+ "description": "The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored."
+ },
+ "UpgradeReplicaSetCheckTimeoutInSeconds": {
+ "$ref": "#/definitions/UpgradeReplicaSetCheckTimeout",
+ "description": "The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer)."
+ },
+ "ForceRestart": {
+ "$ref": "#/definitions/ForceRestart",
+ "description": "If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data)."
+ },
+ "MonitoringPolicy": {
+ "$ref": "#/definitions/MonitoringPolicyDescription",
+ "description": "Describes the parameters for monitoring an upgrade in Monitored mode."
+ },
+ "ApplicationHealthPolicy": {
+ "$ref": "#/definitions/ApplicationHealthPolicy",
+ "description": "Defines a health policy used to evaluate the health of an application or one of its children entities."
+ }
+ },
+ "required": [
+ "DeploymentName",
+ "ComposeFileContent",
+ "UpgradeKind"
+ ]
+ },
+ "ComposeDeploymentUpgradeProgressInfo": {
+ "description": "Describes the parameters for a compose deployment upgrade.",
+ "properties": {
+ "DeploymentName": {
+ "$ref": "#/definitions/TargetDeploymentName",
+ "description": "The name of the target deployment."
+ },
+ "ApplicationName": {
+ "$ref": "#/definitions/TargetApplicationName",
+ "description": "The name of the target application, including the 'fabric:' URI scheme."
+ },
+ "UpgradeState": {
+ "$ref": "#/definitions/ComposeDeploymentUpgradeState",
+ "description": "The state of the compose deployment upgrade."
+ },
+ "UpgradeStatusDetails": {
+ "type": "string",
+ "description": "Additional detailed information about the status of the pending upgrade."
+ },
+ "UpgradeKind": {
+ "$ref": "#/definitions/UpgradeKind",
+ "description": "The kind of upgrade out of the following possible values."
+ },
+ "RollingUpgradeMode": {
+ "$ref": "#/definitions/UpgradeMode",
+ "description": "The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored."
+ },
+ "ForceRestart": {
+ "$ref": "#/definitions/ForceRestart",
+ "description": "If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data)."
+ },
+ "UpgradeReplicaSetCheckTimeoutInSeconds": {
+ "$ref": "#/definitions/UpgradeReplicaSetCheckTimeout",
+ "description": "The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer)."
+ },
+ "MonitoringPolicy": {
+ "$ref": "#/definitions/MonitoringPolicyDescription",
+ "description": "Describes the parameters for monitoring an upgrade in Monitored mode."
+ },
+ "ApplicationHealthPolicy": {
+ "$ref": "#/definitions/ApplicationHealthPolicy",
+ "description": "Defines a health policy used to evaluate the health of an application or one of its children entities."
+ },
+ "TargetApplicationTypeVersion": {
+ "$ref": "#/definitions/TargetApplicationTypeVersion",
+ "description": "The target application type version (found in the application manifest) for the application upgrade."
+ },
+ "UpgradeDuration": {
+ "$ref": "#/definitions/UpgradeDuration",
+ "description": "The estimated amount of time that the overall upgrade elapsed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds."
+ },
+ "CurrentUpgradeDomainDuration": {
+ "$ref": "#/definitions/CurrentUpgradeDomainDuration",
+ "description": "The estimated amount of time spent processing current Upgrade Domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds."
+ },
+ "ApplicationUnhealthyEvaluations": {
+ "$ref": "#/definitions/ApplicationUnhealthyEvaluations",
+ "description": "List of health evaluations that resulted in the current aggregated health state."
+ },
+ "CurrentUpgradeDomainProgress": {
+ "$ref": "#/definitions/CurrentUpgradeDomainProgressInfo",
+ "description": "Information about the current in-progress upgrade domain."
+ },
+ "StartTimestampUtc": {
+ "type": "string",
+ "description": "The estimated UTC datetime when the upgrade started."
+ },
+ "FailureTimestampUtc": {
+ "type": "string",
+ "description": "The estimated UTC datetime when the upgrade failed and FailureAction was executed."
+ },
+ "FailureReason": {
+ "$ref": "#/definitions/FailureReason",
+ "description": "The cause of an upgrade failure that resulted in FailureAction being executed."
+ },
+ "UpgradeDomainProgressAtFailure": {
+ "$ref": "#/definitions/FailureUpgradeDomainProgressInfo",
+ "description": "Information about the upgrade domain progress at the time of upgrade failure."
+ },
+ "ApplicationUpgradeStatusDetails": {
+ "type": "string",
+ "description": "Additional details of application upgrade including failure message."
+ }
+ }
+ },
+ "ComposeDeploymentUpgradeState": {
+ "type": "string",
+ "description": "The state of the compose deployment upgrade.",
+ "enum": [
+ "Invalid",
+ "ProvisioningTarget",
+ "RollingForwardInProgress",
+ "RollingForwardPending",
+ "UnprovisioningCurrent",
+ "RollingForwardCompleted",
+ "RollingBackInProgress",
+ "UnprovisioningTarget",
+ "RollingBackCompleted",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "ComposeDeploymentUpgradeState",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the upgrade state is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "ProvisioningTarget",
+ "description": "The upgrade is in the progress of provisioning target application type version. The value is 1."
+ },
+ {
+ "value": "RollingForwardInProgress",
+ "description": "The upgrade is rolling forward to the target version but is not complete yet. The value is 2."
+ },
+ {
+ "value": "RollingForwardPending",
+ "description": "The current upgrade domain has finished upgrading. The overall upgrade is waiting for an explicit move next request in UnmonitoredManual mode or performing health checks in Monitored mode. The value is 3"
+ },
+ {
+ "value": "UnprovisioningCurrent",
+ "description": "The upgrade is in the progress of unprovisioning current application type version and rolling forward to the target version is completed. The value is 4."
+ },
+ {
+ "value": "RollingForwardCompleted",
+ "description": "The upgrade has finished rolling forward. The value is 5."
+ },
+ {
+ "value": "RollingBackInProgress",
+ "description": "The upgrade is rolling back to the previous version but is not complete yet. The value is 6."
+ },
+ {
+ "value": "UnprovisioningTarget",
+ "description": "The upgrade is in the progress of unprovisioning target application type version and rolling back to the current version is completed. The value is 7."
+ },
+ {
+ "value": "RollingBackCompleted",
+ "description": "The upgrade has finished rolling back. The value is 8."
+ },
+ {
+ "value": "Failed",
+ "description": "The upgrade has failed and is unable to execute FailureAction. The value is 9."
+ }
+ ]
+ }
+ },
+ "PagedComposeDeploymentStatusInfoList": {
+ "description": "The list of compose deployments in the cluster. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "List of compose deployment status information.",
+ "items": {
+ "$ref": "#/definitions/ComposeDeploymentStatusInfo"
+ }
+ }
+ }
+ },
+ "CreateComposeDeploymentDescription": {
+ "description": "Defines description for creating a Service Fabric compose deployment.",
+ "properties": {
+ "DeploymentName": {
+ "$ref": "#/definitions/DeploymentName",
+ "description": "The name of the deployment."
+ },
+ "ComposeFileContent": {
+ "type": "string",
+ "description": "The content of the compose file that describes the deployment to create."
+ },
+ "RegistryCredential": {
+ "$ref": "#/definitions/RegistryCredential",
+ "description": "Credential information to connect to container registry."
+ }
+ },
+ "required": [
+ "DeploymentName",
+ "ComposeFileContent"
+ ]
+ },
+ "RegistryCredential": {
+ "description": "Credential information to connect to container registry.",
+ "properties": {
+ "RegistryUserName": {
+ "type": "string",
+ "description": "The user name to connect to container registry."
+ },
+ "RegistryPassword": {
+ "type": "string",
+ "description": "The password for supplied username to connect to container registry."
+ },
+ "PasswordEncrypted": {
+ "type": "boolean",
+ "description": "Indicates that supplied container registry password is encrypted."
+ }
+ }
+ },
+ "DeployedServicePackageInfoList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeployedServicePackageInfo"
+ },
+ "description": "List of deployed service package information."
+ },
+ "DeployedServicePackageInfo": {
+ "description": "Information about service package deployed on a Service Fabric node.",
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/ServiceManifestName",
+ "description": "The name of the service package as specified in the service manifest."
+ },
+ "Version": {
+ "type": "string",
+ "description": "The version of the service package specified in service manifest."
+ },
+ "Status": {
+ "$ref": "#/definitions/DeploymentStatus",
+ "description": "Specifies the status of a deployed application or service package on a Service Fabric node."
+ },
+ "ServicePackageActivationId": {
+ "$ref": "#/definitions/ServicePackageActivationId",
+ "description": "The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service\nis 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId\nis always an empty string."
+ }
+ }
+ },
+ "DeploymentName": {
+ "type": "string",
+ "description": "The name of the deployment."
+ },
+ "CorrelationSchemeList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceCorrelationDescription"
+ },
+ "description": "A list that describes the correlation of the service with other services."
+ },
+ "MoveCost": {
+ "type": "string",
+ "description": "Specifies the move cost for the service.",
+ "enum": [
+ "Zero",
+ "Low",
+ "Medium",
+ "High",
+ "VeryHigh"
+ ],
+ "x-ms-enum": {
+ "name": "MoveCost",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Zero",
+ "description": "Zero move cost. This value is zero."
+ },
+ {
+ "value": "Low",
+ "description": "Specifies the move cost of the service as Low. The value is 1."
+ },
+ {
+ "value": "Medium",
+ "description": "Specifies the move cost of the service as Medium. The value is 2."
+ },
+ {
+ "value": "High",
+ "description": "Specifies the move cost of the service as High. The value is 3."
+ },
+ {
+ "value": "VeryHigh",
+ "description": "Specifies the move cost of the service as VeryHigh. The value is 4."
+ }
+ ]
+ }
+ },
+ "PartitionScheme": {
+ "type": "string",
+ "description": "Enumerates the ways that a service can be partitioned.",
+ "enum": [
+ "Invalid",
+ "Singleton",
+ "UniformInt64Range",
+ "Named"
+ ],
+ "x-ms-enum": {
+ "name": "PartitionScheme",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the partition kind is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Singleton",
+ "description": "Indicates that the partition is based on string names, and is a SingletonPartitionSchemeDescription object, The value is 1."
+ },
+ {
+ "value": "UniformInt64Range",
+ "description": "Indicates that the partition is based on Int64 key ranges, and is a UniformInt64RangePartitionSchemeDescription object. The value is 2."
+ },
+ {
+ "value": "Named",
+ "description": "Indicates that the partition is based on string names, and is a NamedPartitionSchemeDescription object. The value is 3"
+ }
+ ]
+ }
+ },
+ "ServiceCorrelationDescription": {
+ "description": "Creates a particular correlation between services.",
+ "required": [
+ "Scheme",
+ "ServiceName"
+ ],
+ "properties": {
+ "Scheme": {
+ "$ref": "#/definitions/ServiceCorrelationScheme",
+ "description": "The ServiceCorrelationScheme which describes the relationship between this service and the service specified via ServiceName."
+ },
+ "ServiceName": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The name of the service that the correlation relationship is established with."
+ }
+ }
+ },
+ "ServiceCorrelationScheme": {
+ "type": "string",
+ "description": "The service correlation scheme.",
+ "enum": [
+ "Invalid",
+ "Affinity",
+ "AlignedAffinity",
+ "NonAlignedAffinity"
+ ],
+ "x-ms-enum": {
+ "name": "ServiceCorrelationScheme",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "An invalid correlation scheme. Cannot be used. The value is zero."
+ },
+ {
+ "value": "Affinity",
+ "description": "Indicates that this service has an affinity relationship with another service. Provided for backwards compatibility, consider preferring the Aligned or NonAlignedAffinity options. The value is 1."
+ },
+ {
+ "value": "AlignedAffinity",
+ "description": "Aligned affinity ensures that the primaries of the partitions of the affinitized services are collocated on the same nodes. This is the default and is the same as selecting the Affinity scheme. The value is 2."
+ },
+ {
+ "value": "NonAlignedAffinity",
+ "description": "Non-Aligned affinity guarantees that all replicas of each service will be placed on the same nodes. Unlike Aligned Affinity, this does not guarantee that replicas of particular role will be collocated. The value is 3."
+ }
+ ]
+ }
+ },
+ "ServiceLoadMetricsList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceLoadMetricDescription"
+ },
+ "description": "The service load metrics is given as an array of ServiceLoadMetricDescription objects."
+ },
+ "ServiceLoadMetricDescription": {
+ "description": "Specifies a metric to load balance a service during runtime.",
+ "required": [
+ "Name"
+ ],
+ "properties": {
+ "Name": {
+ "type": "string",
+ "description": "The name of the metric. If the service chooses to report load during runtime, the load metric name should match the name that is specified in Name exactly. Note that metric names are case-sensitive."
+ },
+ "Weight": {
+ "$ref": "#/definitions/ServiceLoadMetricWeight",
+ "description": "The service load metric relative weight, compared to other metrics configured for this service, as a number."
+ },
+ "PrimaryDefaultLoad": {
+ "type": "integer",
+ "description": "Used only for Stateful services. The default amount of load, as a number, that this service creates for this metric when it is a Primary replica."
+ },
+ "SecondaryDefaultLoad": {
+ "type": "integer",
+ "description": "Used only for Stateful services. The default amount of load, as a number, that this service creates for this metric when it is a Secondary replica."
+ },
+ "DefaultLoad": {
+ "type": "integer",
+ "description": "Used only for Stateless services. The default amount of load, as a number, that this service creates for this metric."
+ }
+ }
+ },
+ "ServiceLoadMetricWeight": {
+ "type": "string",
+ "description": "Determines the metric weight relative to the other metrics that are configured for this service. During runtime, if two metrics end up in conflict, the Cluster Resource Manager prefers the metric with the higher weight.",
+ "enum": [
+ "Zero",
+ "Low",
+ "Medium",
+ "High"
+ ],
+ "x-ms-enum": {
+ "name": "ServiceLoadMetricWeight",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Zero",
+ "description": "Disables resource balancing for this metric. This value is zero."
+ },
+ {
+ "value": "Low",
+ "description": "Specifies the metric weight of the service load as Low. The value is 1."
+ },
+ {
+ "value": "Medium",
+ "description": "Specifies the metric weight of the service load as Medium. The value is 2."
+ },
+ {
+ "value": "High",
+ "description": "Specifies the metric weight of the service load as High. The value is 3."
+ }
+ ]
+ }
+ },
+ "ServicePackageActivationMode": {
+ "type": "string",
+ "description": "The activation mode of service package to be used for a Service Fabric service. This is specified at the time of creating the Service.",
+ "enum": [
+ "SharedProcess",
+ "ExclusiveProcess"
+ ],
+ "x-ms-enum": {
+ "name": "ServicePackageActivationMode",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "SharedProcess",
+ "description": "This is the default activation mode. With this activation mode, replicas or instances from different partition(s) of service, on a given node, will share same activation of service package on a node. The value is zero."
+ },
+ {
+ "value": "ExclusiveProcess",
+ "description": "With this activation mode, each replica or instance of service, on a given node, will have its own dedicated activation of service package on a node. The value is 1."
+ }
+ ]
+ }
+ },
+ "ServicePlacementPoliciesList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServicePlacementPolicyDescription"
+ },
+ "description": "A list that describes the correlation of the service with other services."
+ },
+ "PartitionSchemeDescription": {
+ "discriminator": "PartitionScheme",
+ "description": "Describes how the service is partitioned.",
+ "required": [
+ "PartitionScheme"
+ ],
+ "properties": {
+ "PartitionScheme": {
+ "$ref": "#/definitions/PartitionScheme",
+ "description": "Specifies how the service is partitioned."
+ }
+ }
+ },
+ "NamedPartitionSchemeDescription": {
+ "description": "Describes the named partition scheme of the service.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionSchemeDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "Named",
+ "required": [
+ "Count",
+ "Names"
+ ],
+ "properties": {
+ "Count": {
+ "type": "integer",
+ "description": "The number of partitions."
+ },
+ "Names": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Array of size specified by the ‘Count’ parameter, for the names of the partitions."
+ }
+ }
+ },
+ "SingletonPartitionSchemeDescription": {
+ "description": "Describes the partition scheme of a singleton-partitioned, or non-partitioned service.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionSchemeDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "Singleton"
+ },
+ "UniformInt64RangePartitionSchemeDescription": {
+ "description": "Describes a partitioning scheme where an integer range is allocated evenly across a number of partitions.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionSchemeDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "UniformInt64Range",
+ "required": [
+ "Count",
+ "LowKey",
+ "HighKey"
+ ],
+ "properties": {
+ "Count": {
+ "type": "integer",
+ "description": "The number of partitions."
+ },
+ "LowKey": {
+ "type": "string",
+ "description": "String indicating the lower bound of the partition key range that\nshould be split between the partitions."
+ },
+ "HighKey": {
+ "type": "string",
+ "description": "String indicating the upper bound of the partition key range that\nshould be split between the partitions."
+ }
+ }
+ },
+ "ServiceDescription": {
+ "discriminator": "ServiceKind",
+ "description": "A ServiceDescription contains all of the information necessary to create a service.",
+ "required": [
+ "ServiceKind",
+ "ServiceName",
+ "ServiceTypeName",
+ "PartitionDescription"
+ ],
+ "properties": {
+ "ServiceKind": {
+ "$ref": "#/definitions/ServiceKind",
+ "description": "The service kind."
+ },
+ "ApplicationName": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "ServiceName": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The full name of the service with 'fabric:' URI scheme."
+ },
+ "ServiceTypeName": {
+ "$ref": "#/definitions/ServiceTypeName",
+ "description": "Name of the service type as specified in the service manifest."
+ },
+ "InitializationData": {
+ "$ref": "#/definitions/ByteArray",
+ "description": "The initialization data as an array of bytes. Initialization data is passed to service instances or replicas when they are created."
+ },
+ "PartitionDescription": {
+ "$ref": "#/definitions/PartitionSchemeDescription",
+ "description": "The partition description as an object."
+ },
+ "PlacementConstraints": {
+ "type": "string",
+ "description": "The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: \"NodeColor == blue)\"."
+ },
+ "CorrelationScheme": {
+ "$ref": "#/definitions/CorrelationSchemeList",
+ "description": "The correlation scheme."
+ },
+ "ServiceLoadMetrics": {
+ "$ref": "#/definitions/ServiceLoadMetricsList",
+ "description": "The service load metrics."
+ },
+ "ServicePlacementPolicies": {
+ "$ref": "#/definitions/ServicePlacementPoliciesList",
+ "description": "The service placement policies."
+ },
+ "DefaultMoveCost": {
+ "$ref": "#/definitions/MoveCost",
+ "description": "The move cost for the service."
+ },
+ "IsDefaultMoveCostSpecified": {
+ "type": "boolean",
+ "description": "Indicates if the DefaultMoveCost property is specified."
+ },
+ "ServicePackageActivationMode": {
+ "$ref": "#/definitions/ServicePackageActivationMode",
+ "description": "The activation mode of service package to be used for a service."
+ },
+ "ServiceDnsName": {
+ "type": "string",
+ "description": "The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster."
+ },
+ "ScalingPolicies": {
+ "$ref": "#/definitions/ScalingPolicyDescriptionList",
+ "description": "Scaling policies for this service."
+ }
+ }
+ },
+ "StatefulServiceDescription": {
+ "description": "Describes a stateful service.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "Stateful",
+ "required": [
+ "TargetReplicaSetSize",
+ "MinReplicaSetSize",
+ "HasPersistedState"
+ ],
+ "properties": {
+ "TargetReplicaSetSize": {
+ "type": "integer",
+ "minimum": 1,
+ "description": "The target replica set size as a number."
+ },
+ "MinReplicaSetSize": {
+ "type": "integer",
+ "minimum": 1,
+ "description": "The minimum replica set size as a number."
+ },
+ "HasPersistedState": {
+ "type": "boolean",
+ "description": "A flag indicating whether this is a persistent service which stores states on the local disk. If it is then the value of this property is true, if not it is false."
+ },
+ "Flags": {
+ "type": "integer",
+ "description": "Flags indicating whether other properties are set. Each of the associated properties corresponds to a flag, specified below, which, if set, indicate that the property is specified.\nThis property can be a combination of those flags obtained using bitwise 'OR' operator.\nFor example, if the provided value is 6 then the flags for QuorumLossWaitDuration (2) and StandByReplicaKeepDuration(4) are set.\n\n- None - Does not indicate any other properties are set. The value is zero.\n- ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is 1.\n- QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 2.\n- StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 4.\n- ServicePlacementTimeLimit - Indicates the ServicePlacementTimeLimit property is set. The value is 8.\n- DropSourceReplicaOnMove - Indicates the DropSourceReplicaOnMove property is set. The value is 16."
+ },
+ "ReplicaRestartWaitDurationSeconds": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "The duration, in seconds, between when a replica goes down and when a new replica is created."
+ },
+ "QuorumLossWaitDurationSeconds": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "The maximum duration, in seconds, for which a partition is allowed to be in a state of quorum loss."
+ },
+ "StandByReplicaKeepDurationSeconds": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "The definition on how long StandBy replicas should be maintained before being removed."
+ },
+ "ServicePlacementTimeLimitSeconds": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "The duration for which replicas can stay InBuild before reporting that build is stuck."
+ },
+ "DropSourceReplicaOnMove": {
+ "type": "boolean",
+ "description": "Indicates whether to drop source Secondary replica even if the target replica has not finished build. If desired behavior is to drop it as soon as possible the value of this property is true, if not it is false."
+ }
+ }
+ },
+ "StatelessServiceDescription": {
+ "description": "Describes a stateless service.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "Stateless",
+ "required": [
+ "InstanceCount"
+ ],
+ "properties": {
+ "InstanceCount": {
+ "type": "integer",
+ "minimum": -1,
+ "description": "The instance count."
+ },
+ "MinInstanceCount": {
+ "$ref": "#/definitions/MinInstanceCount",
+ "description": "MinInstanceCount is the minimum number of instances that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.\nThe actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).\nNote, if InstanceCount is set to -1, during MinInstanceCount computation -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service."
+ },
+ "MinInstancePercentage": {
+ "$ref": "#/definitions/MinInstancePercentage",
+ "description": "MinInstancePercentage is the minimum percentage of InstanceCount that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.\nThe actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).\nNote, if InstanceCount is set to -1, during MinInstancePercentage computation, -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service."
+ },
+ "Flags": {
+ "type": "integer",
+ "description": "Flags indicating whether other properties are set. Each of the associated properties corresponds to a flag, specified below, which, if set, indicate that the property is specified.\nThis property can be a combination of those flags obtained using bitwise 'OR' operator.\nFor example, if the provided value is 1 then the flags for InstanceCloseDelayDuration is set.\n\n- None - Does not indicate any other properties are set. The value is zero.\n- InstanceCloseDelayDuration - Indicates the InstanceCloseDelayDuration property is set. The value is 1."
+ },
+ "InstanceCloseDelayDurationSeconds": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "Duration in seconds, to wait before a stateless instance is closed, to allow the active requests to drain gracefully. This would be effective when the instance is closing during the application/cluster upgrade and disabling node.\nThe endpoint exposed on this instance is removed prior to starting the delay, which prevents new connections to this instance.\nIn addition, clients that have subscribed to service endpoint change events(https://docs.microsoft.com/dotnet/api/system.fabric.fabricclient.servicemanagementclient.registerservicenotificationfilterasync), can do\nthe following upon receiving the endpoint removal notification:\n - Stop sending new requests to this instance.\n - Close existing connections after in-flight requests have completed.\n - Connect to a different instance of the service partition for future requests.\nNote, the default value of InstanceCloseDelayDuration is 0, which indicates that there won't be any delay or removal of the endpoint prior to closing the instance."
+ }
+ }
+ },
+ "ReplicatorQueueStatus": {
+ "description": "Provides various statistics of the queue used in the service fabric replicator.\nContains information about the service fabric replicator like the replication/copy queue utilization, last acknowledgement received timestamp, etc.\nDepending on the role of the replicator, the properties in this type imply different meanings.",
+ "properties": {
+ "QueueUtilizationPercentage": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Represents the utilization of the queue. A value of 0 indicates that the queue is empty and a value of 100 indicates the queue is full."
+ },
+ "QueueMemorySize": {
+ "type": "string",
+ "description": "Represents the virtual memory consumed by the queue in bytes."
+ },
+ "FirstSequenceNumber": {
+ "type": "string",
+ "description": "On a primary replicator, this is semantically the sequence number of the operation for which all the secondary replicas have sent an acknowledgement.\nOn a secondary replicator, this is the smallest sequence number of the operation that is present in the queue."
+ },
+ "CompletedSequenceNumber": {
+ "type": "string",
+ "description": "On a primary replicator, this is semantically the highest sequence number of the operation for which all the secondary replicas have sent an acknowledgement.\nOn a secondary replicator, this is semantically the highest sequence number that has been applied to the persistent state."
+ },
+ "CommittedSequenceNumber": {
+ "type": "string",
+ "description": "On a primary replicator, this is semantically the highest sequence number of the operation for which a write quorum of the secondary replicas have sent an acknowledgement.\nOn a secondary replicator, this is semantically the highest sequence number of the in-order operation received from the primary."
+ },
+ "LastSequenceNumber": {
+ "type": "string",
+ "description": "Represents the latest sequence number of the operation that is available in the queue."
+ }
+ }
+ },
+ "ReplicatorStatus": {
+ "discriminator": "Kind",
+ "description": "Represents a base class for primary or secondary replicator status.\nContains information about the service fabric replicator like the replication/copy queue utilization, last acknowledgement received timestamp, etc.",
+ "required": [
+ "Kind"
+ ],
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/ReplicaRole",
+ "description": "The role of a replica of a stateful service."
+ }
+ }
+ },
+ "PrimaryReplicatorStatus": {
+ "x-ms-discriminator-value": "Primary",
+ "description": "Provides statistics about the Service Fabric Replicator, when it is functioning in a Primary role.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicatorStatus"
+ }
+ ],
+ "properties": {
+ "ReplicationQueueStatus": {
+ "$ref": "#/definitions/ReplicatorQueueStatus",
+ "description": "Details about the replication queue on the primary replicator."
+ },
+ "RemoteReplicators": {
+ "$ref": "#/definitions/RemoteReplicatorStatusList",
+ "description": "The status of all the active and idle secondary replicators that the primary is aware of."
+ }
+ }
+ },
+ "SecondaryReplicatorStatus": {
+ "description": "Provides statistics about the Service Fabric Replicator, when it is functioning in a ActiveSecondary role.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicatorStatus"
+ }
+ ],
+ "properties": {
+ "ReplicationQueueStatus": {
+ "$ref": "#/definitions/ReplicatorQueueStatus",
+ "description": "Details about the replication queue on the secondary replicator."
+ },
+ "LastReplicationOperationReceivedTimeUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The last time-stamp (UTC) at which a replication operation was received from the primary.\nUTC 0 represents an invalid value, indicating that a replication operation message was never received."
+ },
+ "IsInBuild": {
+ "type": "boolean",
+ "description": "Value that indicates whether the replica is currently being built."
+ },
+ "CopyQueueStatus": {
+ "$ref": "#/definitions/ReplicatorQueueStatus",
+ "description": "Details about the copy queue on the secondary replicator."
+ },
+ "LastCopyOperationReceivedTimeUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The last time-stamp (UTC) at which a copy operation was received from the primary.\nUTC 0 represents an invalid value, indicating that a copy operation message was never received."
+ },
+ "LastAcknowledgementSentTimeUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The last time-stamp (UTC) at which an acknowledgment was sent to the primary replicator.\nUTC 0 represents an invalid value, indicating that an acknowledgment message was never sent."
+ }
+ }
+ },
+ "SecondaryActiveReplicatorStatus": {
+ "x-ms-discriminator-value": "ActiveSecondary",
+ "description": "Status of the secondary replicator when it is in active mode and is part of the replica set.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/SecondaryReplicatorStatus"
+ }
+ ]
+ },
+ "SecondaryIdleReplicatorStatus": {
+ "x-ms-discriminator-value": "IdleSecondary",
+ "description": "Status of the secondary replicator when it is in idle mode and is being built by the primary.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/SecondaryReplicatorStatus"
+ }
+ ]
+ },
+ "RemoteReplicatorStatus": {
+ "description": "Represents the state of the secondary replicator from the primary replicator’s point of view.",
+ "properties": {
+ "ReplicaId": {
+ "$ref": "#/definitions/ReplicaId",
+ "description": "Represents the replica ID of the remote secondary replicator."
+ },
+ "LastAcknowledgementProcessedTimeUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The last timestamp (in UTC) when an acknowledgement from the secondary replicator was processed on the primary.\nUTC 0 represents an invalid value, indicating that no acknowledgement messages were ever processed."
+ },
+ "LastReceivedReplicationSequenceNumber": {
+ "type": "string",
+ "description": "The highest replication operation sequence number that the secondary has received from the primary."
+ },
+ "LastAppliedReplicationSequenceNumber": {
+ "type": "string",
+ "description": "The highest replication operation sequence number that the secondary has applied to its state."
+ },
+ "IsInBuild": {
+ "type": "boolean",
+ "description": "A value that indicates whether the secondary replica is in the process of being built."
+ },
+ "LastReceivedCopySequenceNumber": {
+ "type": "string",
+ "description": "The highest copy operation sequence number that the secondary has received from the primary.\nA value of -1 implies that the secondary has received all copy operations."
+ },
+ "LastAppliedCopySequenceNumber": {
+ "type": "string",
+ "description": "The highest copy operation sequence number that the secondary has applied to its state.\nA value of -1 implies that the secondary has applied all copy operations and the copy process is complete."
+ },
+ "RemoteReplicatorAcknowledgementStatus": {
+ "$ref": "#/definitions/RemoteReplicatorAcknowledgementStatus",
+ "description": "Represents the acknowledgment status for the remote secondary replicator."
+ }
+ }
+ },
+ "RemoteReplicatorStatusList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RemoteReplicatorStatus"
+ },
+ "description": "List of remote replicator status"
+ },
+ "RemoteReplicatorAcknowledgementStatus": {
+ "description": "Provides details about the remote replicators from the primary replicator's point of view.",
+ "properties": {
+ "ReplicationStreamAcknowledgementDetail": {
+ "$ref": "#/definitions/RemoteReplicatorAcknowledgementDetail",
+ "description": "Details about the acknowledgements for operations that are part of the replication stream data."
+ },
+ "CopyStreamAcknowledgementDetail": {
+ "$ref": "#/definitions/RemoteReplicatorAcknowledgementDetail",
+ "description": "Details about the acknowledgements for operations that are part of the copy stream data."
+ }
+ }
+ },
+ "RemoteReplicatorAcknowledgementDetail": {
+ "description": "Provides various statistics of the acknowledgements that are being received from the remote replicator.",
+ "properties": {
+ "AverageReceiveDuration": {
+ "type": "string",
+ "description": "Represents the average duration it takes for the remote replicator to receive an operation."
+ },
+ "AverageApplyDuration": {
+ "type": "string",
+ "description": "Represents the average duration it takes for the remote replicator to apply an operation. This usually entails writing the operation to disk."
+ },
+ "NotReceivedCount": {
+ "type": "string",
+ "description": "Represents the number of operations not yet received by a remote replicator."
+ },
+ "ReceivedAndNotAppliedCount": {
+ "type": "string",
+ "description": "Represents the number of operations received and not yet applied by a remote replicator."
+ }
+ }
+ },
+ "DeployedServiceReplicaDetailInfo": {
+ "discriminator": "ServiceKind",
+ "description": "Information about a Service Fabric service replica deployed on a node.",
+ "required": [
+ "ServiceKind"
+ ],
+ "properties": {
+ "ServiceKind": {
+ "$ref": "#/definitions/ServiceKind",
+ "description": "The kind of service (Stateless or Stateful)."
+ },
+ "ServiceName": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "Full hierarchical name of the service in URI format starting with `fabric:`."
+ },
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different."
+ },
+ "CurrentServiceOperation": {
+ "$ref": "#/definitions/ServiceOperationName",
+ "description": "Specifies the current active life-cycle operation on a stateful service replica or stateless service instance."
+ },
+ "CurrentServiceOperationStartTimeUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The start time of the current service operation in UTC format."
+ },
+ "ReportedLoad": {
+ "$ref": "#/definitions/LoadMetricReportInfoList",
+ "description": "List of load reported by replica."
+ }
+ }
+ },
+ "DeployedStatefulServiceReplicaDetailInfo": {
+ "description": "Information about a stateful replica running in a code package. Note DeployedServiceReplicaQueryResult will contain duplicate data like ServiceKind, ServiceName, PartitionId and replicaId.",
+ "x-ms-discriminator-value": "Stateful",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DeployedServiceReplicaDetailInfo"
+ }
+ ],
+ "properties": {
+ "ReplicaId": {
+ "$ref": "#/definitions/ReplicaId",
+ "description": "Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id."
+ },
+ "CurrentReplicatorOperation": {
+ "$ref": "#/definitions/ReplicatorOperationName",
+ "description": "Specifies the operation currently being executed by the Replicator."
+ },
+ "ReadStatus": {
+ "$ref": "#/definitions/PartitionAccessStatus",
+ "description": "Specifies the access status of the partition."
+ },
+ "WriteStatus": {
+ "$ref": "#/definitions/PartitionAccessStatus",
+ "description": "Specifies the access status of the partition."
+ },
+ "ReplicatorStatus": {
+ "$ref": "#/definitions/ReplicatorStatus",
+ "description": "Represents a base class for primary or secondary replicator status.\nContains information about the service fabric replicator like the replication/copy queue utilization, last acknowledgement received timestamp, etc."
+ },
+ "ReplicaStatus": {
+ "$ref": "#/definitions/KeyValueStoreReplicaStatus",
+ "description": "Key value store related information for the replica."
+ },
+ "DeployedServiceReplicaQueryResult": {
+ "$ref": "#/definitions/DeployedStatefulServiceReplicaInfo",
+ "description": "Information about a stateful service replica deployed on a node."
+ }
+ }
+ },
+ "DeployedStatelessServiceInstanceDetailInfo": {
+ "description": "Information about a stateless instance running in a code package. Note that DeployedServiceReplicaQueryResult will contain duplicate data like ServiceKind, ServiceName, PartitionId and InstanceId.",
+ "x-ms-discriminator-value": "Stateless",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DeployedServiceReplicaDetailInfo"
+ }
+ ],
+ "properties": {
+ "InstanceId": {
+ "$ref": "#/definitions/InstanceId",
+ "description": "Id of a stateless service instance. InstanceId is used by Service Fabric to uniquely identify an instance of a partition of a stateless service. It is unique within a partition and does not change for the lifetime of the instance. If the instance has failed over on the same or different node, it will get a different value for the InstanceId."
+ },
+ "DeployedServiceReplicaQueryResult": {
+ "$ref": "#/definitions/DeployedStatelessServiceInstanceInfo",
+ "description": "Information about a stateless service instance deployed on a node."
+ }
+ }
+ },
+ "FabricReplicaStatus": {
+ "type": "string",
+ "description": "Specifies the status of the replica.",
+ "enum": [
+ "Invalid",
+ "Down",
+ "Up"
+ ],
+ "x-ms-enum": {
+ "name": "FabricReplicaStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates that the read or write operation access status is not valid. This value is not returned to the caller."
+ },
+ {
+ "value": "Down",
+ "description": "Indicates that the replica is down."
+ },
+ {
+ "value": "Up",
+ "description": "Indicates that the replica is up."
+ }
+ ]
+ }
+ },
+ "LoadMetricReportInfoList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LoadMetricReportInfo"
+ },
+ "description": "List of load reported by replica."
+ },
+ "LoadMetricReportInfo": {
+ "description": "Information about load reported by replica.",
+ "properties": {
+ "Name": {
+ "type": "string",
+ "description": "The name of the metric."
+ },
+ "Value": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The value of the load for the metric. In future releases of Service Fabric this parameter will be deprecated in favor of CurrentValue."
+ },
+ "CurrentValue": {
+ "type": "string",
+ "format": "double",
+ "description": "The double value of the load for the metric."
+ },
+ "LastReportedUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The UTC time when the load is reported."
+ }
+ }
+ },
+ "PartitionAccessStatus": {
+ "type": "string",
+ "description": "Specifies the access status of the partition.",
+ "enum": [
+ "Invalid",
+ "Granted",
+ "ReconfigurationPending",
+ "NotPrimary",
+ "NoWriteQuorum"
+ ],
+ "x-ms-enum": {
+ "name": "PartitionAccessStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates that the read or write operation access status is not valid. This value is not returned to the caller."
+ },
+ {
+ "value": "Granted",
+ "description": "Indicates that the read or write operation access is granted and the operation is allowed."
+ },
+ {
+ "value": "ReconfigurationPending",
+ "description": "Indicates that the client should try again later, because a reconfiguration is in progress."
+ },
+ {
+ "value": "NotPrimary",
+ "description": "Indicates that this client request was received by a replica that is not a Primary replica."
+ },
+ {
+ "value": "NoWriteQuorum",
+ "description": "Indicates that no write quorum is available and, therefore, no write operation can be accepted."
+ }
+ ]
+ }
+ },
+ "ReplicatorOperationName": {
+ "type": "string",
+ "description": "Specifies the operation currently being executed by the Replicator.",
+ "enum": [
+ "Invalid",
+ "None",
+ "Open",
+ "ChangeRole",
+ "UpdateEpoch",
+ "Close",
+ "Abort",
+ "OnDataLoss",
+ "WaitForCatchup",
+ "Build"
+ ],
+ "x-ms-enum": {
+ "name": "ReplicatorOperationName",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Default value if the replicator is not yet ready."
+ },
+ {
+ "value": "None",
+ "description": "Replicator is not running any operation from Service Fabric perspective."
+ },
+ {
+ "value": "Open",
+ "description": "Replicator is opening."
+ },
+ {
+ "value": "ChangeRole",
+ "description": "Replicator is in the process of changing its role."
+ },
+ {
+ "value": "UpdateEpoch",
+ "description": "Due to a change in the replica set, replicator is being updated with its Epoch."
+ },
+ {
+ "value": "Close",
+ "description": "Replicator is closing."
+ },
+ {
+ "value": "Abort",
+ "description": "Replicator is being aborted."
+ },
+ {
+ "value": "OnDataLoss",
+ "description": "Replicator is handling the data loss condition, where the user service may potentially be recovering state from an external source."
+ },
+ {
+ "value": "WaitForCatchup",
+ "description": "Replicator is waiting for a quorum of replicas to be caught up to the latest state."
+ },
+ {
+ "value": "Build",
+ "description": "Replicator is in the process of building one or more replicas."
+ }
+ ]
+ }
+ },
+ "ServiceOperationName": {
+ "type": "string",
+ "description": "Specifies the current active life-cycle operation on a stateful service replica or stateless service instance.",
+ "enum": [
+ "Unknown",
+ "None",
+ "Open",
+ "ChangeRole",
+ "Close",
+ "Abort"
+ ],
+ "x-ms-enum": {
+ "name": "ServiceOperationName",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Unknown",
+ "description": "Reserved for future use."
+ },
+ {
+ "value": "None",
+ "description": "The service replica or instance is not going through any life-cycle changes."
+ },
+ {
+ "value": "Open",
+ "description": "The service replica or instance is being opened."
+ },
+ {
+ "value": "ChangeRole",
+ "description": "The service replica is changing roles."
+ },
+ {
+ "value": "Close",
+ "description": "The service replica or instance is being closed."
+ },
+ {
+ "value": "Abort",
+ "description": "The service replica or instance is being aborted."
+ }
+ ]
+ }
+ },
+ "ReplicaKind": {
+ "type": "string",
+ "description": "The role of a replica of a stateful service.",
+ "enum": [
+ "Invalid",
+ "KeyValueStore"
+ ],
+ "x-ms-enum": {
+ "name": "ReplicaKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Represents an invalid replica kind. The value is zero."
+ },
+ {
+ "value": "KeyValueStore",
+ "description": "Represents a key value store replica. The value is 1"
+ }
+ ]
+ }
+ },
+ "ReplicaStatusBase": {
+ "discriminator": "Kind",
+ "description": "Information about the replica.",
+ "required": [
+ "Kind"
+ ],
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/ReplicaKind",
+ "description": "The role of a replica of a stateful service."
+ }
+ }
+ },
+ "KeyValueStoreReplicaStatus": {
+ "description": "Key value store related information for the replica.",
+ "x-ms-discriminator-value": "KeyValueStore",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicaStatusBase"
+ }
+ ],
+ "properties": {
+ "DatabaseRowCountEstimate": {
+ "type": "string",
+ "description": "Value indicating the estimated number of rows in the underlying database."
+ },
+ "DatabaseLogicalSizeEstimate": {
+ "type": "string",
+ "description": "Value indicating the estimated size of the underlying database."
+ },
+ "CopyNotificationCurrentKeyFilter": {
+ "type": "string",
+ "description": "Value indicating the latest key-prefix filter applied to enumeration during the callback. Null if there is no pending callback."
+ },
+ "CopyNotificationCurrentProgress": {
+ "type": "string",
+ "description": "Value indicating the latest number of keys enumerated during the callback. 0 if there is no pending callback."
+ },
+ "StatusDetails": {
+ "type": "string",
+ "description": "Value indicating the current status details of the replica."
+ }
+ }
+ },
+ "ServiceUpdateDescription": {
+ "discriminator": "ServiceKind",
+ "description": "A ServiceUpdateDescription contains all of the information necessary to update a service.",
+ "required": [
+ "ServiceKind"
+ ],
+ "properties": {
+ "ServiceKind": {
+ "$ref": "#/definitions/ServiceKind",
+ "description": "The service kind."
+ },
+ "Flags": {
+ "type": "string",
+ "description": "Flags indicating whether other properties are set. Each of the associated properties corresponds to a flag, specified below, which, if set, indicate that the property is specified.\nThis property can be a combination of those flags obtained using bitwise 'OR' operator.\nFor example, if the provided value is 6 then the flags for ReplicaRestartWaitDuration (2) and QuorumLossWaitDuration (4) are set.\n\n- None - Does not indicate any other properties are set. The value is zero.\n- TargetReplicaSetSize/InstanceCount - Indicates whether the TargetReplicaSetSize property (for Stateful services) or the InstanceCount property (for Stateless services) is set. The value is 1.\n- ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is 2.\n- QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 4.\n- StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 8.\n- MinReplicaSetSize - Indicates the MinReplicaSetSize property is set. The value is 16.\n- PlacementConstraints - Indicates the PlacementConstraints property is set. The value is 32.\n- PlacementPolicyList - Indicates the ServicePlacementPolicies property is set. The value is 64.\n- Correlation - Indicates the CorrelationScheme property is set. The value is 128.\n- Metrics - Indicates the ServiceLoadMetrics property is set. The value is 256.\n- DefaultMoveCost - Indicates the DefaultMoveCost property is set. The value is 512.\n- ScalingPolicy - Indicates the ScalingPolicies property is set. The value is 1024.\n- ServicePlacementTimeLimit - Indicates the ServicePlacementTimeLimit property is set. The value is 2048.\n- MinInstanceCount - Indicates the MinInstanceCount property is set. The value is 4096.\n- MinInstancePercentage - Indicates the MinInstancePercentage property is set. The value is 8192.\n- InstanceCloseDelayDuration - Indicates the InstanceCloseDelayDuration property is set. The value is 16384.\n- DropSourceReplicaOnMove - Indicates the DropSourceReplicaOnMove property is set. The value is 32768."
+ },
+ "PlacementConstraints": {
+ "type": "string",
+ "description": "The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: \"NodeColor == blue)\"."
+ },
+ "CorrelationScheme": {
+ "$ref": "#/definitions/CorrelationSchemeList",
+ "description": "The correlation scheme."
+ },
+ "LoadMetrics": {
+ "$ref": "#/definitions/ServiceLoadMetricsList",
+ "description": "The service load metrics."
+ },
+ "ServicePlacementPolicies": {
+ "$ref": "#/definitions/ServicePlacementPoliciesList",
+ "description": "The service placement policies."
+ },
+ "DefaultMoveCost": {
+ "$ref": "#/definitions/MoveCost",
+ "description": "The move cost for the service."
+ },
+ "ScalingPolicies": {
+ "$ref": "#/definitions/ScalingPolicyDescriptionList",
+ "description": "Scaling policies for this service."
+ }
+ }
+ },
+ "StatefulServiceUpdateDescription": {
+ "description": "Describes an update for a stateful service.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceUpdateDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "Stateful",
+ "properties": {
+ "TargetReplicaSetSize": {
+ "type": "integer",
+ "minimum": 1,
+ "description": "The target replica set size as a number."
+ },
+ "MinReplicaSetSize": {
+ "type": "integer",
+ "minimum": 1,
+ "description": "The minimum replica set size as a number."
+ },
+ "ReplicaRestartWaitDurationSeconds": {
+ "type": "string",
+ "description": "The duration, in seconds, between when a replica goes down and when a new replica is created."
+ },
+ "QuorumLossWaitDurationSeconds": {
+ "type": "string",
+ "description": "The maximum duration, in seconds, for which a partition is allowed to be in a state of quorum loss."
+ },
+ "StandByReplicaKeepDurationSeconds": {
+ "type": "string",
+ "description": "The definition on how long StandBy replicas should be maintained before being removed."
+ },
+ "ServicePlacementTimeLimitSeconds": {
+ "type": "string",
+ "description": "The duration for which replicas can stay InBuild before reporting that build is stuck."
+ },
+ "DropSourceReplicaOnMove": {
+ "type": "boolean",
+ "description": "Indicates whether to drop source Secondary replica even if the target replica has not finished build. If desired behavior is to drop it as soon as possible the value of this property is true, if not it is false."
+ }
+ }
+ },
+ "StatelessServiceUpdateDescription": {
+ "description": "Describes an update for a stateless service.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceUpdateDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "Stateless",
+ "properties": {
+ "InstanceCount": {
+ "type": "integer",
+ "minimum": -1,
+ "description": "The instance count."
+ },
+ "MinInstanceCount": {
+ "$ref": "#/definitions/MinInstanceCount",
+ "description": "MinInstanceCount is the minimum number of instances that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.\nThe actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).\nNote, if InstanceCount is set to -1, during MinInstanceCount computation -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service."
+ },
+ "MinInstancePercentage": {
+ "$ref": "#/definitions/MinInstancePercentage",
+ "description": "MinInstancePercentage is the minimum percentage of InstanceCount that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.\nThe actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).\nNote, if InstanceCount is set to -1, during MinInstancePercentage computation, -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service."
+ },
+ "InstanceCloseDelayDurationSeconds": {
+ "type": "string",
+ "description": "Duration in seconds, to wait before a stateless instance is closed, to allow the active requests to drain gracefully. This would be effective when the instance is closing during the application/cluster upgrade and disabling node.\nThe endpoint exposed on this instance is removed prior to starting the delay, which prevents new connections to this instance.\nIn addition, clients that have subscribed to service endpoint change events(https://docs.microsoft.com/dotnet/api/system.fabric.fabricclient.servicemanagementclient.registerservicenotificationfilterasync), can do\nthe following upon receiving the endpoint removal notification:\n - Stop sending new requests to this instance.\n - Close existing connections after in-flight requests have completed.\n - Connect to a different instance of the service partition for future requests."
+ }
+ }
+ },
+ "ImageStoreRelativePath": {
+ "type": "string",
+ "description": "The remote location within image store. This path is relative to the image store root."
+ },
+ "FileVersion": {
+ "description": "Information about the version of image store file.",
+ "properties": {
+ "VersionNumber": {
+ "type": "string",
+ "description": "The current image store version number for the file is used in image store for checking whether it need to be updated."
+ },
+ "EpochDataLossNumber": {
+ "type": "string",
+ "description": "The epoch data loss number of image store replica when this file entry was updated or created."
+ },
+ "EpochConfigurationNumber": {
+ "type": "string",
+ "description": "The epoch configuration version number of the image store replica when this file entry was created or updated."
+ }
+ }
+ },
+ "DiskInfo": {
+ "description": "Information about the disk",
+ "properties": {
+ "Capacity": {
+ "type": "string",
+ "description": "the disk size in bytes"
+ },
+ "AvailableSpace": {
+ "type": "string",
+ "description": "the available disk space in bytes"
+ }
+ }
+ },
+ "FileInfo": {
+ "description": "Information about a image store file.",
+ "properties": {
+ "FileSize": {
+ "type": "string",
+ "description": "The size of file in bytes."
+ },
+ "FileVersion": {
+ "$ref": "#/definitions/FileVersion",
+ "description": "Information about the version of image store file."
+ },
+ "ModifiedDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The date and time when the image store file was last modified."
+ },
+ "StoreRelativePath": {
+ "type": "string",
+ "description": "The file path relative to the image store root path."
+ }
+ }
+ },
+ "FolderInfo": {
+ "description": "Information about a image store folder. It includes how many files this folder contains and its image store relative path.",
+ "properties": {
+ "StoreRelativePath": {
+ "$ref": "#/definitions/ImageStoreRelativePath",
+ "description": "The remote location within image store. This path is relative to the image store root."
+ },
+ "FileCount": {
+ "type": "string",
+ "description": "The number of files from within the image store folder."
+ }
+ }
+ },
+ "FolderSizeInfo": {
+ "description": "Information of a image store folder size",
+ "properties": {
+ "StoreRelativePath": {
+ "$ref": "#/definitions/ImageStoreRelativePath",
+ "description": "The remote location within image store. This path is relative to the image store root."
+ },
+ "FolderSize": {
+ "type": "string",
+ "description": "The size of folder in bytes."
+ }
+ }
+ },
+ "UsageInfo": {
+ "description": "Information about how much space and how many files in the file system the ImageStore is using in this category",
+ "properties": {
+ "UsedSpace": {
+ "type": "string",
+ "description": "the size of all files in this category"
+ },
+ "FileCount": {
+ "type": "string",
+ "description": "the number of all files in this category"
+ }
+ }
+ },
+ "ImageStoreContent": {
+ "description": "Information about the image store content.",
+ "properties": {
+ "StoreFiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FileInfo"
+ },
+ "description": "The list of image store file info objects represents files found under the given image store relative path."
+ },
+ "StoreFolders": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FolderInfo"
+ },
+ "description": "The list of image store folder info objects represents subfolders found under the given image store relative path."
+ }
+ }
+ },
+ "ImageStoreCopyDescription": {
+ "description": "Information about how to copy image store content from one image store relative path to another image store relative path.",
+ "required": [
+ "RemoteSource",
+ "RemoteDestination"
+ ],
+ "properties": {
+ "RemoteSource": {
+ "type": "string",
+ "description": "The relative path of source image store content to be copied from."
+ },
+ "RemoteDestination": {
+ "type": "string",
+ "description": "The relative path of destination image store content to be copied to."
+ },
+ "SkipFiles": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The list of the file names to be skipped for copying."
+ },
+ "CheckMarkFile": {
+ "type": "boolean",
+ "description": "Indicates whether to check mark file during copying. The property is true if checking mark file is required, false otherwise. The mark file is used to check whether the folder is well constructed. If the property is true and mark file does not exist, the copy is skipped."
+ }
+ }
+ },
+ "ImageStoreInfo": {
+ "description": "Information about the ImageStore's resource usage",
+ "properties": {
+ "DiskInfo": {
+ "$ref": "#/definitions/DiskInfo",
+ "description": "disk capacity and available disk space on the node where the ImageStore primary is placed."
+ },
+ "UsedByMetadata": {
+ "$ref": "#/definitions/UsageInfo",
+ "description": "the ImageStore's file system usage for metadata."
+ },
+ "UsedByStaging": {
+ "$ref": "#/definitions/UsageInfo",
+ "description": "The ImageStore's file system usage for staging files that are being uploaded."
+ },
+ "UsedByCopy": {
+ "$ref": "#/definitions/UsageInfo",
+ "description": "the ImageStore's file system usage for copied application and cluster packages. [Removing application and cluster packages](https://docs.microsoft.com/rest/api/servicefabric/sfclient-api-deleteimagestorecontent) will free up this space."
+ },
+ "UsedByRegister": {
+ "$ref": "#/definitions/UsageInfo",
+ "description": "the ImageStore's file system usage for registered and cluster packages. [Unregistering application](https://docs.microsoft.com/rest/api/servicefabric/sfclient-api-unprovisionapplicationtype) and [cluster packages](https://docs.microsoft.com/rest/api/servicefabric/sfclient-api-unprovisionapplicationtype) will free up this space."
+ }
+ }
+ },
+ "InstanceId": {
+ "type": "string",
+ "description": "Id of a stateless service instance. InstanceId is used by Service Fabric to uniquely identify an instance of a partition of a stateless service. It is unique within a partition and does not change for the lifetime of the instance. If the instance has failed over on the same or different node, it will get a different value for the InstanceId."
+ },
+ "CodePackageInstanceId": {
+ "type": "string",
+ "description": "The instance ID for current running entry point. For a code package setup entry point (if specified) runs first and after it finishes main entry point is started. Each time entry point executable is run, its instance id will change."
+ },
+ "HostIsolationMode": {
+ "type": "string",
+ "description": "Specifies the isolation mode of main entry point of a code package when it's host type is ContainerHost. This is specified as part of container host policies in application manifest while importing service manifest.",
+ "enum": [
+ "None",
+ "Process",
+ "HyperV"
+ ],
+ "x-ms-enum": {
+ "name": "HostIsolationMode",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "None",
+ "description": "Indicates the isolation mode is not applicable for given HostType. The value is 0."
+ },
+ {
+ "value": "Process",
+ "description": "This is the default isolation mode for a ContainerHost. The value is 1."
+ },
+ {
+ "value": "HyperV",
+ "description": "Indicates the ContainerHost is a Hyper-V container. This applies to only Windows containers. The value is 2."
+ }
+ ]
+ }
+ },
+ "HostType": {
+ "type": "string",
+ "description": "Specifies the type of host for main entry point of a code package as specified in service manifest.",
+ "enum": [
+ "Invalid",
+ "ExeHost",
+ "ContainerHost"
+ ],
+ "x-ms-enum": {
+ "name": "HostType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the type of host is not known or invalid. The value is 0."
+ },
+ {
+ "value": "ExeHost",
+ "description": "Indicates the host is an executable. The value is 1."
+ },
+ {
+ "value": "ContainerHost",
+ "description": "Indicates the host is a container. The value is 2."
+ }
+ ]
+ }
+ },
+ "RestartDeployedCodePackageDescription": {
+ "description": "Defines description for restarting a deployed code package on Service Fabric node.",
+ "required": [
+ "ServiceManifestName",
+ "CodePackageName",
+ "CodePackageInstanceId"
+ ],
+ "properties": {
+ "ServiceManifestName": {
+ "$ref": "#/definitions/ServiceManifestName",
+ "description": "The name of service manifest that specified this code package."
+ },
+ "ServicePackageActivationId": {
+ "$ref": "#/definitions/ServicePackageActivationId",
+ "description": "The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service\nis 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId\nis always an empty string."
+ },
+ "CodePackageName": {
+ "$ref": "#/definitions/CodePackageName",
+ "description": "The name of the code package defined in the service manifest."
+ },
+ "CodePackageInstanceId": {
+ "$ref": "#/definitions/CodePackageInstanceId",
+ "description": "The instance ID for currently running entry point. For a code package setup entry point (if specified) runs first and after it finishes main entry point is started.\nEach time entry point executable is run, its instance ID will change. If 0 is passed in as the code package instance ID, the API will restart the code package with whatever instance ID it is currently running.\nIf an instance ID other than 0 is passed in, the API will restart the code package only if the current Instance ID matches the passed in instance ID.\nNote, passing in the exact instance ID (not 0) in the API is safer, because if ensures at most one restart of the code package."
+ }
+ }
+ },
+ "DeployedServiceTypeInfo": {
+ "description": "Information about service type deployed on a node, information such as the status of the service type registration on a node.",
+ "properties": {
+ "ServiceTypeName": {
+ "$ref": "#/definitions/ServiceTypeName",
+ "description": "Name of the service type as specified in the service manifest."
+ },
+ "ServiceManifestName": {
+ "$ref": "#/definitions/ServiceManifestName",
+ "description": "The name of the service manifest in which this service type is defined."
+ },
+ "CodePackageName": {
+ "$ref": "#/definitions/CodePackageName",
+ "description": "The name of the code package that registered the service type."
+ },
+ "Status": {
+ "$ref": "#/definitions/ServiceTypeRegistrationStatus",
+ "description": "The status of the service type registration on the node."
+ },
+ "ServicePackageActivationId": {
+ "$ref": "#/definitions/ServicePackageActivationId",
+ "description": "The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service\nis 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId\nis always an empty string."
+ }
+ }
+ },
+ "DeployedServiceTypeInfoList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeployedServiceTypeInfo"
+ },
+ "description": "List of information about service type deployed on a node."
+ },
+ "ServiceTypeRegistrationStatus": {
+ "type": "string",
+ "description": "The status of the service type registration on the node.",
+ "enum": [
+ "Invalid",
+ "Disabled",
+ "Enabled",
+ "Registered"
+ ],
+ "x-ms-enum": {
+ "name": "ServiceTypeRegistrationStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the registration status is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Disabled",
+ "description": "Indicates that the service type is disabled on this node. A type gets disabled when there are too many failures of the code package hosting the service type. If the service type is disabled, new replicas of that service type will not be placed on the node until it is enabled again. The service type is enabled again after the process hosting it comes up and re-registers the type or a preconfigured time interval has passed. The value is 1."
+ },
+ {
+ "value": "Enabled",
+ "description": "Indicates that the service type is enabled on this node. Replicas of this service type can be placed on this node when the code package registers the service type. The value is 2."
+ },
+ {
+ "value": "Registered",
+ "description": "Indicates that the service type is enabled and registered on the node by a code package. Replicas of this service type can now be placed on this node. The value is 3."
+ }
+ ]
+ }
+ },
+ "ServiceEndpointRole": {
+ "type": "string",
+ "description": "The role of the replica where the endpoint is reported.",
+ "enum": [
+ "Invalid",
+ "Stateless",
+ "StatefulPrimary",
+ "StatefulSecondary"
+ ],
+ "x-ms-enum": {
+ "name": "ServiceEndpointRole",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the service endpoint role is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Stateless",
+ "description": "Indicates that the service endpoint is of a stateless service. The value is 1."
+ },
+ {
+ "value": "StatefulPrimary",
+ "description": "Indicates that the service endpoint is of a primary replica of a stateful service. The value is 2."
+ },
+ {
+ "value": "StatefulSecondary",
+ "description": "Indicates that the service endpoint is of a secondary replica of a stateful service. The value is 3."
+ }
+ ]
+ }
+ },
+ "ResolvedServiceEndpoint": {
+ "description": "Endpoint of a resolved service partition.",
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/ServiceEndpointRole",
+ "description": "The role of the replica where the endpoint is reported."
+ },
+ "Address": {
+ "type": "string",
+ "description": "The address of the endpoint. If the endpoint has multiple listeners the address is a JSON object with one property per listener with the value as the address of that listener."
+ }
+ }
+ },
+ "ResolvedServicePartition": {
+ "description": "Information about a service partition and its associated endpoints.",
+ "required": [
+ "Name",
+ "PartitionInformation",
+ "Endpoints",
+ "Version"
+ ],
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The full name of the service with 'fabric:' URI scheme."
+ },
+ "PartitionInformation": {
+ "$ref": "#/definitions/PartitionInformation",
+ "description": "A representation of the resolved partition."
+ },
+ "Endpoints": {
+ "$ref": "#/definitions/ResolvedServiceEndpointList",
+ "description": "List of resolved service endpoints of a service partition."
+ },
+ "Version": {
+ "type": "string",
+ "description": "The version of this resolved service partition result. This version should be passed in the next time the ResolveService call is made via the PreviousRspVersion query parameter."
+ }
+ }
+ },
+ "ResolvedServiceEndpointList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResolvedServiceEndpoint"
+ },
+ "description": "List of resolved service endpoints of a service partition."
+ },
+ "InvokeDataLossResult": {
+ "description": "Represents information about an operation in a terminal state (Completed or Faulted).",
+ "properties": {
+ "ErrorCode": {
+ "type": "integer",
+ "format": "int32",
+ "description": "If OperationState is Completed, this is 0. If OperationState is Faulted, this is an error code indicating the reason."
+ },
+ "SelectedPartition": {
+ "$ref": "#/definitions/SelectedPartition",
+ "description": "This class returns information about the partition that the user-induced operation acted upon."
+ }
+ }
+ },
+ "InvokeQuorumLossResult": {
+ "description": "Represents information about an operation in a terminal state (Completed or Faulted).",
+ "properties": {
+ "ErrorCode": {
+ "type": "integer",
+ "format": "int32",
+ "description": "If OperationState is Completed, this is 0. If OperationState is Faulted, this is an error code indicating the reason."
+ },
+ "SelectedPartition": {
+ "$ref": "#/definitions/SelectedPartition",
+ "description": "This class returns information about the partition that the user-induced operation acted upon."
+ }
+ }
+ },
+ "NodeResult": {
+ "description": "Contains information about a node that was targeted by a user-induced operation.",
+ "properties": {
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "NodeInstanceId": {
+ "type": "string",
+ "description": "The node instance id."
+ }
+ }
+ },
+ "NodeTransitionProgress": {
+ "description": "Information about an NodeTransition operation. This class contains an OperationState and a NodeTransitionResult. The NodeTransitionResult is not valid until OperationState\nis Completed or Faulted.",
+ "properties": {
+ "State": {
+ "$ref": "#/definitions/OperationState",
+ "description": "The state of the operation."
+ },
+ "NodeTransitionResult": {
+ "$ref": "#/definitions/NodeTransitionResult",
+ "description": "Represents information about an operation in a terminal state (Completed or Faulted)."
+ }
+ }
+ },
+ "NodeTransitionResult": {
+ "description": "Represents information about an operation in a terminal state (Completed or Faulted).",
+ "properties": {
+ "ErrorCode": {
+ "type": "integer",
+ "format": "int32",
+ "description": "If OperationState is Completed, this is 0. If OperationState is Faulted, this is an error code indicating the reason."
+ },
+ "NodeResult": {
+ "$ref": "#/definitions/NodeResult",
+ "description": "Contains information about a node that was targeted by a user-induced operation."
+ }
+ }
+ },
+ "OperationId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "A GUID that identifies a call to this API. This is also passed into the corresponding GetProgress API."
+ },
+ "OperationState": {
+ "type": "string",
+ "description": "The state of the operation.",
+ "enum": [
+ "Invalid",
+ "Running",
+ "RollingBack",
+ "Completed",
+ "Faulted",
+ "Cancelled",
+ "ForceCancelled"
+ ],
+ "x-ms-enum": {
+ "name": "OperationState",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "The operation state is invalid."
+ },
+ {
+ "value": "Running",
+ "description": "The operation is in progress."
+ },
+ {
+ "value": "RollingBack",
+ "description": "The operation is rolling back internal system state because it encountered a fatal error or was cancelled by the user. \"RollingBack\" does not refer to user state. For example, if CancelOperation is called on a command of type PartitionDataLoss, state of \"RollingBack\" does not mean service data is being restored (assuming the command has progressed far enough to cause data loss). It means the system is rolling back/cleaning up internal system state associated with the command."
+ },
+ {
+ "value": "Completed",
+ "description": "The operation has completed successfully and is no longer running."
+ },
+ {
+ "value": "Faulted",
+ "description": "The operation has failed and is no longer running."
+ },
+ {
+ "value": "Cancelled",
+ "description": "The operation was cancelled by the user using CancelOperation, and is no longer running."
+ },
+ {
+ "value": "ForceCancelled",
+ "description": "The operation was cancelled by the user using CancelOperation, with the force parameter set to true. It is no longer running. Refer to CancelOperation for more details."
+ }
+ ]
+ }
+ },
+ "OperationStatus": {
+ "description": "Contains the OperationId, OperationState, and OperationType for user-induced operations.",
+ "properties": {
+ "OperationId": {
+ "$ref": "#/definitions/OperationId",
+ "description": "A GUID that identifies a call to this API. This is also passed into the corresponding GetProgress API."
+ },
+ "State": {
+ "$ref": "#/definitions/OperationState",
+ "description": "The state of the operation."
+ },
+ "Type": {
+ "$ref": "#/definitions/OperationType",
+ "description": "The type of the operation."
+ }
+ }
+ },
+ "OperationStatusList": {
+ "type": "array",
+ "description": "A list of OperationStatus objects.",
+ "items": {
+ "$ref": "#/definitions/OperationStatus"
+ }
+ },
+ "OperationType": {
+ "type": "string",
+ "description": "The type of the operation.",
+ "enum": [
+ "Invalid",
+ "PartitionDataLoss",
+ "PartitionQuorumLoss",
+ "PartitionRestart",
+ "NodeTransition"
+ ],
+ "x-ms-enum": {
+ "name": "OperationType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "The operation state is invalid."
+ },
+ {
+ "value": "PartitionDataLoss",
+ "description": "An operation started using the StartDataLoss API."
+ },
+ {
+ "value": "PartitionQuorumLoss",
+ "description": "An operation started using the StartQuorumLoss API."
+ },
+ {
+ "value": "PartitionRestart",
+ "description": "An operation started using the StartPartitionRestart API."
+ },
+ {
+ "value": "NodeTransition",
+ "description": "An operation started using the StartNodeTransition API."
+ }
+ ]
+ }
+ },
+ "PartitionDataLossProgress": {
+ "description": "Information about a partition data loss user-induced operation.",
+ "properties": {
+ "State": {
+ "$ref": "#/definitions/OperationState",
+ "description": "The state of the operation."
+ },
+ "InvokeDataLossResult": {
+ "$ref": "#/definitions/InvokeDataLossResult",
+ "description": "Represents information about an operation in a terminal state (Completed or Faulted)."
+ }
+ }
+ },
+ "PartitionQuorumLossProgress": {
+ "description": "Information about a partition quorum loss user-induced operation.",
+ "properties": {
+ "State": {
+ "$ref": "#/definitions/OperationState",
+ "description": "The state of the operation."
+ },
+ "InvokeQuorumLossResult": {
+ "$ref": "#/definitions/InvokeQuorumLossResult",
+ "description": "Represents information about an operation in a terminal state (Completed or Faulted)."
+ }
+ }
+ },
+ "PartitionRestartProgress": {
+ "description": "Information about a partition restart user-induced operation.",
+ "properties": {
+ "State": {
+ "$ref": "#/definitions/OperationState",
+ "description": "The state of the operation."
+ },
+ "RestartPartitionResult": {
+ "$ref": "#/definitions/RestartPartitionResult",
+ "description": "Represents information about an operation in a terminal state (Completed or Faulted)."
+ }
+ }
+ },
+ "RestartPartitionResult": {
+ "description": "Represents information about an operation in a terminal state (Completed or Faulted).",
+ "properties": {
+ "ErrorCode": {
+ "type": "integer",
+ "format": "int32",
+ "description": "If OperationState is Completed, this is 0. If OperationState is Faulted, this is an error code indicating the reason."
+ },
+ "SelectedPartition": {
+ "$ref": "#/definitions/SelectedPartition",
+ "description": "This class returns information about the partition that the user-induced operation acted upon."
+ }
+ }
+ },
+ "SelectedPartition": {
+ "description": "This class returns information about the partition that the user-induced operation acted upon.",
+ "properties": {
+ "ServiceName": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The name of the service the partition belongs to."
+ },
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different."
+ }
+ }
+ },
+ "DeployServicePackageToNodeDescription": {
+ "description": "Defines description for downloading packages associated with a service manifest to image cache on a Service Fabric node.",
+ "properties": {
+ "ServiceManifestName": {
+ "$ref": "#/definitions/ServiceManifestName",
+ "description": "The name of service manifest whose packages need to be downloaded."
+ },
+ "ApplicationTypeName": {
+ "$ref": "#/definitions/ApplicationTypeName",
+ "description": "The application type name as defined in the application manifest."
+ },
+ "ApplicationTypeVersion": {
+ "$ref": "#/definitions/ApplicationTypeVersion",
+ "description": "The version of the application type as defined in the application manifest."
+ },
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "PackageSharingPolicy": {
+ "$ref": "#/definitions/PackageSharingPolicyInfoList",
+ "description": "List of package sharing policy information."
+ }
+ },
+ "required": [
+ "ServiceManifestName",
+ "ApplicationTypeName",
+ "ApplicationTypeVersion",
+ "NodeName"
+ ]
+ },
+ "PackageSharingPolicyInfo": {
+ "description": "Represents a policy for the package sharing.",
+ "properties": {
+ "SharedPackageName": {
+ "type": "string",
+ "description": "The name of code, configuration or data package that should be shared."
+ },
+ "PackageSharingScope": {
+ "$ref": "#/definitions/PackageSharingPolicyScope",
+ "description": "Represents the scope for PackageSharingPolicy. This is specified during DeployServicePackageToNode operation."
+ }
+ }
+ },
+ "PackageSharingPolicyInfoList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PackageSharingPolicyInfo"
+ },
+ "description": "List of package sharing policy information."
+ },
+ "PackageSharingPolicyScope": {
+ "type": "string",
+ "description": "Represents the scope for PackageSharingPolicy. This is specified during DeployServicePackageToNode operation.",
+ "enum": [
+ "None",
+ "All",
+ "Code",
+ "Config",
+ "Data"
+ ],
+ "x-ms-enum": {
+ "name": "PackageSharingPolicyScope",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "None",
+ "description": "No package sharing policy scope. The value is 0."
+ },
+ {
+ "value": "All",
+ "description": "Share all code, config and data packages from corresponding service manifest. The value is 1."
+ },
+ {
+ "value": "Code",
+ "description": "Share all code packages from corresponding service manifest. The value is 2."
+ },
+ {
+ "value": "Config",
+ "description": "Share all config packages from corresponding service manifest. The value is 3."
+ },
+ {
+ "value": "Data",
+ "description": "Share all data packages from corresponding service manifest. The value is 4."
+ }
+ ]
+ }
+ },
+ "ResumeApplicationUpgradeDescription": {
+ "description": "Describes the parameters for resuming an unmonitored manual Service Fabric application upgrade",
+ "properties": {
+ "UpgradeDomainName": {
+ "type": "string",
+ "description": "The name of the upgrade domain in which to resume the upgrade."
+ }
+ },
+ "required": [
+ "UpgradeDomainName"
+ ]
+ },
+ "ApplicationUpgradeUpdateDescription": {
+ "description": "Describes the parameters for updating an ongoing application upgrade.",
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ },
+ "UpgradeKind": {
+ "$ref": "#/definitions/UpgradeKind",
+ "description": "The kind of upgrade out of the following possible values."
+ },
+ "ApplicationHealthPolicy": {
+ "$ref": "#/definitions/ApplicationHealthPolicy",
+ "description": "Defines a health policy used to evaluate the health of an application or one of its children entities."
+ },
+ "UpdateDescription": {
+ "$ref": "#/definitions/RollingUpgradeUpdateDescription",
+ "description": "Describes the parameters for updating a rolling upgrade of application or cluster."
+ }
+ },
+ "required": [
+ "Name",
+ "UpgradeKind"
+ ]
+ },
+ "RollingUpgradeUpdateDescription": {
+ "description": "Describes the parameters for updating a rolling upgrade of application or cluster.",
+ "properties": {
+ "RollingUpgradeMode": {
+ "$ref": "#/definitions/UpgradeMode",
+ "description": "The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored."
+ },
+ "ForceRestart": {
+ "$ref": "#/definitions/ForceRestart",
+ "description": "If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data)."
+ },
+ "ReplicaSetCheckTimeoutInMilliseconds": {
+ "$ref": "#/definitions/UpgradeReplicaSetCheckTimeout",
+ "description": "The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer)."
+ },
+ "FailureAction": {
+ "$ref": "#/definitions/FailureAction",
+ "description": "The compensating action to perform when a Monitored upgrade encounters monitoring policy or health policy violations.\nInvalid indicates the failure action is invalid. Rollback specifies that the upgrade will start rolling back automatically.\nManual indicates that the upgrade will switch to UnmonitoredManual upgrade mode."
+ },
+ "HealthCheckWaitDurationInMilliseconds": {
+ "$ref": "#/definitions/HealthCheckWaitDuration",
+ "description": "The amount of time to wait after completing an upgrade domain before applying health policies. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds."
+ },
+ "HealthCheckStableDurationInMilliseconds": {
+ "$ref": "#/definitions/HealthCheckStableDuration",
+ "description": "The amount of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds."
+ },
+ "HealthCheckRetryTimeoutInMilliseconds": {
+ "$ref": "#/definitions/HealthCheckRetryTimeout",
+ "description": "The amount of time to retry health evaluation when the application or cluster is unhealthy before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds."
+ },
+ "UpgradeTimeoutInMilliseconds": {
+ "$ref": "#/definitions/UpgradeTimeout",
+ "description": "The amount of time the overall upgrade has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds."
+ },
+ "UpgradeDomainTimeoutInMilliseconds": {
+ "$ref": "#/definitions/UpgradeDomainTimeout",
+ "description": "The amount of time each upgrade domain has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds."
+ },
+ "InstanceCloseDelayDurationInSeconds": {
+ "$ref": "#/definitions/InstanceCloseDelayDurationInSeconds",
+ "description": "Duration in seconds, to wait before a stateless instance is closed, to allow the active requests to drain gracefully. This would be effective when the instance is closing during the application/cluster\nupgrade, only for those instances which have a non-zero delay duration configured in the service description. See InstanceCloseDelayDurationSeconds property in $ref: \"#/definitions/StatelessServiceDescription.yaml\" for details.\nNote, the default value of InstanceCloseDelayDurationInSeconds is 4294967295, which indicates that the behavior will entirely depend on the delay configured in the stateless service description."
+ }
+ },
+ "required": [
+ "RollingUpgradeMode"
+ ]
+ },
+ "NameDescription": {
+ "description": "Describes a Service Fabric name.",
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/FabricName",
+ "description": "The Service Fabric name, including the 'fabric:' URI scheme."
+ }
+ },
+ "required": [
+ "Name"
+ ]
+ },
+ "FabricName": {
+ "type": "string",
+ "description": "The Service Fabric name, including the 'fabric:' URI scheme."
+ },
+ "PagedSubNameInfoList": {
+ "description": "A paged list of Service Fabric names. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "IsConsistent": {
+ "type": "boolean",
+ "description": "Indicates whether any name under the given name has been modified during the enumeration. If there was a modification, this property value is false."
+ },
+ "SubNames": {
+ "type": "array",
+ "description": "List of the child names.",
+ "items": {
+ "$ref": "#/definitions/FabricName"
+ }
+ }
+ }
+ },
+ "PropertyValueKind": {
+ "type": "string",
+ "description": "The kind of property, determined by the type of data. Following are the possible values.",
+ "enum": [
+ "Invalid",
+ "Binary",
+ "Int64",
+ "Double",
+ "String",
+ "Guid"
+ ],
+ "x-ms-enum": {
+ "name": "PropertyValueKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the property is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Binary",
+ "description": "The data inside the property is a binary blob. The value is 1."
+ },
+ {
+ "value": "Int64",
+ "description": "The data inside the property is an int64. The value is 2."
+ },
+ {
+ "value": "Double",
+ "description": "The data inside the property is a double. The value is 3."
+ },
+ {
+ "value": "String",
+ "description": "The data inside the property is a string. The value is 4."
+ },
+ {
+ "value": "Guid",
+ "description": "The data inside the property is a guid. The value is 5."
+ }
+ ]
+ }
+ },
+ "PropertyValue": {
+ "discriminator": "Kind",
+ "description": "Describes a Service Fabric property value.",
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/PropertyValueKind",
+ "description": "The kind of property, determined by the type of data. Following are the possible values."
+ }
+ },
+ "required": [
+ "Kind"
+ ]
+ },
+ "BinaryPropertyValue": {
+ "description": "Describes a Service Fabric property value of type Binary.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PropertyValue"
+ }
+ ],
+ "x-ms-discriminator-value": "Binary",
+ "required": [
+ "Data"
+ ],
+ "properties": {
+ "Data": {
+ "$ref": "#/definitions/ByteArray",
+ "description": "Array of bytes to be sent as an integer array. Each element of array is a number between 0 and 255."
+ }
+ }
+ },
+ "Int64PropertyValue": {
+ "description": "Describes a Service Fabric property value of type Int64.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PropertyValue"
+ }
+ ],
+ "x-ms-discriminator-value": "Int64",
+ "required": [
+ "Data"
+ ],
+ "properties": {
+ "Data": {
+ "type": "string",
+ "description": "The data of the property value."
+ }
+ }
+ },
+ "DoublePropertyValue": {
+ "description": "Describes a Service Fabric property value of type Double.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PropertyValue"
+ }
+ ],
+ "x-ms-discriminator-value": "Double",
+ "required": [
+ "Data"
+ ],
+ "properties": {
+ "Data": {
+ "type": "number",
+ "format": "double",
+ "description": "The data of the property value."
+ }
+ }
+ },
+ "StringPropertyValue": {
+ "description": "Describes a Service Fabric property value of type String.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PropertyValue"
+ }
+ ],
+ "x-ms-discriminator-value": "String",
+ "required": [
+ "Data"
+ ],
+ "properties": {
+ "Data": {
+ "type": "string",
+ "description": "The data of the property value."
+ }
+ }
+ },
+ "GuidPropertyValue": {
+ "description": "Describes a Service Fabric property value of type Guid.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PropertyValue"
+ }
+ ],
+ "x-ms-discriminator-value": "Guid",
+ "required": [
+ "Data"
+ ],
+ "properties": {
+ "Data": {
+ "type": "string",
+ "format": "uuid",
+ "description": "The data of the property value."
+ }
+ }
+ },
+ "PropertyInfo": {
+ "description": "Information about a Service Fabric property.",
+ "properties": {
+ "Name": {
+ "$ref": "#/definitions/PropertyName",
+ "description": "The name of the Service Fabric property."
+ },
+ "Value": {
+ "$ref": "#/definitions/PropertyValue",
+ "description": "Describes a Service Fabric property value."
+ },
+ "Metadata": {
+ "$ref": "#/definitions/PropertyMetadata",
+ "description": "The metadata associated with a property, including the property's name."
+ }
+ },
+ "required": [
+ "Name",
+ "Metadata"
+ ]
+ },
+ "PagedPropertyInfoList": {
+ "description": "The paged list of Service Fabric properties under a given name. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "IsConsistent": {
+ "type": "boolean",
+ "description": "Indicates whether any property under the given name has been modified during the enumeration. If there was a modification, this property value is false."
+ },
+ "Properties": {
+ "type": "array",
+ "description": "List of property information.",
+ "items": {
+ "$ref": "#/definitions/PropertyInfo"
+ }
+ }
+ }
+ },
+ "PropertyDescription": {
+ "description": "Description of a Service Fabric property.",
+ "properties": {
+ "PropertyName": {
+ "$ref": "#/definitions/PropertyName",
+ "description": "The name of the Service Fabric property."
+ },
+ "CustomTypeId": {
+ "$ref": "#/definitions/PropertyCustomTypeId",
+ "description": "The property's custom type ID. Using this property, the user is able to tag the type of the value of the property."
+ },
+ "Value": {
+ "$ref": "#/definitions/PropertyValue",
+ "description": "Describes a Service Fabric property value."
+ }
+ },
+ "required": [
+ "PropertyName",
+ "Value"
+ ]
+ },
+ "PropertyName": {
+ "type": "string",
+ "description": "The name of the Service Fabric property."
+ },
+ "PropertyMetadata": {
+ "description": "The metadata associated with a property, including the property's name.",
+ "properties": {
+ "TypeId": {
+ "$ref": "#/definitions/PropertyValueKind",
+ "description": "The kind of property, determined by the type of data. Following are the possible values."
+ },
+ "CustomTypeId": {
+ "$ref": "#/definitions/PropertyCustomTypeId",
+ "description": "The property's custom type ID."
+ },
+ "Parent": {
+ "$ref": "#/definitions/FabricName",
+ "description": "The name of the parent Service Fabric Name for the property. It could be thought of as the name-space/table under which the property exists."
+ },
+ "SizeInBytes": {
+ "type": "integer",
+ "description": "The length of the serialized property value."
+ },
+ "LastModifiedUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Represents when the Property was last modified. Only write operations will cause this field to be updated."
+ },
+ "SequenceNumber": {
+ "type": "string",
+ "description": "The version of the property. Every time a property is modified, its sequence number is increased."
+ }
+ }
+ },
+ "PropertyCustomTypeId": {
+ "type": "string",
+ "description": "The property's custom type ID. Using this property, the user is able to tag the type of the value of the property."
+ },
+ "PropertyBatchDescriptionList": {
+ "description": "Describes a list of property batch operations to be executed. Either all or none of the operations will be committed.",
+ "properties": {
+ "Operations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PropertyBatchOperation"
+ },
+ "description": "A list of the property batch operations to be executed."
+ }
+ }
+ },
+ "PropertyBatchOperationKind": {
+ "type": "string",
+ "description": "The kind of property batch operation, determined by the operation to be performed. The following are the possible values.",
+ "enum": [
+ "Invalid",
+ "Put",
+ "Get",
+ "CheckExists",
+ "CheckSequence",
+ "Delete",
+ "CheckValue"
+ ],
+ "x-ms-enum": {
+ "name": "PropertyBatchOperationKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the property operation is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Put",
+ "description": "The operation will create or edit a property. The value is 1."
+ },
+ {
+ "value": "Get",
+ "description": "The operation will get a property. The value is 2."
+ },
+ {
+ "value": "CheckExists",
+ "description": "The operation will check that a property exists or doesn't exists, depending on the provided value. The value is 3."
+ },
+ {
+ "value": "CheckSequence",
+ "description": "The operation will ensure that the sequence number is equal to the provided value. The value is 4."
+ },
+ {
+ "value": "Delete",
+ "description": "The operation will delete a property. The value is 5."
+ },
+ {
+ "value": "CheckValue",
+ "description": "The operation will ensure that the value of a property is equal to the provided value. The value is 7."
+ }
+ ]
+ }
+ },
+ "PropertyBatchOperation": {
+ "discriminator": "Kind",
+ "description": "Represents the base type for property operations that can be put into a batch and submitted.",
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/PropertyBatchOperationKind",
+ "description": "The kind of property batch operation, determined by the operation to be performed. The following are the possible values."
+ },
+ "PropertyName": {
+ "$ref": "#/definitions/PropertyName",
+ "description": "The name of the Service Fabric property."
+ }
+ },
+ "required": [
+ "Kind",
+ "PropertyName"
+ ]
+ },
+ "CheckExistsPropertyBatchOperation": {
+ "description": "Represents a PropertyBatchOperation that compares the Boolean existence of a property with the Exists argument.\nThe PropertyBatchOperation operation fails if the property's existence is not equal to the Exists argument.\nThe CheckExistsPropertyBatchOperation is generally used as a precondition for the write operations in the batch.\nNote that if one PropertyBatchOperation in a PropertyBatch fails,\nthe entire batch fails and cannot be committed in a transactional manner.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PropertyBatchOperation"
+ }
+ ],
+ "x-ms-discriminator-value": "CheckExists",
+ "properties": {
+ "Exists": {
+ "type": "boolean",
+ "description": "Whether or not the property should exist for the operation to pass."
+ }
+ },
+ "required": [
+ "Exists"
+ ]
+ },
+ "CheckSequencePropertyBatchOperation": {
+ "description": "Compares the Sequence Number of a property with the SequenceNumber argument.\nA property's sequence number can be thought of as that property's version.\nEvery time the property is modified, its sequence number is increased.\nThe sequence number can be found in a property's metadata.\nThe comparison fails if the sequence numbers are not equal.\nCheckSequencePropertyBatchOperation is generally used as a precondition for the write operations in the batch.\nNote that if one PropertyBatchOperation in a PropertyBatch fails,\nthe entire batch fails and cannot be committed in a transactional manner.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PropertyBatchOperation"
+ }
+ ],
+ "x-ms-discriminator-value": "CheckSequence",
+ "properties": {
+ "SequenceNumber": {
+ "type": "string",
+ "description": "The expected sequence number."
+ }
+ },
+ "required": [
+ "SequenceNumber"
+ ]
+ },
+ "CheckValuePropertyBatchOperation": {
+ "description": "Represents a PropertyBatchOperation that compares the value of the property with the expected value.\nThe CheckValuePropertyBatchOperation is generally used as a precondition for the write operations in the batch.\nNote that if one PropertyBatchOperation in a PropertyBatch fails,\nthe entire batch fails and cannot be committed in a transactional manner.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PropertyBatchOperation"
+ }
+ ],
+ "x-ms-discriminator-value": "CheckValue",
+ "properties": {
+ "Value": {
+ "$ref": "#/definitions/PropertyValue",
+ "description": "The expected property value."
+ }
+ },
+ "required": [
+ "Value"
+ ]
+ },
+ "DeletePropertyBatchOperation": {
+ "description": "Represents a PropertyBatchOperation that deletes a specified property if it exists.\nNote that if one PropertyBatchOperation in a PropertyBatch fails,\nthe entire batch fails and cannot be committed in a transactional manner.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PropertyBatchOperation"
+ }
+ ],
+ "x-ms-discriminator-value": "Delete"
+ },
+ "GetPropertyBatchOperation": {
+ "description": "Represents a PropertyBatchOperation that gets the specified property if it exists.\nNote that if one PropertyBatchOperation in a PropertyBatch fails,\nthe entire batch fails and cannot be committed in a transactional manner.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PropertyBatchOperation"
+ }
+ ],
+ "x-ms-discriminator-value": "Get",
+ "properties": {
+ "IncludeValue": {
+ "type": "boolean",
+ "default": false,
+ "description": "Whether or not to return the property value with the metadata.\nTrue if values should be returned with the metadata; False to return only property metadata."
+ }
+ }
+ },
+ "PutPropertyBatchOperation": {
+ "description": "Puts the specified property under the specified name.\nNote that if one PropertyBatchOperation in a PropertyBatch fails,\nthe entire batch fails and cannot be committed in a transactional manner.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PropertyBatchOperation"
+ }
+ ],
+ "x-ms-discriminator-value": "Put",
+ "properties": {
+ "Value": {
+ "$ref": "#/definitions/PropertyValue",
+ "description": "Describes a Service Fabric property value."
+ },
+ "CustomTypeId": {
+ "$ref": "#/definitions/PropertyCustomTypeId",
+ "description": "The property's custom type ID. Using this property, the user is able to tag the type of the value of the property."
+ }
+ },
+ "required": [
+ "Value"
+ ]
+ },
+ "PropertyBatchInfoKind": {
+ "type": "string",
+ "description": "The kind of property batch info, determined by the results of a property batch. The following are the possible values.",
+ "enum": [
+ "Invalid",
+ "Successful",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "PropertyBatchInfoKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the property batch info is invalid. All Service Fabric enumerations have the invalid type."
+ },
+ {
+ "value": "Successful",
+ "description": "The property batch succeeded."
+ },
+ {
+ "value": "Failed",
+ "description": "The property batch failed."
+ }
+ ]
+ }
+ },
+ "PropertyBatchInfo": {
+ "discriminator": "Kind",
+ "description": "Information about the results of a property batch.",
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/PropertyBatchInfoKind",
+ "description": "The kind of property batch info, determined by the results of a property batch. The following are the possible values."
+ }
+ },
+ "required": [
+ "Kind"
+ ]
+ },
+ "SuccessfulPropertyBatchInfo": {
+ "description": "Derived from PropertyBatchInfo. Represents the property batch succeeding. Contains the results of any \"Get\" operations in the batch.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PropertyBatchInfo"
+ }
+ ],
+ "x-ms-discriminator-value": "Successful",
+ "properties": {
+ "Properties": {
+ "additionalProperties": {
+ "$ref": "#/definitions/PropertyInfo"
+ },
+ "description": "A map containing the properties that were requested through any \"Get\" property batch operations. The key represents the index of the \"Get\" operation in the original request, in string form. The value is the property. If a property is not found, it will not be in the map."
+ }
+ }
+ },
+ "FailedPropertyBatchInfo": {
+ "description": "Derived from PropertyBatchInfo. Represents the property batch failing. Contains information about the specific batch failure.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PropertyBatchInfo"
+ }
+ ],
+ "x-ms-discriminator-value": "Failed",
+ "properties": {
+ "ErrorMessage": {
+ "type": "string",
+ "description": "The error message of the failed operation. Describes the exception thrown due to the first unsuccessful operation in the property batch."
+ },
+ "OperationIndex": {
+ "type": "integer",
+ "description": "The index of the unsuccessful operation in the property batch."
+ }
+ }
+ },
+ "EntityKind": {
+ "type": "string",
+ "description": "The entity type of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc.",
+ "enum": [
+ "Invalid",
+ "Node",
+ "Partition",
+ "Service",
+ "Application",
+ "Replica",
+ "DeployedApplication",
+ "DeployedServicePackage",
+ "Cluster"
+ ],
+ "x-ms-enum": {
+ "name": "EntityKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid entity kind. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "Node",
+ "description": "Indicates the entity is a Service Fabric node. The value is 1."
+ },
+ {
+ "value": "Partition",
+ "description": "Indicates the entity is a Service Fabric partition. The value is 2."
+ },
+ {
+ "value": "Service",
+ "description": "Indicates the entity is a Service Fabric service. The value is 3."
+ },
+ {
+ "value": "Application",
+ "description": "Indicates the entity is a Service Fabric application. The value is 4."
+ },
+ {
+ "value": "Replica",
+ "description": "Indicates the entity is a Service Fabric replica. The value is 5."
+ },
+ {
+ "value": "DeployedApplication",
+ "description": "Indicates the entity is a Service Fabric deployed application. The value is 6."
+ },
+ {
+ "value": "DeployedServicePackage",
+ "description": "Indicates the entity is a Service Fabric deployed service package. The value is 7."
+ },
+ {
+ "value": "Cluster",
+ "description": "Indicates the entity is a Service Fabric cluster. The value is 8."
+ }
+ ]
+ }
+ },
+ "HealthStateCount": {
+ "description": "Represents information about how many health entities are in Ok, Warning and Error health state.",
+ "properties": {
+ "OkCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The number of health entities with aggregated health state Ok.",
+ "minimum": 0
+ },
+ "WarningCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The number of health entities with aggregated health state Warning.",
+ "minimum": 0
+ },
+ "ErrorCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The number of health entities with aggregated health state Error.",
+ "minimum": 0
+ }
+ }
+ },
+ "EntityKindHealthStateCount": {
+ "description": "Represents health state count for entities of the specified entity kind.",
+ "properties": {
+ "EntityKind": {
+ "$ref": "#/definitions/EntityKind",
+ "description": "The entity kind for which health states are evaluated."
+ },
+ "HealthStateCount": {
+ "$ref": "#/definitions/HealthStateCount",
+ "description": "The health state count for the entities of the specified kind."
+ }
+ }
+ },
+ "HealthStatistics": {
+ "description": "The health statistics of an entity, returned as part of the health query result when the query description is configured to include statistics.\nThe statistics include health state counts for all children types of the current entity.\nFor example, for cluster, the health statistics include health state counts for nodes, applications, services, partitions, replicas, deployed applications and deployed service packages.\nFor partition, the health statistics include health counts for replicas.",
+ "properties": {
+ "HealthStateCountList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityKindHealthStateCount"
+ },
+ "description": "List of health state counts per entity kind, which keeps track of how many children of the queried entity are in Ok, Warning and Error state."
+ }
+ }
+ },
+ "BackupPolicyDescription": {
+ "description": "Describes a backup policy for configuring periodic backup.",
+ "required": [
+ "Name",
+ "AutoRestoreOnDataLoss",
+ "Schedule",
+ "MaxIncrementalBackups",
+ "Storage"
+ ],
+ "properties": {
+ "Name": {
+ "type": "string",
+ "description": "The unique name identifying this backup policy."
+ },
+ "AutoRestoreOnDataLoss": {
+ "type": "boolean",
+ "description": "Specifies whether to trigger restore automatically using the latest available backup in case the partition experiences a data loss event."
+ },
+ "MaxIncrementalBackups": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 255,
+ "description": "Defines the maximum number of incremental backups to be taken between two full backups. This is just the upper limit. A full backup may be taken before specified number of incremental backups are completed in one of the following conditions\n- The replica has never taken a full backup since it has become primary,\n- Some of the log records since the last backup has been truncated, or\n- Replica passed the MaxAccumulatedBackupLogSizeInMB limit."
+ },
+ "Schedule": {
+ "$ref": "#/definitions/BackupScheduleDescription",
+ "description": "Describes the backup schedule parameters."
+ },
+ "Storage": {
+ "$ref": "#/definitions/BackupStorageDescription",
+ "description": "Describes the details of backup storage where to store the periodic backups."
+ },
+ "RetentionPolicy": {
+ "$ref": "#/definitions/RetentionPolicyDescription",
+ "description": "Describes the policy to retain backups in storage."
+ }
+ }
+ },
+ "PagedBackupPolicyDescriptionList": {
+ "description": "The list of backup policies configured in the cluster. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "The list of backup policies information.",
+ "items": {
+ "$ref": "#/definitions/BackupPolicyDescription"
+ }
+ }
+ }
+ },
+ "BasicRetentionPolicyDescription": {
+ "description": "Describes basic retention policy.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/RetentionPolicyDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "Basic",
+ "required": [
+ "RetentionDuration"
+ ],
+ "properties": {
+ "RetentionDuration": {
+ "type": "string",
+ "format": "duration",
+ "description": "It is the minimum duration for which a backup created, will remain stored in the storage and might get deleted after that span of time. It should be specified in ISO8601 format."
+ },
+ "MinimumNumberOfBackups": {
+ "type": "integer",
+ "minimum": 0,
+ "description": "It is the minimum number of backups to be retained at any point of time. If specified with a non zero value, backups will not be deleted even if the backups have gone past retention duration and have number of backups less than or equal to it."
+ }
+ }
+ },
+ "RetentionPolicyType": {
+ "type": "string",
+ "description": "The type of retention policy. Currently only \"Basic\" retention policy is supported.",
+ "enum": [
+ "Basic",
+ "Invalid"
+ ],
+ "x-ms-enum": {
+ "name": "RetentionPolicyType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Basic",
+ "description": "Indicates a basic retention policy type."
+ },
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid retention policy type."
+ }
+ ]
+ }
+ },
+ "DisableBackupDescription": {
+ "description": "It describes the body parameters while disabling backup of a backup entity(Application/Service/Partition).",
+ "required": [
+ "CleanBackup"
+ ],
+ "properties": {
+ "CleanBackup": {
+ "type": "boolean",
+ "description": "Boolean flag to delete backups. It can be set to true for deleting all the backups which were created for the backup entity that is getting disabled for backup."
+ }
+ }
+ },
+ "RetentionPolicyDescription": {
+ "description": "Describes the retention policy configured.",
+ "required": [
+ "RetentionPolicyType"
+ ],
+ "discriminator": "RetentionPolicyType",
+ "properties": {
+ "RetentionPolicyType": {
+ "$ref": "#/definitions/RetentionPolicyType",
+ "description": "The type of retention policy. Currently only \"Basic\" retention policy is supported."
+ }
+ }
+ },
+ "BackupStorageDescription": {
+ "required": [
+ "StorageKind"
+ ],
+ "discriminator": "StorageKind",
+ "properties": {
+ "StorageKind": {
+ "$ref": "#/definitions/BackupStorageKind",
+ "description": "The kind of backup storage, where backups are saved."
+ },
+ "FriendlyName": {
+ "type": "string",
+ "description": "Friendly name for this backup storage."
+ }
+ },
+ "description": "Describes the parameters for the backup storage."
+ },
+ "BackupStorageKind": {
+ "type": "string",
+ "description": "The kind of backup storage, where backups are saved.",
+ "enum": [
+ "Invalid",
+ "FileShare",
+ "AzureBlobStore",
+ "DsmsAzureBlobStore"
+ ],
+ "x-ms-enum": {
+ "name": "BackupStorageKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid backup storage kind. All Service Fabric enumerations have the invalid type."
+ },
+ {
+ "value": "FileShare",
+ "description": "Indicates file/ SMB share to be used as backup storage."
+ },
+ {
+ "value": "AzureBlobStore",
+ "description": "Indicates Azure blob store to be used as backup storage."
+ },
+ {
+ "value": "DsmsAzureBlobStore",
+ "description": "Indicates Dsms Azure blob store to be used as backup storage."
+ }
+ ]
+ }
+ },
+ "BackupScheduleDescription": {
+ "description": "Describes the backup schedule parameters.",
+ "required": [
+ "ScheduleKind"
+ ],
+ "discriminator": "ScheduleKind",
+ "properties": {
+ "ScheduleKind": {
+ "$ref": "#/definitions/BackupScheduleKind",
+ "description": "The kind of backup schedule, time based or frequency based."
+ }
+ }
+ },
+ "BackupScheduleKind": {
+ "type": "string",
+ "description": "The kind of backup schedule, time based or frequency based.",
+ "enum": [
+ "Invalid",
+ "TimeBased",
+ "FrequencyBased"
+ ],
+ "x-ms-enum": {
+ "name": "BackupScheduleKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid backup schedule kind. All Service Fabric enumerations have the invalid type."
+ },
+ {
+ "value": "TimeBased",
+ "description": "Indicates a time-based backup schedule."
+ },
+ {
+ "value": "FrequencyBased",
+ "description": "Indicates a frequency-based backup schedule."
+ }
+ ]
+ }
+ },
+ "ApplicationBackupConfigurationInfo": {
+ "description": "Backup configuration information for a specific Service Fabric application specifying what backup policy is being applied and suspend description, if any.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/BackupConfigurationInfo"
+ }
+ ],
+ "properties": {
+ "ApplicationName": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ }
+ },
+ "x-ms-discriminator-value": "Application"
+ },
+ "ServiceBackupConfigurationInfo": {
+ "description": "Backup configuration information for a specific Service Fabric service specifying what backup policy is being applied and suspend description, if any.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/BackupConfigurationInfo"
+ }
+ ],
+ "properties": {
+ "ServiceName": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The full name of the service with 'fabric:' URI scheme."
+ }
+ },
+ "x-ms-discriminator-value": "Service"
+ },
+ "PagedBackupConfigurationInfoList": {
+ "description": "The list of backup configuration information. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "List of backup configuration information.",
+ "items": {
+ "$ref": "#/definitions/BackupConfigurationInfo"
+ }
+ }
+ }
+ },
+ "BackupPolicyScope": {
+ "type": "string",
+ "description": "Specifies the scope at which the backup policy is applied.",
+ "enum": [
+ "Invalid",
+ "Partition",
+ "Service",
+ "Application"
+ ],
+ "x-ms-enum": {
+ "name": "BackupPolicyScope",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid backup policy scope type. All Service Fabric enumerations have the invalid type."
+ },
+ {
+ "value": "Partition",
+ "description": "Indicates the backup policy is applied at partition level. Hence overriding any policy which may have applied at partition's service or application level."
+ },
+ {
+ "value": "Service",
+ "description": "Indicates the backup policy is applied at service level. All partitions of the service inherit this policy unless explicitly overridden at partition level."
+ },
+ {
+ "value": "Application",
+ "description": "Indicates the backup policy is applied at application level. All services and partitions of the application inherit this policy unless explicitly overridden at service or partition level."
+ }
+ ]
+ }
+ },
+ "BackupSuspensionScope": {
+ "type": "string",
+ "description": "Specifies the scope at which the backup suspension was applied.",
+ "enum": [
+ "Invalid",
+ "Partition",
+ "Service",
+ "Application"
+ ],
+ "x-ms-enum": {
+ "name": "BackupSuspensionScope",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid backup suspension scope type also indicating entity is not suspended. All Service Fabric enumerations have the invalid type."
+ },
+ {
+ "value": "Partition",
+ "description": "Indicates the backup suspension is applied at partition level."
+ },
+ {
+ "value": "Service",
+ "description": "Indicates the backup suspension is applied at service level. All partitions of the service are hence suspended for backup."
+ },
+ {
+ "value": "Application",
+ "description": "Indicates the backup suspension is applied at application level. All services and partitions of the application are hence suspended for backup."
+ }
+ ]
+ }
+ },
+ "RestorePartitionDescription": {
+ "description": "Specifies the parameters needed to trigger a restore of a specific partition.",
+ "required": [
+ "BackupId",
+ "BackupLocation"
+ ],
+ "properties": {
+ "BackupId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Unique backup ID."
+ },
+ "BackupLocation": {
+ "type": "string",
+ "description": "Location of the backup relative to the backup storage specified/ configured."
+ },
+ "BackupStorage": {
+ "$ref": "#/definitions/BackupStorageDescription",
+ "description": "Location of the backup from where the partition will be restored."
+ }
+ }
+ },
+ "RestoreProgressInfo": {
+ "description": "Describes the progress of a restore operation on a partition.",
+ "properties": {
+ "RestoreState": {
+ "$ref": "#/definitions/RestoreState",
+ "description": "Represents the current state of the partition restore operation."
+ },
+ "TimeStampUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Timestamp when operation succeeded or failed."
+ },
+ "RestoredEpoch": {
+ "$ref": "#/definitions/Epoch",
+ "description": "Describes the epoch at which the partition is restored."
+ },
+ "RestoredLsn": {
+ "type": "string",
+ "description": "Restored LSN."
+ },
+ "FailureError": {
+ "$ref": "#/definitions/FabricErrorError",
+ "description": "Denotes the failure encountered in performing restore operation."
+ }
+ }
+ },
+ "RestoreState": {
+ "type": "string",
+ "description": "Represents the current state of the partition restore operation.",
+ "enum": [
+ "Invalid",
+ "Accepted",
+ "RestoreInProgress",
+ "Success",
+ "Failure",
+ "Timeout"
+ ],
+ "x-ms-enum": {
+ "name": "RestoreState",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid restore state. All Service Fabric enumerations have the invalid type."
+ },
+ {
+ "value": "Accepted",
+ "description": "Operation has been validated and accepted. Restore is yet to be triggered."
+ },
+ {
+ "value": "RestoreInProgress",
+ "description": "Restore operation has been triggered and is under process."
+ },
+ {
+ "value": "Success",
+ "description": "Operation completed with success."
+ },
+ {
+ "value": "Failure",
+ "description": "Operation completed with failure."
+ },
+ {
+ "value": "Timeout",
+ "description": "Operation timed out."
+ }
+ ]
+ }
+ },
+ "BackupPartitionDescription": {
+ "description": "Describes the parameters for triggering partition's backup.",
+ "properties": {
+ "BackupStorage": {
+ "$ref": "#/definitions/BackupStorageDescription",
+ "description": "Specifies the details of the backup storage where to save the backup."
+ }
+ }
+ },
+ "BackupInfo": {
+ "description": "Represents a backup point which can be used to trigger a restore.",
+ "properties": {
+ "BackupId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Unique backup ID ."
+ },
+ "BackupChainId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Unique backup chain ID. All backups part of the same chain has the same backup chain id. A backup chain is comprised of 1 full backup and multiple incremental backups."
+ },
+ "ApplicationName": {
+ "type": "string",
+ "description": "Name of the Service Fabric application this partition backup belongs to."
+ },
+ "ServiceName": {
+ "type": "string",
+ "description": "Name of the Service Fabric service this partition backup belongs to."
+ },
+ "PartitionInformation": {
+ "$ref": "#/definitions/PartitionInformation",
+ "description": "Information about the partition to which this backup belongs to"
+ },
+ "BackupLocation": {
+ "type": "string",
+ "description": "Location of the backup, relative to the backup store."
+ },
+ "BackupType": {
+ "$ref": "#/definitions/BackupType",
+ "description": "Describes the type of backup, whether its full or incremental."
+ },
+ "EpochOfLastBackupRecord": {
+ "$ref": "#/definitions/Epoch",
+ "description": "Epoch of the last record in this backup."
+ },
+ "LsnOfLastBackupRecord": {
+ "type": "string",
+ "description": "LSN of the last record in this backup."
+ },
+ "CreationTimeUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The date time when this backup was taken."
+ },
+ "ServiceManifestVersion": {
+ "type": "string",
+ "description": "Manifest Version of the service this partition backup belongs to."
+ },
+ "FailureError": {
+ "$ref": "#/definitions/FabricErrorError",
+ "description": "Denotes the failure encountered in getting backup point information."
+ }
+ }
+ },
+ "PagedBackupInfoList": {
+ "description": "The list of backups. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "List of backup information.",
+ "items": {
+ "$ref": "#/definitions/BackupInfo"
+ }
+ }
+ }
+ },
+ "BackupType": {
+ "type": "string",
+ "description": "Describes the type of backup, whether its full or incremental.",
+ "enum": [
+ "Invalid",
+ "Full",
+ "Incremental"
+ ],
+ "x-ms-enum": {
+ "name": "BackupType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid backup type. All Service Fabric enumerations have the invalid type."
+ },
+ {
+ "value": "Full",
+ "description": "Indicates a full backup."
+ },
+ {
+ "value": "Incremental",
+ "description": "Indicates an incremental backup. A backup chain is comprised of a full backup followed by 0 or more incremental backups."
+ }
+ ]
+ }
+ },
+ "AzureBlobBackupStorageDescription": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/BackupStorageDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "AzureBlobStore",
+ "required": [
+ "ConnectionString",
+ "ContainerName"
+ ],
+ "properties": {
+ "ConnectionString": {
+ "type": "string",
+ "description": "The connection string to connect to the Azure blob store."
+ },
+ "ContainerName": {
+ "type": "string",
+ "description": "The name of the container in the blob store to store and enumerate backups from."
+ }
+ },
+ "description": "Describes the parameters for Azure blob store used for storing and enumerating backups."
+ },
+ "FileShareBackupStorageDescription": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/BackupStorageDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "FileShare",
+ "required": [
+ "Path"
+ ],
+ "description": "Describes the parameters for file share storage used for storing or enumerating backups.",
+ "properties": {
+ "Path": {
+ "type": "string",
+ "description": "UNC path of the file share where to store or enumerate backups from."
+ },
+ "PrimaryUserName": {
+ "type": "string",
+ "description": "Primary user name to access the file share."
+ },
+ "PrimaryPassword": {
+ "type": "string",
+ "description": "Primary password to access the share location."
+ },
+ "SecondaryUserName": {
+ "type": "string",
+ "description": "Secondary user name to access the file share."
+ },
+ "SecondaryPassword": {
+ "type": "string",
+ "description": "Secondary password to access the share location"
+ }
+ }
+ },
+ "DsmsAzureBlobBackupStorageDescription": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/BackupStorageDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "DsmsAzureBlobStore",
+ "required": [
+ "StorageCredentialsSourceLocation",
+ "ContainerName"
+ ],
+ "properties": {
+ "StorageCredentialsSourceLocation": {
+ "type": "string",
+ "description": "The source location of the storage credentials to connect to the Dsms Azure blob store."
+ },
+ "ContainerName": {
+ "type": "string",
+ "description": "The name of the container in the blob store to store and enumerate backups from."
+ }
+ },
+ "description": "Describes the parameters for Dsms Azure blob store used for storing and enumerating backups."
+ },
+ "FrequencyBasedBackupScheduleDescription": {
+ "description": "Describes the frequency based backup schedule.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/BackupScheduleDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "FrequencyBased",
+ "required": [
+ "Interval"
+ ],
+ "properties": {
+ "Interval": {
+ "type": "string",
+ "format": "duration",
+ "description": "Defines the interval with which backups are periodically taken. It should be specified in ISO8601 format. Timespan in seconds is not supported and will be ignored while creating the policy."
+ }
+ }
+ },
+ "TimeBasedBackupScheduleDescription": {
+ "description": "Describes the time based backup schedule.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/BackupScheduleDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "TimeBased",
+ "required": [
+ "ScheduleFrequencyType",
+ "RunTimes"
+ ],
+ "properties": {
+ "ScheduleFrequencyType": {
+ "$ref": "#/definitions/BackupScheduleFrequencyType",
+ "description": "Describes the frequency with which to run the time based backup schedule."
+ },
+ "RunDays": {
+ "$ref": "#/definitions/DayOfWeekList",
+ "description": "List of days of a week when to trigger the periodic backup. This is valid only when the backup schedule frequency type is weekly."
+ },
+ "RunTimes": {
+ "$ref": "#/definitions/TimeList",
+ "description": "Represents the list of exact time during the day in ISO8601 format. Like '19:00:00' will represent '7PM' during the day. Date specified along with time will be ignored."
+ }
+ }
+ },
+ "BackupScheduleFrequencyType": {
+ "type": "string",
+ "description": "Describes the frequency with which to run the time based backup schedule.",
+ "enum": [
+ "Invalid",
+ "Daily",
+ "Weekly"
+ ],
+ "x-ms-enum": {
+ "name": "BackupScheduleFrequencyType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid backup schedule frequency type. All Service Fabric enumerations have the invalid type."
+ },
+ {
+ "value": "Daily",
+ "description": "Indicates that the time based backup schedule is repeated at a daily frequency."
+ },
+ {
+ "value": "Weekly",
+ "description": "Indicates that the time based backup schedule is repeated at a weekly frequency."
+ }
+ ]
+ }
+ },
+ "TimeList": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "description": "Represents the list of exact time during the day in ISO8601 format. Like '19:00:00' will represent '7PM' during the day. Date specified along with time will be ignored."
+ },
+ "DayOfWeekList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DayOfWeek"
+ },
+ "description": "List of days of a week when to trigger the periodic backup. This is valid only when the backup schedule frequency type is weekly."
+ },
+ "DayOfWeek": {
+ "type": "string",
+ "description": "Describes the days in a week.",
+ "enum": [
+ "Sunday",
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday"
+ ],
+ "x-ms-enum": {
+ "name": "DayOfWeek",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Sunday",
+ "description": "Indicates the Day referred is Sunday."
+ },
+ {
+ "value": "Monday",
+ "description": "Indicates the Day referred is Monday."
+ },
+ {
+ "value": "Tuesday",
+ "description": "Indicates the Day referred is Tuesday."
+ },
+ {
+ "value": "Wednesday",
+ "description": "Indicates the Day referred is Wednesday."
+ },
+ {
+ "value": "Thursday",
+ "description": "Indicates the Day referred is Thursday."
+ },
+ {
+ "value": "Friday",
+ "description": "Indicates the Day referred is Friday."
+ },
+ {
+ "value": "Saturday",
+ "description": "Indicates the Day referred is Saturday."
+ }
+ ]
+ }
+ },
+ "BackupProgressInfo": {
+ "description": "Describes the progress of a partition's backup.",
+ "properties": {
+ "BackupState": {
+ "$ref": "#/definitions/BackupState",
+ "description": "Represents the current state of the partition backup operation."
+ },
+ "TimeStampUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "TimeStamp in UTC when operation succeeded or failed."
+ },
+ "BackupId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Unique ID of the newly created backup."
+ },
+ "BackupLocation": {
+ "type": "string",
+ "description": "Location, relative to the backup store, of the newly created backup."
+ },
+ "EpochOfLastBackupRecord": {
+ "$ref": "#/definitions/Epoch",
+ "description": "Specifies the epoch of the last record included in backup."
+ },
+ "LsnOfLastBackupRecord": {
+ "type": "string",
+ "description": "The LSN of last record included in backup."
+ },
+ "FailureError": {
+ "$ref": "#/definitions/FabricErrorError",
+ "description": "Denotes the failure encountered in performing backup operation."
+ }
+ }
+ },
+ "BackupConfigurationInfo": {
+ "discriminator": "Kind",
+ "description": "Describes the backup configuration information.",
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/BackupEntityKind",
+ "description": "The entity type of a Service Fabric entity such as Application, Service or a Partition where periodic backups can be enabled."
+ },
+ "PolicyName": {
+ "description": "The name of the backup policy which is applicable to this Service Fabric application or service or partition.",
+ "type": "string"
+ },
+ "PolicyInheritedFrom": {
+ "$ref": "#/definitions/BackupPolicyScope",
+ "description": "Specifies the scope at which the backup policy is applied."
+ },
+ "SuspensionInfo": {
+ "$ref": "#/definitions/BackupSuspensionInfo",
+ "description": "Describes the backup suspension details."
+ }
+ },
+ "required": [
+ "Kind"
+ ]
+ },
+ "PartitionBackupConfigurationInfo": {
+ "description": "Backup configuration information, for a specific partition, specifying what backup policy is being applied and suspend description, if any.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/BackupConfigurationInfo"
+ }
+ ],
+ "properties": {
+ "ServiceName": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The full name of the service with 'fabric:' URI scheme."
+ },
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "The partition ID identifying the partition."
+ }
+ },
+ "x-ms-discriminator-value": "Partition"
+ },
+ "BackupState": {
+ "type": "string",
+ "description": "Represents the current state of the partition backup operation.",
+ "enum": [
+ "Invalid",
+ "Accepted",
+ "BackupInProgress",
+ "Success",
+ "Failure",
+ "Timeout"
+ ],
+ "x-ms-enum": {
+ "name": "BackupState",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid backup state. All Service Fabric enumerations have the invalid type."
+ },
+ {
+ "value": "Accepted",
+ "description": "Operation has been validated and accepted. Backup is yet to be triggered."
+ },
+ {
+ "value": "BackupInProgress",
+ "description": "Backup operation has been triggered and is under process."
+ },
+ {
+ "value": "Success",
+ "description": "Operation completed with success."
+ },
+ {
+ "value": "Failure",
+ "description": "Operation completed with failure."
+ },
+ {
+ "value": "Timeout",
+ "description": "Operation timed out."
+ }
+ ]
+ }
+ },
+ "BackupEntity": {
+ "discriminator": "EntityKind",
+ "description": "Describes the Service Fabric entity that is configured for backup.",
+ "properties": {
+ "EntityKind": {
+ "$ref": "#/definitions/BackupEntityKind",
+ "description": "The entity type of a Service Fabric entity such as Application, Service or a Partition where periodic backups can be enabled."
+ }
+ },
+ "required": [
+ "EntityKind"
+ ]
+ },
+ "ApplicationBackupEntity": {
+ "description": "Identifies the Service Fabric application which is being backed up.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/BackupEntity"
+ }
+ ],
+ "properties": {
+ "ApplicationName": {
+ "$ref": "#/definitions/ApplicationName",
+ "description": "The name of the application, including the 'fabric:' URI scheme."
+ }
+ },
+ "x-ms-discriminator-value": "Application"
+ },
+ "ServiceBackupEntity": {
+ "description": "Identifies the Service Fabric stateful service which is being backed up.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/BackupEntity"
+ }
+ ],
+ "properties": {
+ "ServiceName": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The full name of the service with 'fabric:' URI scheme."
+ }
+ },
+ "x-ms-discriminator-value": "Service"
+ },
+ "PartitionBackupEntity": {
+ "description": "Identifies the Service Fabric stateful partition which is being backed up.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/BackupEntity"
+ }
+ ],
+ "properties": {
+ "ServiceName": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The full name of the service with 'fabric:' URI scheme."
+ },
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "The partition ID identifying the partition."
+ }
+ },
+ "x-ms-discriminator-value": "Partition"
+ },
+ "EnableBackupDescription": {
+ "description": "Specifies the parameters needed to enable periodic backup.",
+ "required": [
+ "BackupPolicyName"
+ ],
+ "properties": {
+ "BackupPolicyName": {
+ "type": "string",
+ "description": "Name of the backup policy to be used for enabling periodic backups."
+ }
+ }
+ },
+ "PagedBackupEntityList": {
+ "description": "The list of backup entities that are being periodically backed. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "List of backup entity information.",
+ "items": {
+ "$ref": "#/definitions/BackupEntity"
+ }
+ }
+ }
+ },
+ "BackupSuspensionInfo": {
+ "description": "Describes the backup suspension details.",
+ "properties": {
+ "IsSuspended": {
+ "type": "boolean",
+ "description": "Indicates whether periodic backup is suspended at this level or not."
+ },
+ "SuspensionInheritedFrom": {
+ "$ref": "#/definitions/BackupSuspensionScope",
+ "description": "Specifies the scope at which the backup suspension was applied."
+ }
+ }
+ },
+ "BackupEntityKind": {
+ "type": "string",
+ "description": "The entity type of a Service Fabric entity such as Application, Service or a Partition where periodic backups can be enabled.",
+ "enum": [
+ "Invalid",
+ "Partition",
+ "Service",
+ "Application"
+ ],
+ "x-ms-enum": {
+ "name": "BackupEntityKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid entity kind. All Service Fabric enumerations have the invalid type."
+ },
+ {
+ "value": "Partition",
+ "description": "Indicates the entity is a Service Fabric partition."
+ },
+ {
+ "value": "Service",
+ "description": "Indicates the entity is a Service Fabric service."
+ },
+ {
+ "value": "Application",
+ "description": "Indicates the entity is a Service Fabric application."
+ }
+ ]
+ }
+ },
+ "GetBackupByStorageQueryDescription": {
+ "description": "Describes additional filters to be applied, while listing backups, and backup storage details from where to fetch the backups.",
+ "required": [
+ "Storage",
+ "BackupEntity"
+ ],
+ "properties": {
+ "StartDateTimeFilter": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Specifies the start date time in ISO8601 from which to enumerate backups. If not specified, backups are enumerated from the beginning."
+ },
+ "EndDateTimeFilter": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Specifies the end date time in ISO8601 till which to enumerate backups. If not specified, backups are enumerated till the end."
+ },
+ "Latest": {
+ "type": "boolean",
+ "default": false,
+ "description": "If specified as true, gets the most recent backup (within the specified time range) for every partition under the specified backup entity."
+ },
+ "Storage": {
+ "$ref": "#/definitions/BackupStorageDescription",
+ "description": "Describes the parameters for the backup storage from where to enumerate backups. This is optional and by default backups are enumerated from the backup storage where this backup entity is currently being backed up (as specified in backup policy). This parameter is useful to be able to enumerate backups from another cluster where you may intend to restore."
+ },
+ "BackupEntity": {
+ "$ref": "#/definitions/BackupEntity",
+ "description": "Indicates the entity for which to enumerate backups."
+ }
+ }
+ },
+ "NodeImpact": {
+ "description": "Describes the expected impact of a repair to a particular node.\n\nThis type supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "properties": {
+ "NodeName": {
+ "type": "string",
+ "description": "The name of the impacted node."
+ },
+ "ImpactLevel": {
+ "type": "string",
+ "enum": [
+ "Invalid",
+ "None",
+ "Restart",
+ "RemoveData",
+ "RemoveNode"
+ ],
+ "description": "The level of impact expected.",
+ "x-ms-enum": {
+ "name": "ImpactLevel",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid"
+ },
+ {
+ "value": "None"
+ },
+ {
+ "value": "Restart"
+ },
+ {
+ "value": "RemoveData"
+ },
+ {
+ "value": "RemoveNode"
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "NodeName"
+ ]
+ },
+ "NodeRepairImpactDescription": {
+ "description": "Describes the expected impact of a repair on a set of nodes.\n\nThis type supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "x-ms-discriminator-value": "Node",
+ "allOf": [
+ {
+ "$ref": "#/definitions/RepairImpactDescriptionBase"
+ }
+ ],
+ "properties": {
+ "NodeImpactList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NodeImpact"
+ },
+ "description": "The list of nodes impacted by a repair action and their respective expected impact."
+ }
+ }
+ },
+ "NodeRepairTargetDescription": {
+ "description": "Describes the list of nodes targeted by a repair action.\n\nThis type supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "x-ms-discriminator-value": "Node",
+ "allOf": [
+ {
+ "$ref": "#/definitions/RepairTargetDescriptionBase"
+ }
+ ],
+ "properties": {
+ "NodeNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The list of nodes targeted by a repair action."
+ }
+ }
+ },
+ "RepairImpactDescriptionBase": {
+ "discriminator": "Kind",
+ "description": "Describes the expected impact of executing a repair task.\n\nThis type supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/RepairImpactKind",
+ "description": "The kind of repair impact represented by the current object."
+ }
+ },
+ "required": [
+ "Kind"
+ ]
+ },
+ "RepairImpactKind": {
+ "description": "Specifies the kind of the impact. This type supports the Service Fabric platform; it is not meant to be used directly from your code.'",
+ "type": "string",
+ "enum": [
+ "Invalid",
+ "Node"
+ ],
+ "x-ms-enum": {
+ "name": "RepairImpactKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "The repair impact is not valid or is of an unknown type."
+ },
+ {
+ "value": "Node",
+ "description": "The repair impact affects a set of Service Fabric nodes."
+ }
+ ]
+ }
+ },
+ "RepairTargetDescriptionBase": {
+ "discriminator": "Kind",
+ "description": "Describes the entities targeted by a repair action.\n\nThis type supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/RepairTargetKind",
+ "description": "The kind of repair target described by the current object."
+ }
+ },
+ "required": [
+ "Kind"
+ ]
+ },
+ "RepairTargetKind": {
+ "description": "Specifies the kind of the repair target. This type supports the Service Fabric platform; it is not meant to be used directly from your code.'",
+ "type": "string",
+ "enum": [
+ "Invalid",
+ "Node"
+ ],
+ "x-ms-enum": {
+ "name": "RepairTargetKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "The repair target is not valid or is of an unknown type."
+ },
+ {
+ "value": "Node",
+ "description": "The repair target is a set of Service Fabric nodes."
+ }
+ ]
+ }
+ },
+ "RepairTask": {
+ "description": "Represents a repair task, which includes information about what kind of repair was requested, what its progress is, and what its final result was.\n\nThis type supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "properties": {
+ "TaskId": {
+ "type": "string",
+ "description": "The ID of the repair task."
+ },
+ "Version": {
+ "type": "string",
+ "description": "The version of the repair task.\nWhen creating a new repair task, the version must be set to zero. When updating a repair task,\nthe version is used for optimistic concurrency checks. If the version is\nset to zero, the update will not check for write conflicts. If the version is set to a non-zero value, then the\nupdate will only succeed if the actual current version of the repair task matches this value."
+ },
+ "Description": {
+ "type": "string",
+ "description": "A description of the purpose of the repair task, or other informational details.\nMay be set when the repair task is created, and is immutable once set."
+ },
+ "State": {
+ "type": "string",
+ "enum": [
+ "Invalid",
+ "Created",
+ "Claimed",
+ "Preparing",
+ "Approved",
+ "Executing",
+ "Restoring",
+ "Completed"
+ ],
+ "description": "The workflow state of the repair task. Valid initial states are Created, Claimed, and Preparing.",
+ "x-ms-enum": {
+ "name": "State",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates that the repair task state is invalid. All Service Fabric enumerations have the invalid value."
+ },
+ {
+ "value": "Created",
+ "description": "Indicates that the repair task has been created."
+ },
+ {
+ "value": "Claimed",
+ "description": "Indicates that the repair task has been claimed by a repair executor."
+ },
+ {
+ "value": "Preparing",
+ "description": "Indicates that the Repair Manager is preparing the system to handle the impact of the repair task, usually by taking resources offline gracefully."
+ },
+ {
+ "value": "Approved",
+ "description": "Indicates that the repair task has been approved by the Repair Manager and is safe to execute."
+ },
+ {
+ "value": "Executing",
+ "description": "Indicates that execution of the repair task is in progress."
+ },
+ {
+ "value": "Restoring",
+ "description": "Indicates that the Repair Manager is restoring the system to its pre-repair state, usually by bringing resources back online."
+ },
+ {
+ "value": "Completed",
+ "description": "Indicates that the repair task has completed, and no further state changes will occur."
+ }
+ ]
+ }
+ },
+ "Flags": {
+ "type": "integer",
+ "description": "A bitwise-OR of the following values, which gives additional details about the status of the repair task.\n- 1 - Cancellation of the repair has been requested\n- 2 - Abort of the repair has been requested\n- 4 - Approval of the repair was forced via client request"
+ },
+ "Action": {
+ "type": "string",
+ "description": "The requested repair action. Must be specified when the repair task is created, and is immutable once set."
+ },
+ "Target": {
+ "$ref": "#/definitions/RepairTargetDescriptionBase",
+ "description": "The target object determines what actions the system will take to prepare for the impact of the repair, prior to approving execution of the repair.\nMay be set when the repair task is created, and is immutable once set."
+ },
+ "Executor": {
+ "type": "string",
+ "description": "The name of the repair executor. Must be specified in Claimed and later states, and is immutable once set."
+ },
+ "ExecutorData": {
+ "type": "string",
+ "description": "A data string that the repair executor can use to store its internal state."
+ },
+ "Impact": {
+ "$ref": "#/definitions/RepairImpactDescriptionBase",
+ "description": "The impact object determines what actions the system will take to prepare for the impact of the repair, prior to approving execution of the repair.\nImpact must be specified by the repair executor when transitioning to the Preparing state, and is immutable once set."
+ },
+ "ResultStatus": {
+ "type": "string",
+ "enum": [
+ "Invalid",
+ "Succeeded",
+ "Cancelled",
+ "Interrupted",
+ "Failed",
+ "Pending"
+ ],
+ "description": "A value describing the overall result of the repair task execution. Must be specified in the Restoring and later states, and is immutable once set.",
+ "x-ms-enum": {
+ "name": "ResultStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates that the repair task result is invalid. All Service Fabric enumerations have the invalid value."
+ },
+ {
+ "value": "Succeeded",
+ "description": "Indicates that the repair task completed execution successfully."
+ },
+ {
+ "value": "Cancelled",
+ "description": "Indicates that the repair task was cancelled prior to execution."
+ },
+ {
+ "value": "Interrupted",
+ "description": "Indicates that execution of the repair task was interrupted by a cancellation request after some work had already been performed."
+ },
+ {
+ "value": "Failed",
+ "description": "Indicates that there was a failure during execution of the repair task. Some work may have been performed."
+ },
+ {
+ "value": "Pending",
+ "description": "Indicates that the repair task result is not yet available, because the repair task has not finished executing."
+ }
+ ]
+ }
+ },
+ "ResultCode": {
+ "type": "integer",
+ "description": "A numeric value providing additional details about the result of the repair task execution.\nMay be specified in the Restoring and later states, and is immutable once set."
+ },
+ "ResultDetails": {
+ "type": "string",
+ "description": "A string providing additional details about the result of the repair task execution.\nMay be specified in the Restoring and later states, and is immutable once set."
+ },
+ "History": {
+ "$ref": "#/definitions/RepairTaskHistory",
+ "description": "An object that contains timestamps of the repair task's state transitions.\nThese timestamps are updated by the system, and cannot be directly modified."
+ },
+ "PreparingHealthCheckState": {
+ "$ref": "#/definitions/RepairTaskHealthCheckState",
+ "description": "The workflow state of the health check when the repair task is in the Preparing state."
+ },
+ "RestoringHealthCheckState": {
+ "$ref": "#/definitions/RepairTaskHealthCheckState",
+ "description": "The workflow state of the health check when the repair task is in the Restoring state."
+ },
+ "PerformPreparingHealthCheck": {
+ "type": "boolean",
+ "description": "A value to determine if health checks will be performed when the repair task enters the Preparing state."
+ },
+ "PerformRestoringHealthCheck": {
+ "type": "boolean",
+ "description": "A value to determine if health checks will be performed when the repair task enters the Restoring state."
+ }
+ },
+ "required": [
+ "TaskId",
+ "Action",
+ "State"
+ ]
+ },
+ "RepairTaskApproveDescription": {
+ "description": "Describes a request for forced approval of a repair task.\n\nThis type supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "properties": {
+ "TaskId": {
+ "type": "string",
+ "description": "The ID of the repair task."
+ },
+ "Version": {
+ "type": "string",
+ "description": "The current version number of the repair task. If non-zero, then the request will only succeed if this value matches the actual current version of the repair task. If zero, then no version check is performed."
+ }
+ },
+ "required": [
+ "TaskId"
+ ]
+ },
+ "RepairTaskCancelDescription": {
+ "description": "Describes a request to cancel a repair task.\n\nThis type supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "properties": {
+ "TaskId": {
+ "type": "string",
+ "description": "The ID of the repair task."
+ },
+ "Version": {
+ "type": "string",
+ "description": "The current version number of the repair task. If non-zero, then the request will only succeed if this value matches the actual current version of the repair task. If zero, then no version check is performed."
+ },
+ "RequestAbort": {
+ "type": "boolean",
+ "description": "_True_ if the repair should be stopped as soon as possible even if it has already started executing. _False_ if the repair should be cancelled only if execution has not yet started."
+ }
+ },
+ "required": [
+ "TaskId"
+ ]
+ },
+ "RepairTaskDeleteDescription": {
+ "description": "Describes a request to delete a completed repair task.\n\nThis type supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "properties": {
+ "TaskId": {
+ "type": "string",
+ "description": "The ID of the completed repair task to be deleted."
+ },
+ "Version": {
+ "type": "string",
+ "description": "The current version number of the repair task. If non-zero, then the request will only succeed if this value matches the actual current version of the repair task. If zero, then no version check is performed."
+ }
+ },
+ "required": [
+ "TaskId"
+ ]
+ },
+ "RepairTaskHealthCheckState": {
+ "description": "Specifies the workflow state of a repair task's health check. This type supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "type": "string",
+ "enum": [
+ "NotStarted",
+ "InProgress",
+ "Succeeded",
+ "Skipped",
+ "TimedOut"
+ ],
+ "x-ms-enum": {
+ "name": "RepairTaskHealthCheckState",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "NotStarted",
+ "description": "Indicates that the health check has not started."
+ },
+ {
+ "value": "InProgress",
+ "description": "Indicates that the health check is in progress."
+ },
+ {
+ "value": "Succeeded",
+ "description": "Indicates that the health check succeeded."
+ },
+ {
+ "value": "Skipped",
+ "description": "Indicates that the health check was skipped."
+ },
+ {
+ "value": "TimedOut",
+ "description": "Indicates that the health check timed out."
+ }
+ ]
+ }
+ },
+ "RepairTaskHistory": {
+ "description": "A record of the times when the repair task entered each state.\n\nThis type supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "properties": {
+ "CreatedUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time when the repair task entered the Created state."
+ },
+ "ClaimedUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time when the repair task entered the Claimed state."
+ },
+ "PreparingUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time when the repair task entered the Preparing state."
+ },
+ "ApprovedUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time when the repair task entered the Approved state"
+ },
+ "ExecutingUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time when the repair task entered the Executing state"
+ },
+ "RestoringUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time when the repair task entered the Restoring state"
+ },
+ "CompletedUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time when the repair task entered the Completed state"
+ },
+ "PreparingHealthCheckStartUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time when the repair task started the health check in the Preparing state."
+ },
+ "PreparingHealthCheckEndUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time when the repair task completed the health check in the Preparing state."
+ },
+ "RestoringHealthCheckStartUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time when the repair task started the health check in the Restoring state."
+ },
+ "RestoringHealthCheckEndUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time when the repair task completed the health check in the Restoring state."
+ }
+ }
+ },
+ "RepairTaskList": {
+ "type": "array",
+ "description": "A list of repair tasks.",
+ "items": {
+ "$ref": "#/definitions/RepairTask"
+ }
+ },
+ "RepairTaskUpdateHealthPolicyDescription": {
+ "description": "Describes a request to update the health policy of a repair task.\n\nThis type supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "properties": {
+ "TaskId": {
+ "type": "string",
+ "description": "The ID of the repair task to be updated."
+ },
+ "Version": {
+ "type": "string",
+ "description": "The current version number of the repair task. If non-zero, then the request will only succeed if this value matches the actual current value of the repair task. If zero, then no version check is performed."
+ },
+ "PerformPreparingHealthCheck": {
+ "type": "boolean",
+ "description": "A boolean indicating if health check is to be performed in the Preparing stage of the repair task. If not specified the existing value should not be altered. Otherwise, specify the desired new value."
+ },
+ "PerformRestoringHealthCheck": {
+ "type": "boolean",
+ "description": "A boolean indicating if health check is to be performed in the Restoring stage of the repair task. If not specified the existing value should not be altered. Otherwise, specify the desired new value."
+ }
+ },
+ "required": [
+ "TaskId"
+ ]
+ },
+ "RepairTaskUpdateInfo": {
+ "description": "Describes the result of an operation that created or updated a repair task.\n\nThis type supports the Service Fabric platform; it is not meant to be used directly from your code.",
+ "properties": {
+ "Version": {
+ "type": "string",
+ "description": "The new version of the repair task."
+ }
+ },
+ "required": [
+ "Version"
+ ]
+ },
+ "ReconfigurationInformation": {
+ "description": "Information about current reconfiguration like phase, type, previous configuration role of replica and reconfiguration start date time.",
+ "properties": {
+ "PreviousConfigurationRole": {
+ "$ref": "#/definitions/ReplicaRole",
+ "description": "Replica role before reconfiguration started."
+ },
+ "ReconfigurationPhase": {
+ "$ref": "#/definitions/ReconfigurationPhase",
+ "description": "Current phase of ongoing reconfiguration. If no reconfiguration is taking place then this value will be \"None\"."
+ },
+ "ReconfigurationType": {
+ "$ref": "#/definitions/ReconfigurationType",
+ "description": "Type of current ongoing reconfiguration. If no reconfiguration is taking place then this value will be \"None\"."
+ },
+ "ReconfigurationStartTimeUtc": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Start time (in UTC) of the ongoing reconfiguration. If no reconfiguration is taking place then this value will be zero date-time."
+ }
+ }
+ },
+ "ReconfigurationPhase": {
+ "type": "string",
+ "description": "The reconfiguration phase of a replica of a stateful service.",
+ "enum": [
+ "Unknown",
+ "None",
+ "Phase0",
+ "Phase1",
+ "Phase2",
+ "Phase3",
+ "Phase4",
+ "AbortPhaseZero"
+ ],
+ "x-ms-enum": {
+ "name": "ReconfigurationPhase",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Unknown",
+ "description": "Indicates the invalid reconfiguration phase."
+ },
+ {
+ "value": "None",
+ "description": "Specifies that there is no reconfiguration in progress."
+ },
+ {
+ "value": "Phase0",
+ "description": "Refers to the phase where the reconfiguration is transferring data from the previous primary to the new primary."
+ },
+ {
+ "value": "Phase1",
+ "description": "Refers to the phase where the reconfiguration is querying the replica set for the progress."
+ },
+ {
+ "value": "Phase2",
+ "description": "Refers to the phase where the reconfiguration is ensuring that data from the current primary is present in a majority of the replica set."
+ },
+ {
+ "value": "Phase3",
+ "description": "This phase is for internal use only."
+ },
+ {
+ "value": "Phase4",
+ "description": "This phase is for internal use only."
+ },
+ {
+ "value": "AbortPhaseZero",
+ "description": "This phase is for internal use only."
+ }
+ ]
+ }
+ },
+ "ReconfigurationType": {
+ "type": "string",
+ "description": "The type of reconfiguration for replica of a stateful service.",
+ "enum": [
+ "Unknown",
+ "SwapPrimary",
+ "Failover",
+ "Other"
+ ],
+ "x-ms-enum": {
+ "name": "ReconfigurationType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Unknown",
+ "description": "Indicates the invalid reconfiguration type."
+ },
+ {
+ "value": "SwapPrimary",
+ "description": "Specifies that the primary replica is being swapped with a different replica."
+ },
+ {
+ "value": "Failover",
+ "description": "Reconfiguration triggered in response to a primary going down. This could be due to many reasons such as primary replica crashing etc."
+ },
+ {
+ "value": "Other",
+ "description": "Reconfigurations where the primary replica is not changing."
+ }
+ ]
+ }
+ },
+ "InfrastructureServiceResponse": {
+ "type": "string",
+ "format": "binary",
+ "description": "This is a weakly-typed response stream to the client. It contains the JSON response from the infrastructure service without deserialization.\nThe content of the response depends on which command was issued to the infrastructure service."
+ },
+ "UploadChunkRange": {
+ "description": "Information about which portion of the file to upload.",
+ "properties": {
+ "StartPosition": {
+ "type": "string",
+ "description": "The start position of the portion of the file. It's represented by the number of bytes."
+ },
+ "EndPosition": {
+ "type": "string",
+ "description": "The end position of the portion of the file. It's represented by the number of bytes."
+ }
+ }
+ },
+ "UploadSessionInfo": {
+ "description": "Information about an image store upload session. A session is associated with a relative path in the image store.",
+ "properties": {
+ "StoreRelativePath": {
+ "type": "string",
+ "description": "The remote location within image store. This path is relative to the image store root."
+ },
+ "SessionId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "A unique ID of the upload session. A session ID can be reused only if the session was committed or removed."
+ },
+ "ModifiedDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The date and time when the upload session was last modified."
+ },
+ "FileSize": {
+ "type": "string",
+ "description": "The size in bytes of the uploading file."
+ },
+ "ExpectedRanges": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UploadChunkRange"
+ },
+ "description": "List of chunk ranges that image store has not received yet."
+ }
+ }
+ },
+ "UploadSession": {
+ "description": "Information about a image store upload session",
+ "properties": {
+ "UploadSessions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UploadSessionInfo"
+ },
+ "description": "When querying upload session by upload session ID, the result contains only one upload session. When querying upload session by image store relative path, the result might contain multiple upload sessions."
+ }
+ }
+ },
+ "ScalingPolicyDescription": {
+ "description": "Describes how the scaling should be performed",
+ "required": [
+ "ScalingTrigger",
+ "ScalingMechanism"
+ ],
+ "properties": {
+ "ScalingTrigger": {
+ "$ref": "#/definitions/ScalingTriggerDescription",
+ "description": "Specifies the trigger associated with this scaling policy"
+ },
+ "ScalingMechanism": {
+ "$ref": "#/definitions/ScalingMechanismDescription",
+ "description": "Specifies the mechanism associated with this scaling policy"
+ }
+ }
+ },
+ "ScalingPolicyDescriptionList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ScalingPolicyDescription"
+ },
+ "description": "A list that describes the scaling policies."
+ },
+ "ScalingTriggerDescription": {
+ "discriminator": "Kind",
+ "description": "Describes the trigger for performing a scaling operation.",
+ "required": [
+ "Kind"
+ ],
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/ScalingTriggerKind",
+ "description": "Specifies the kind of scaling trigger"
+ }
+ }
+ },
+ "ScalingMechanismDescription": {
+ "discriminator": "Kind",
+ "description": "Describes the mechanism for performing a scaling operation.",
+ "required": [
+ "Kind"
+ ],
+ "properties": {
+ "Kind": {
+ "$ref": "#/definitions/ScalingMechanismKind",
+ "description": "Specifies the kind of scaling mechanism"
+ }
+ }
+ },
+ "ScalingTriggerKind": {
+ "type": "string",
+ "description": "Enumerates the ways that a service can be scaled.",
+ "enum": [
+ "Invalid",
+ "AveragePartitionLoad",
+ "AverageServiceLoad"
+ ],
+ "x-ms-enum": {
+ "name": "ScalingTriggerKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the scaling trigger is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "AveragePartitionLoad",
+ "description": "Indicates a trigger where scaling decisions are made based on average load of a partition. The value is 1."
+ },
+ {
+ "value": "AverageServiceLoad",
+ "description": "Indicates a trigger where scaling decisions are made based on average load of a service. The value is 2."
+ }
+ ]
+ }
+ },
+ "ScalingMechanismKind": {
+ "type": "string",
+ "description": "Enumerates the ways that a service can be scaled.",
+ "enum": [
+ "Invalid",
+ "PartitionInstanceCount",
+ "AddRemoveIncrementalNamedPartition"
+ ],
+ "x-ms-enum": {
+ "name": "ScalingMechanismKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the scaling mechanism is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "PartitionInstanceCount",
+ "description": "Indicates a mechanism for scaling where new instances are added or removed from a partition. The value is 1."
+ },
+ {
+ "value": "AddRemoveIncrementalNamedPartition",
+ "description": "Indicates a mechanism for scaling where new named partitions are added or removed from a service. The value is 2."
+ }
+ ]
+ }
+ },
+ "AveragePartitionLoadScalingTrigger": {
+ "description": "Represents a scaling trigger related to an average load of a metric/resource of a partition.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ScalingTriggerDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "AveragePartitionLoad",
+ "required": [
+ "MetricName",
+ "LowerLoadThreshold",
+ "UpperLoadThreshold",
+ "ScaleIntervalInSeconds"
+ ],
+ "properties": {
+ "MetricName": {
+ "type": "string",
+ "description": "The name of the metric for which usage should be tracked."
+ },
+ "LowerLoadThreshold": {
+ "type": "string",
+ "format": "double",
+ "description": "The lower limit of the load below which a scale in operation should be performed."
+ },
+ "UpperLoadThreshold": {
+ "type": "string",
+ "format": "double",
+ "description": "The upper limit of the load beyond which a scale out operation should be performed."
+ },
+ "ScaleIntervalInSeconds": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "The period in seconds on which a decision is made whether to scale or not."
+ }
+ }
+ },
+ "AverageServiceLoadScalingTrigger": {
+ "description": "Represents a scaling policy related to an average load of a metric/resource of a service.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ScalingTriggerDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "AverageServiceLoad",
+ "required": [
+ "MetricName",
+ "LowerLoadThreshold",
+ "UpperLoadThreshold",
+ "ScaleIntervalInSeconds"
+ ],
+ "properties": {
+ "MetricName": {
+ "type": "string",
+ "description": "The name of the metric for which usage should be tracked."
+ },
+ "LowerLoadThreshold": {
+ "type": "string",
+ "format": "double",
+ "description": "The lower limit of the load below which a scale in operation should be performed."
+ },
+ "UpperLoadThreshold": {
+ "type": "string",
+ "format": "double",
+ "description": "The upper limit of the load beyond which a scale out operation should be performed."
+ },
+ "ScaleIntervalInSeconds": {
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "maximum": 4294967295,
+ "description": "The period in seconds on which a decision is made whether to scale or not."
+ }
+ }
+ },
+ "PartitionInstanceCountScaleMechanism": {
+ "description": "Represents a scaling mechanism for adding or removing instances of stateless service partition.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ScalingMechanismDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "PartitionInstanceCount",
+ "required": [
+ "MinInstanceCount",
+ "MaxInstanceCount",
+ "ScaleIncrement"
+ ],
+ "properties": {
+ "MinInstanceCount": {
+ "type": "integer",
+ "description": "Minimum number of instances of the partition."
+ },
+ "MaxInstanceCount": {
+ "type": "integer",
+ "description": "Maximum number of instances of the partition."
+ },
+ "ScaleIncrement": {
+ "type": "integer",
+ "description": "The number of instances to add or remove during a scaling operation."
+ }
+ }
+ },
+ "AddRemoveIncrementalNamedPartitionScalingMechanism": {
+ "description": "Represents a scaling mechanism for adding or removing named partitions of a stateless service. Partition names are in the format '0','1''N-1'",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ScalingMechanismDescription"
+ }
+ ],
+ "x-ms-discriminator-value": "AddRemoveIncrementalNamedPartition",
+ "required": [
+ "MinPartitionCount",
+ "MaxPartitionCount",
+ "ScaleIncrement"
+ ],
+ "properties": {
+ "MinPartitionCount": {
+ "type": "integer",
+ "description": "Minimum number of named partitions of the service."
+ },
+ "MaxPartitionCount": {
+ "type": "integer",
+ "description": "Maximum number of named partitions of the service."
+ },
+ "ScaleIncrement": {
+ "type": "integer",
+ "description": "The number of instances to add or remove during a scaling operation."
+ }
+ }
+ },
+ "UnplacedReplicaInformation": {
+ "description": "Contains information for an unplaced replica.",
+ "properties": {
+ "ServiceName": {
+ "$ref": "#/definitions/ServiceName",
+ "description": "The name of the service."
+ },
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "The ID of the partition."
+ },
+ "UnplacedReplicaDetails": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of reasons due to which a replica cannot be placed."
+ }
+ }
+ },
+ "ApplicationCreatedEvent": {
+ "description": "Application Created event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ApplicationTypeName": {
+ "type": "string",
+ "description": "Application type name."
+ },
+ "ApplicationTypeVersion": {
+ "type": "string",
+ "description": "Application type version."
+ },
+ "ApplicationDefinitionKind": {
+ "type": "string",
+ "description": "Application definition kind."
+ }
+ },
+ "required": [
+ "ApplicationTypeName",
+ "ApplicationTypeVersion",
+ "ApplicationDefinitionKind"
+ ],
+ "x-ms-discriminator-value": "ApplicationCreated"
+ },
+ "ApplicationDeletedEvent": {
+ "description": "Application Deleted event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ApplicationTypeName": {
+ "type": "string",
+ "description": "Application type name."
+ },
+ "ApplicationTypeVersion": {
+ "type": "string",
+ "description": "Application type version."
+ }
+ },
+ "required": [
+ "ApplicationTypeName",
+ "ApplicationTypeVersion"
+ ],
+ "x-ms-discriminator-value": "ApplicationDeleted"
+ },
+ "ApplicationNewHealthReportEvent": {
+ "description": "Application Health Report Created event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ApplicationInstanceId": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Application instance."
+ },
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "ApplicationInstanceId",
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "ApplicationNewHealthReport"
+ },
+ "ApplicationHealthReportExpiredEvent": {
+ "description": "Application Health Report Expired event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ApplicationInstanceId": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Application instance."
+ },
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "ApplicationInstanceId",
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "ApplicationHealthReportExpired"
+ },
+ "ApplicationUpgradeCompletedEvent": {
+ "description": "Application Upgrade Completed event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ApplicationTypeName": {
+ "type": "string",
+ "description": "Application type name."
+ },
+ "ApplicationTypeVersion": {
+ "type": "string",
+ "description": "Application type version."
+ },
+ "OverallUpgradeElapsedTimeInMs": {
+ "type": "number",
+ "format": "double",
+ "description": "Overall upgrade time in milli-seconds."
+ }
+ },
+ "required": [
+ "ApplicationTypeName",
+ "ApplicationTypeVersion",
+ "OverallUpgradeElapsedTimeInMs"
+ ],
+ "x-ms-discriminator-value": "ApplicationUpgradeCompleted"
+ },
+ "ApplicationUpgradeDomainCompletedEvent": {
+ "description": "Application Upgrade Domain Completed event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ApplicationTypeName": {
+ "type": "string",
+ "description": "Application type name."
+ },
+ "CurrentApplicationTypeVersion": {
+ "type": "string",
+ "description": "Current Application type version."
+ },
+ "ApplicationTypeVersion": {
+ "type": "string",
+ "description": "Target Application type version."
+ },
+ "UpgradeState": {
+ "type": "string",
+ "description": "State of upgrade."
+ },
+ "UpgradeDomains": {
+ "type": "string",
+ "description": "Upgrade domains."
+ },
+ "UpgradeDomainElapsedTimeInMs": {
+ "type": "number",
+ "format": "double",
+ "description": "Upgrade time of domain in milli-seconds."
+ }
+ },
+ "required": [
+ "ApplicationTypeName",
+ "CurrentApplicationTypeVersion",
+ "ApplicationTypeVersion",
+ "UpgradeState",
+ "UpgradeDomains",
+ "UpgradeDomainElapsedTimeInMs"
+ ],
+ "x-ms-discriminator-value": "ApplicationUpgradeDomainCompleted"
+ },
+ "ApplicationUpgradeRollbackCompletedEvent": {
+ "description": "Application Upgrade Rollback Completed event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ApplicationTypeName": {
+ "type": "string",
+ "description": "Application type name."
+ },
+ "ApplicationTypeVersion": {
+ "type": "string",
+ "description": "Application type version."
+ },
+ "FailureReason": {
+ "type": "string",
+ "description": "Describes reason of failure."
+ },
+ "OverallUpgradeElapsedTimeInMs": {
+ "type": "number",
+ "format": "double",
+ "description": "Overall upgrade time in milli-seconds."
+ }
+ },
+ "required": [
+ "ApplicationTypeName",
+ "ApplicationTypeVersion",
+ "FailureReason",
+ "OverallUpgradeElapsedTimeInMs"
+ ],
+ "x-ms-discriminator-value": "ApplicationUpgradeRollbackCompleted"
+ },
+ "ApplicationUpgradeRollbackStartedEvent": {
+ "description": "Application Upgrade Rollback Started event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ApplicationTypeName": {
+ "type": "string",
+ "description": "Application type name."
+ },
+ "CurrentApplicationTypeVersion": {
+ "type": "string",
+ "description": "Current Application type version."
+ },
+ "ApplicationTypeVersion": {
+ "type": "string",
+ "description": "Target Application type version."
+ },
+ "FailureReason": {
+ "type": "string",
+ "description": "Describes reason of failure."
+ },
+ "OverallUpgradeElapsedTimeInMs": {
+ "type": "number",
+ "format": "double",
+ "description": "Overall upgrade time in milli-seconds."
+ }
+ },
+ "required": [
+ "ApplicationTypeName",
+ "CurrentApplicationTypeVersion",
+ "ApplicationTypeVersion",
+ "FailureReason",
+ "OverallUpgradeElapsedTimeInMs"
+ ],
+ "x-ms-discriminator-value": "ApplicationUpgradeRollbackStarted"
+ },
+ "ApplicationUpgradeStartedEvent": {
+ "description": "Application Upgrade Started event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ApplicationTypeName": {
+ "type": "string",
+ "description": "Application type name."
+ },
+ "CurrentApplicationTypeVersion": {
+ "type": "string",
+ "description": "Current Application type version."
+ },
+ "ApplicationTypeVersion": {
+ "type": "string",
+ "description": "Target Application type version."
+ },
+ "UpgradeType": {
+ "type": "string",
+ "description": "Type of upgrade."
+ },
+ "RollingUpgradeMode": {
+ "type": "string",
+ "description": "Mode of upgrade."
+ },
+ "FailureAction": {
+ "type": "string",
+ "description": "Action if failed."
+ }
+ },
+ "required": [
+ "ApplicationTypeName",
+ "CurrentApplicationTypeVersion",
+ "ApplicationTypeVersion",
+ "UpgradeType",
+ "RollingUpgradeMode",
+ "FailureAction"
+ ],
+ "x-ms-discriminator-value": "ApplicationUpgradeStarted"
+ },
+ "DeployedApplicationNewHealthReportEvent": {
+ "description": "Deployed Application Health Report Created event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ApplicationInstanceId": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Application instance."
+ },
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "ApplicationInstanceId",
+ "NodeName",
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "DeployedApplicationNewHealthReport"
+ },
+ "DeployedApplicationHealthReportExpiredEvent": {
+ "description": "Deployed Application Health Report Expired event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ApplicationInstanceId": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Application instance."
+ },
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "ApplicationInstanceId",
+ "NodeName",
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "DeployedApplicationHealthReportExpired"
+ },
+ "ApplicationProcessExitedEvent": {
+ "description": "Process Exited event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ServiceName": {
+ "type": "string",
+ "description": "Name of Service."
+ },
+ "ServicePackageName": {
+ "type": "string",
+ "description": "Name of Service package."
+ },
+ "ServicePackageActivationId": {
+ "type": "string",
+ "description": "Activation Id of Service package."
+ },
+ "IsExclusive": {
+ "type": "boolean",
+ "description": "Indicates IsExclusive flag."
+ },
+ "CodePackageName": {
+ "type": "string",
+ "description": "Name of Code package."
+ },
+ "EntryPointType": {
+ "type": "string",
+ "description": "Type of EntryPoint."
+ },
+ "ExeName": {
+ "type": "string",
+ "description": "Name of executable."
+ },
+ "ProcessId": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Process Id."
+ },
+ "HostId": {
+ "type": "string",
+ "description": "Host Id."
+ },
+ "ExitCode": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Exit code of process."
+ },
+ "UnexpectedTermination": {
+ "type": "boolean",
+ "description": "Indicates if termination is unexpected."
+ },
+ "StartTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Start time of process."
+ }
+ },
+ "required": [
+ "ServiceName",
+ "ServicePackageName",
+ "ServicePackageActivationId",
+ "IsExclusive",
+ "CodePackageName",
+ "EntryPointType",
+ "ExeName",
+ "ProcessId",
+ "HostId",
+ "ExitCode",
+ "UnexpectedTermination",
+ "StartTime"
+ ],
+ "x-ms-discriminator-value": "ApplicationProcessExited"
+ },
+ "ApplicationContainerInstanceExitedEvent": {
+ "description": "Container Exited event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ServiceName": {
+ "type": "string",
+ "description": "Name of Service."
+ },
+ "ServicePackageName": {
+ "type": "string",
+ "description": "Name of Service package."
+ },
+ "ServicePackageActivationId": {
+ "type": "string",
+ "description": "Activation Id of Service package."
+ },
+ "IsExclusive": {
+ "type": "boolean",
+ "description": "Indicates IsExclusive flag."
+ },
+ "CodePackageName": {
+ "type": "string",
+ "description": "Name of Code package."
+ },
+ "EntryPointType": {
+ "type": "string",
+ "description": "Type of EntryPoint."
+ },
+ "ImageName": {
+ "type": "string",
+ "description": "Name of Container image."
+ },
+ "ContainerName": {
+ "type": "string",
+ "description": "Name of Container."
+ },
+ "HostId": {
+ "type": "string",
+ "description": "Host Id."
+ },
+ "ExitCode": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Exit code of process."
+ },
+ "UnexpectedTermination": {
+ "type": "boolean",
+ "description": "Indicates if termination is unexpected."
+ },
+ "StartTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Start time of process."
+ }
+ },
+ "required": [
+ "ServiceName",
+ "ServicePackageName",
+ "ServicePackageActivationId",
+ "IsExclusive",
+ "CodePackageName",
+ "EntryPointType",
+ "ImageName",
+ "ContainerName",
+ "HostId",
+ "ExitCode",
+ "UnexpectedTermination",
+ "StartTime"
+ ],
+ "x-ms-discriminator-value": "ApplicationContainerInstanceExited"
+ },
+ "NodeAbortedEvent": {
+ "description": "Node Aborted event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NodeEvent"
+ }
+ ],
+ "properties": {
+ "NodeInstance": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Node instance."
+ },
+ "NodeId": {
+ "type": "string",
+ "description": "Id of Node."
+ },
+ "UpgradeDomain": {
+ "type": "string",
+ "description": "Upgrade domain of Node."
+ },
+ "FaultDomain": {
+ "type": "string",
+ "description": "Fault domain of Node."
+ },
+ "IpAddressOrFQDN": {
+ "type": "string",
+ "description": "IP address or FQDN."
+ },
+ "Hostname": {
+ "type": "string",
+ "description": "Name of Host."
+ },
+ "IsSeedNode": {
+ "type": "boolean",
+ "description": "Indicates if it is seed node."
+ },
+ "NodeVersion": {
+ "type": "string",
+ "description": "Version of Node."
+ }
+ },
+ "required": [
+ "NodeInstance",
+ "NodeId",
+ "UpgradeDomain",
+ "FaultDomain",
+ "IpAddressOrFQDN",
+ "Hostname",
+ "IsSeedNode",
+ "NodeVersion"
+ ],
+ "x-ms-discriminator-value": "NodeAborted"
+ },
+ "NodeAddedToClusterEvent": {
+ "description": "Node Added event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NodeEvent"
+ }
+ ],
+ "properties": {
+ "NodeId": {
+ "type": "string",
+ "description": "Id of Node."
+ },
+ "NodeInstance": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Node instance."
+ },
+ "NodeType": {
+ "type": "string",
+ "description": "Type of Node."
+ },
+ "FabricVersion": {
+ "type": "string",
+ "description": "Fabric version."
+ },
+ "IpAddressOrFQDN": {
+ "type": "string",
+ "description": "IP address or FQDN."
+ },
+ "NodeCapacities": {
+ "type": "string",
+ "description": "Capacities."
+ }
+ },
+ "required": [
+ "NodeId",
+ "NodeInstance",
+ "NodeType",
+ "FabricVersion",
+ "IpAddressOrFQDN",
+ "NodeCapacities"
+ ],
+ "x-ms-discriminator-value": "NodeAddedToCluster"
+ },
+ "NodeClosedEvent": {
+ "description": "Node Closed event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NodeEvent"
+ }
+ ],
+ "properties": {
+ "NodeId": {
+ "type": "string",
+ "description": "Id of Node."
+ },
+ "NodeInstance": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Node instance."
+ },
+ "Error": {
+ "type": "string",
+ "description": "Describes error."
+ }
+ },
+ "required": [
+ "NodeId",
+ "NodeInstance",
+ "Error"
+ ],
+ "x-ms-discriminator-value": "NodeClosed"
+ },
+ "NodeDeactivateCompletedEvent": {
+ "description": "Node Deactivate Completed event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NodeEvent"
+ }
+ ],
+ "properties": {
+ "NodeInstance": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Node instance."
+ },
+ "EffectiveDeactivateIntent": {
+ "type": "string",
+ "description": "Describes deactivate intent."
+ },
+ "BatchIdsWithDeactivateIntent": {
+ "type": "string",
+ "description": "Batch Ids."
+ },
+ "StartTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Start time."
+ }
+ },
+ "required": [
+ "NodeInstance",
+ "EffectiveDeactivateIntent",
+ "BatchIdsWithDeactivateIntent",
+ "StartTime"
+ ],
+ "x-ms-discriminator-value": "NodeDeactivateCompleted"
+ },
+ "NodeDeactivateStartedEvent": {
+ "description": "Node Deactivate Started event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NodeEvent"
+ }
+ ],
+ "properties": {
+ "NodeInstance": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Node instance."
+ },
+ "BatchId": {
+ "type": "string",
+ "description": "Batch Id."
+ },
+ "DeactivateIntent": {
+ "type": "string",
+ "description": "Describes deactivate intent."
+ }
+ },
+ "required": [
+ "NodeInstance",
+ "BatchId",
+ "DeactivateIntent"
+ ],
+ "x-ms-discriminator-value": "NodeDeactivateStarted"
+ },
+ "NodeDownEvent": {
+ "description": "Node Down event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NodeEvent"
+ }
+ ],
+ "properties": {
+ "NodeInstance": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Node instance."
+ },
+ "LastNodeUpAt": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Time when Node was last up."
+ }
+ },
+ "required": [
+ "NodeInstance",
+ "LastNodeUpAt"
+ ],
+ "x-ms-discriminator-value": "NodeDown"
+ },
+ "NodeNewHealthReportEvent": {
+ "description": "Node Health Report Created event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NodeEvent"
+ }
+ ],
+ "properties": {
+ "NodeInstanceId": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Node instance."
+ },
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "NodeInstanceId",
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "NodeNewHealthReport"
+ },
+ "NodeHealthReportExpiredEvent": {
+ "description": "Node Health Report Expired event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NodeEvent"
+ }
+ ],
+ "properties": {
+ "NodeInstanceId": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Node instance."
+ },
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "NodeInstanceId",
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "NodeHealthReportExpired"
+ },
+ "NodeOpenSucceededEvent": {
+ "description": "Node Opened Succeeded event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NodeEvent"
+ }
+ ],
+ "properties": {
+ "NodeInstance": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Node instance."
+ },
+ "NodeId": {
+ "type": "string",
+ "description": "Id of Node."
+ },
+ "UpgradeDomain": {
+ "type": "string",
+ "description": "Upgrade domain of Node."
+ },
+ "FaultDomain": {
+ "type": "string",
+ "description": "Fault domain of Node."
+ },
+ "IpAddressOrFQDN": {
+ "type": "string",
+ "description": "IP address or FQDN."
+ },
+ "Hostname": {
+ "type": "string",
+ "description": "Name of Host."
+ },
+ "IsSeedNode": {
+ "type": "boolean",
+ "description": "Indicates if it is seed node."
+ },
+ "NodeVersion": {
+ "type": "string",
+ "description": "Version of Node."
+ }
+ },
+ "required": [
+ "NodeInstance",
+ "NodeId",
+ "UpgradeDomain",
+ "FaultDomain",
+ "IpAddressOrFQDN",
+ "Hostname",
+ "IsSeedNode",
+ "NodeVersion"
+ ],
+ "x-ms-discriminator-value": "NodeOpenSucceeded"
+ },
+ "NodeOpenFailedEvent": {
+ "description": "Node Open Failed event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NodeEvent"
+ }
+ ],
+ "properties": {
+ "NodeInstance": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Node instance."
+ },
+ "NodeId": {
+ "type": "string",
+ "description": "Id of Node."
+ },
+ "UpgradeDomain": {
+ "type": "string",
+ "description": "Upgrade domain of Node."
+ },
+ "FaultDomain": {
+ "type": "string",
+ "description": "Fault domain of Node."
+ },
+ "IpAddressOrFQDN": {
+ "type": "string",
+ "description": "IP address or FQDN."
+ },
+ "Hostname": {
+ "type": "string",
+ "description": "Name of Host."
+ },
+ "IsSeedNode": {
+ "type": "boolean",
+ "description": "Indicates if it is seed node."
+ },
+ "NodeVersion": {
+ "type": "string",
+ "description": "Version of Node."
+ },
+ "Error": {
+ "type": "string",
+ "description": "Describes the error."
+ }
+ },
+ "required": [
+ "NodeInstance",
+ "NodeId",
+ "UpgradeDomain",
+ "FaultDomain",
+ "IpAddressOrFQDN",
+ "Hostname",
+ "IsSeedNode",
+ "NodeVersion",
+ "Error"
+ ],
+ "x-ms-discriminator-value": "NodeOpenFailed"
+ },
+ "NodeRemovedFromClusterEvent": {
+ "description": "Node Removed event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NodeEvent"
+ }
+ ],
+ "properties": {
+ "NodeId": {
+ "type": "string",
+ "description": "Id of Node."
+ },
+ "NodeInstance": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Node instance."
+ },
+ "NodeType": {
+ "type": "string",
+ "description": "Type of Node."
+ },
+ "FabricVersion": {
+ "type": "string",
+ "description": "Fabric version."
+ },
+ "IpAddressOrFQDN": {
+ "type": "string",
+ "description": "IP address or FQDN."
+ },
+ "NodeCapacities": {
+ "type": "string",
+ "description": "Capacities."
+ }
+ },
+ "required": [
+ "NodeId",
+ "NodeInstance",
+ "NodeType",
+ "FabricVersion",
+ "IpAddressOrFQDN",
+ "NodeCapacities"
+ ],
+ "x-ms-discriminator-value": "NodeRemovedFromCluster"
+ },
+ "NodeUpEvent": {
+ "description": "Node Up event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NodeEvent"
+ }
+ ],
+ "properties": {
+ "NodeInstance": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Node instance."
+ },
+ "LastNodeDownAt": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Time when Node was last down."
+ }
+ },
+ "required": [
+ "NodeInstance",
+ "LastNodeDownAt"
+ ],
+ "x-ms-discriminator-value": "NodeUp"
+ },
+ "PartitionNewHealthReportEvent": {
+ "description": "Partition Health Report Created event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionEvent"
+ }
+ ],
+ "properties": {
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "PartitionNewHealthReport"
+ },
+ "PartitionHealthReportExpiredEvent": {
+ "description": "Partition Health Report Expired event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionEvent"
+ }
+ ],
+ "properties": {
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "PartitionHealthReportExpired"
+ },
+ "PartitionReconfiguredEvent": {
+ "description": "Partition Reconfiguration event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionEvent"
+ }
+ ],
+ "properties": {
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "NodeInstanceId": {
+ "type": "string",
+ "description": "Id of Node instance."
+ },
+ "ServiceType": {
+ "type": "string",
+ "description": "Type of Service."
+ },
+ "CcEpochDataLossVersion": {
+ "type": "integer",
+ "format": "int64",
+ "description": "CcEpochDataLoss version."
+ },
+ "CcEpochConfigVersion": {
+ "type": "integer",
+ "format": "int64",
+ "description": "CcEpochConfig version."
+ },
+ "ReconfigType": {
+ "type": "string",
+ "description": "Type of reconfiguration."
+ },
+ "Result": {
+ "type": "string",
+ "description": "Describes reconfiguration result."
+ },
+ "Phase0DurationMs": {
+ "type": "number",
+ "format": "double",
+ "description": "Duration of Phase0 in milli-seconds."
+ },
+ "Phase1DurationMs": {
+ "type": "number",
+ "format": "double",
+ "description": "Duration of Phase1 in milli-seconds."
+ },
+ "Phase2DurationMs": {
+ "type": "number",
+ "format": "double",
+ "description": "Duration of Phase2 in milli-seconds."
+ },
+ "Phase3DurationMs": {
+ "type": "number",
+ "format": "double",
+ "description": "Duration of Phase3 in milli-seconds."
+ },
+ "Phase4DurationMs": {
+ "type": "number",
+ "format": "double",
+ "description": "Duration of Phase4 in milli-seconds."
+ },
+ "TotalDurationMs": {
+ "type": "number",
+ "format": "double",
+ "description": "Total duration in milli-seconds."
+ }
+ },
+ "required": [
+ "NodeName",
+ "NodeInstanceId",
+ "ServiceType",
+ "CcEpochDataLossVersion",
+ "CcEpochConfigVersion",
+ "ReconfigType",
+ "Result",
+ "Phase0DurationMs",
+ "Phase1DurationMs",
+ "Phase2DurationMs",
+ "Phase3DurationMs",
+ "Phase4DurationMs",
+ "TotalDurationMs"
+ ],
+ "x-ms-discriminator-value": "PartitionReconfigured"
+ },
+ "PartitionPrimaryMoveAnalysisEvent": {
+ "description": "Partition Primary Move Analysis event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionAnalysisEvent"
+ }
+ ],
+ "properties": {
+ "WhenMoveCompleted": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Time when the move was completed."
+ },
+ "PreviousNode": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "CurrentNode": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "MoveReason": {
+ "type": "string",
+ "description": "Move reason."
+ },
+ "RelevantTraces": {
+ "type": "string",
+ "description": "Relevant traces."
+ }
+ },
+ "required": [
+ "WhenMoveCompleted",
+ "PreviousNode",
+ "CurrentNode",
+ "MoveReason",
+ "RelevantTraces"
+ ],
+ "x-ms-discriminator-value": "PartitionPrimaryMoveAnalysis"
+ },
+ "ServiceCreatedEvent": {
+ "description": "Service Created event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceEvent"
+ }
+ ],
+ "properties": {
+ "ServiceTypeName": {
+ "type": "string",
+ "description": "Service type name."
+ },
+ "ApplicationName": {
+ "type": "string",
+ "description": "Application name."
+ },
+ "ApplicationTypeName": {
+ "type": "string",
+ "description": "Application type name."
+ },
+ "ServiceInstance": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Service instance."
+ },
+ "IsStateful": {
+ "type": "boolean",
+ "description": "Indicates if Service is stateful."
+ },
+ "PartitionCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of partitions."
+ },
+ "TargetReplicaSetSize": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Size of target replicas set."
+ },
+ "MinReplicaSetSize": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Minimum size of replicas set."
+ },
+ "ServicePackageVersion": {
+ "type": "string",
+ "description": "Version of Service package."
+ },
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different."
+ }
+ },
+ "required": [
+ "ServiceTypeName",
+ "ApplicationName",
+ "ApplicationTypeName",
+ "ServiceInstance",
+ "IsStateful",
+ "PartitionCount",
+ "TargetReplicaSetSize",
+ "MinReplicaSetSize",
+ "ServicePackageVersion",
+ "PartitionId"
+ ],
+ "x-ms-discriminator-value": "ServiceCreated"
+ },
+ "ServiceDeletedEvent": {
+ "description": "Service Deleted event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceEvent"
+ }
+ ],
+ "properties": {
+ "ServiceTypeName": {
+ "type": "string",
+ "description": "Service type name."
+ },
+ "ApplicationName": {
+ "type": "string",
+ "description": "Application name."
+ },
+ "ApplicationTypeName": {
+ "type": "string",
+ "description": "Application type name."
+ },
+ "ServiceInstance": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Service instance."
+ },
+ "IsStateful": {
+ "type": "boolean",
+ "description": "Indicates if Service is stateful."
+ },
+ "PartitionCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of partitions."
+ },
+ "TargetReplicaSetSize": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Size of target replicas set."
+ },
+ "MinReplicaSetSize": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Minimum size of replicas set."
+ },
+ "ServicePackageVersion": {
+ "type": "string",
+ "description": "Version of Service package."
+ }
+ },
+ "required": [
+ "ServiceTypeName",
+ "ApplicationName",
+ "ApplicationTypeName",
+ "ServiceInstance",
+ "IsStateful",
+ "PartitionCount",
+ "TargetReplicaSetSize",
+ "MinReplicaSetSize",
+ "ServicePackageVersion"
+ ],
+ "x-ms-discriminator-value": "ServiceDeleted"
+ },
+ "ServiceNewHealthReportEvent": {
+ "description": "Service Health Report Created event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceEvent"
+ }
+ ],
+ "properties": {
+ "InstanceId": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Service instance."
+ },
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "InstanceId",
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "ServiceNewHealthReport"
+ },
+ "ServiceHealthReportExpiredEvent": {
+ "description": "Service Health Report Expired event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceEvent"
+ }
+ ],
+ "properties": {
+ "InstanceId": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Service instance."
+ },
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "InstanceId",
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "ServiceHealthReportExpired"
+ },
+ "DeployedServicePackageNewHealthReportEvent": {
+ "description": "Deployed Service Health Report Created event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ServiceManifestName": {
+ "type": "string",
+ "description": "Service manifest name."
+ },
+ "ServicePackageInstanceId": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Service package instance."
+ },
+ "ServicePackageActivationId": {
+ "type": "string",
+ "description": "Id of Service package activation."
+ },
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "ServiceManifestName",
+ "ServicePackageInstanceId",
+ "ServicePackageActivationId",
+ "NodeName",
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "DeployedServicePackageNewHealthReport"
+ },
+ "DeployedServicePackageHealthReportExpiredEvent": {
+ "description": "Deployed Service Health Report Expired event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "ServiceManifest": {
+ "type": "string",
+ "description": "Service manifest name."
+ },
+ "ServicePackageInstanceId": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Service package instance."
+ },
+ "ServicePackageActivationId": {
+ "type": "string",
+ "description": "Id of Service package activation."
+ },
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "ServiceManifest",
+ "ServicePackageInstanceId",
+ "ServicePackageActivationId",
+ "NodeName",
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "DeployedServicePackageHealthReportExpired"
+ },
+ "StatefulReplicaNewHealthReportEvent": {
+ "description": "Stateful Replica Health Report Created event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicaEvent"
+ }
+ ],
+ "properties": {
+ "ReplicaInstanceId": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Replica instance."
+ },
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "ReplicaInstanceId",
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "StatefulReplicaNewHealthReport"
+ },
+ "StatefulReplicaHealthReportExpiredEvent": {
+ "description": "Stateful Replica Health Report Expired event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicaEvent"
+ }
+ ],
+ "properties": {
+ "ReplicaInstanceId": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Replica instance."
+ },
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "ReplicaInstanceId",
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "StatefulReplicaHealthReportExpired"
+ },
+ "StatelessReplicaNewHealthReportEvent": {
+ "description": "Stateless Replica Health Report Created event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicaEvent"
+ }
+ ],
+ "properties": {
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "StatelessReplicaNewHealthReport"
+ },
+ "StatelessReplicaHealthReportExpiredEvent": {
+ "description": "Stateless Replica Health Report Expired event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicaEvent"
+ }
+ ],
+ "properties": {
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "StatelessReplicaHealthReportExpired"
+ },
+ "ClusterNewHealthReportEvent": {
+ "description": "Cluster Health Report Created event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ClusterEvent"
+ }
+ ],
+ "properties": {
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "ClusterNewHealthReport"
+ },
+ "ClusterHealthReportExpiredEvent": {
+ "description": "Cluster Health Report Expired event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ClusterEvent"
+ }
+ ],
+ "properties": {
+ "SourceId": {
+ "type": "string",
+ "description": "Id of report source."
+ },
+ "Property": {
+ "type": "string",
+ "description": "Describes the property."
+ },
+ "HealthState": {
+ "type": "string",
+ "description": "Describes the property health state."
+ },
+ "TimeToLiveMs": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Time to live in milli-seconds."
+ },
+ "SequenceNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Sequence number of report."
+ },
+ "Description": {
+ "type": "string",
+ "description": "Description of report."
+ },
+ "RemoveWhenExpired": {
+ "type": "boolean",
+ "description": "Indicates the removal when it expires."
+ },
+ "SourceUtcTimestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Source time."
+ }
+ },
+ "required": [
+ "SourceId",
+ "Property",
+ "HealthState",
+ "TimeToLiveMs",
+ "SequenceNumber",
+ "Description",
+ "RemoveWhenExpired",
+ "SourceUtcTimestamp"
+ ],
+ "x-ms-discriminator-value": "ClusterHealthReportExpired"
+ },
+ "ClusterUpgradeCompletedEvent": {
+ "description": "Cluster Upgrade Completed event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ClusterEvent"
+ }
+ ],
+ "properties": {
+ "TargetClusterVersion": {
+ "type": "string",
+ "description": "Target Cluster version."
+ },
+ "OverallUpgradeElapsedTimeInMs": {
+ "type": "number",
+ "format": "double",
+ "description": "Overall duration of upgrade in milli-seconds."
+ }
+ },
+ "required": [
+ "TargetClusterVersion",
+ "OverallUpgradeElapsedTimeInMs"
+ ],
+ "x-ms-discriminator-value": "ClusterUpgradeCompleted"
+ },
+ "ClusterUpgradeDomainCompletedEvent": {
+ "description": "Cluster Upgrade Domain Completed event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ClusterEvent"
+ }
+ ],
+ "properties": {
+ "TargetClusterVersion": {
+ "type": "string",
+ "description": "Target Cluster version."
+ },
+ "UpgradeState": {
+ "type": "string",
+ "description": "State of upgrade."
+ },
+ "UpgradeDomains": {
+ "type": "string",
+ "description": "Upgrade domains."
+ },
+ "UpgradeDomainElapsedTimeInMs": {
+ "type": "number",
+ "format": "double",
+ "description": "Duration of domain upgrade in milli-seconds."
+ }
+ },
+ "required": [
+ "TargetClusterVersion",
+ "UpgradeState",
+ "UpgradeDomains",
+ "UpgradeDomainElapsedTimeInMs"
+ ],
+ "x-ms-discriminator-value": "ClusterUpgradeDomainCompleted"
+ },
+ "ClusterUpgradeRollbackCompletedEvent": {
+ "description": "Cluster Upgrade Rollback Completed event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ClusterEvent"
+ }
+ ],
+ "properties": {
+ "TargetClusterVersion": {
+ "type": "string",
+ "description": "Target Cluster version."
+ },
+ "FailureReason": {
+ "type": "string",
+ "description": "Describes failure."
+ },
+ "OverallUpgradeElapsedTimeInMs": {
+ "type": "number",
+ "format": "double",
+ "description": "Overall duration of upgrade in milli-seconds."
+ }
+ },
+ "required": [
+ "TargetClusterVersion",
+ "FailureReason",
+ "OverallUpgradeElapsedTimeInMs"
+ ],
+ "x-ms-discriminator-value": "ClusterUpgradeRollbackCompleted"
+ },
+ "ClusterUpgradeRollbackStartedEvent": {
+ "description": "Cluster Upgrade Rollback Started event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ClusterEvent"
+ }
+ ],
+ "properties": {
+ "TargetClusterVersion": {
+ "type": "string",
+ "description": "Target Cluster version."
+ },
+ "FailureReason": {
+ "type": "string",
+ "description": "Describes failure."
+ },
+ "OverallUpgradeElapsedTimeInMs": {
+ "type": "number",
+ "format": "double",
+ "description": "Overall duration of upgrade in milli-seconds."
+ }
+ },
+ "required": [
+ "TargetClusterVersion",
+ "FailureReason",
+ "OverallUpgradeElapsedTimeInMs"
+ ],
+ "x-ms-discriminator-value": "ClusterUpgradeRollbackStarted"
+ },
+ "ClusterUpgradeStartedEvent": {
+ "description": "Cluster Upgrade Started event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ClusterEvent"
+ }
+ ],
+ "properties": {
+ "CurrentClusterVersion": {
+ "type": "string",
+ "description": "Current Cluster version."
+ },
+ "TargetClusterVersion": {
+ "type": "string",
+ "description": "Target Cluster version."
+ },
+ "UpgradeType": {
+ "type": "string",
+ "description": "Type of upgrade."
+ },
+ "RollingUpgradeMode": {
+ "type": "string",
+ "description": "Mode of upgrade."
+ },
+ "FailureAction": {
+ "type": "string",
+ "description": "Action if failed."
+ }
+ },
+ "required": [
+ "CurrentClusterVersion",
+ "TargetClusterVersion",
+ "UpgradeType",
+ "RollingUpgradeMode",
+ "FailureAction"
+ ],
+ "x-ms-discriminator-value": "ClusterUpgradeStarted"
+ },
+ "ChaosStoppedEvent": {
+ "description": "Chaos Stopped event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ClusterEvent"
+ }
+ ],
+ "properties": {
+ "Reason": {
+ "type": "string",
+ "description": "Describes reason."
+ }
+ },
+ "required": [
+ "Reason"
+ ],
+ "x-ms-discriminator-value": "ChaosStopped"
+ },
+ "ChaosStartedEvent": {
+ "description": "Chaos Started event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ClusterEvent"
+ }
+ ],
+ "properties": {
+ "MaxConcurrentFaults": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Maximum number of concurrent faults."
+ },
+ "TimeToRunInSeconds": {
+ "type": "number",
+ "format": "double",
+ "description": "Time to run in seconds."
+ },
+ "MaxClusterStabilizationTimeoutInSeconds": {
+ "type": "number",
+ "format": "double",
+ "description": "Maximum timeout for cluster stabilization in seconds."
+ },
+ "WaitTimeBetweenIterationsInSeconds": {
+ "type": "number",
+ "format": "double",
+ "description": "Wait time between iterations in seconds."
+ },
+ "WaitTimeBetweenFaultsInSeconds": {
+ "type": "number",
+ "format": "double",
+ "description": "Wait time between faults in seconds."
+ },
+ "MoveReplicaFaultEnabled": {
+ "type": "boolean",
+ "description": "Indicates MoveReplica fault is enabled."
+ },
+ "IncludedNodeTypeList": {
+ "type": "string",
+ "description": "List of included Node types."
+ },
+ "IncludedApplicationList": {
+ "type": "string",
+ "description": "List of included Applications."
+ },
+ "ClusterHealthPolicy": {
+ "type": "string",
+ "description": "Health policy."
+ },
+ "ChaosContext": {
+ "type": "string",
+ "description": "Chaos Context."
+ }
+ },
+ "required": [
+ "MaxConcurrentFaults",
+ "TimeToRunInSeconds",
+ "MaxClusterStabilizationTimeoutInSeconds",
+ "WaitTimeBetweenIterationsInSeconds",
+ "WaitTimeBetweenFaultsInSeconds",
+ "MoveReplicaFaultEnabled",
+ "IncludedNodeTypeList",
+ "IncludedApplicationList",
+ "ClusterHealthPolicy",
+ "ChaosContext"
+ ],
+ "x-ms-discriminator-value": "ChaosStarted"
+ },
+ "ChaosCodePackageRestartScheduledEvent": {
+ "description": "Chaos Restart Code Package Fault Scheduled event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationEvent"
+ }
+ ],
+ "properties": {
+ "FaultGroupId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Id of fault group."
+ },
+ "FaultId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Id of fault."
+ },
+ "NodeName": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "ServiceManifestName": {
+ "type": "string",
+ "description": "Service manifest name."
+ },
+ "CodePackageName": {
+ "type": "string",
+ "description": "Code package name."
+ },
+ "ServicePackageActivationId": {
+ "type": "string",
+ "description": "Id of Service package activation."
+ }
+ },
+ "required": [
+ "FaultGroupId",
+ "FaultId",
+ "NodeName",
+ "ServiceManifestName",
+ "CodePackageName",
+ "ServicePackageActivationId"
+ ],
+ "x-ms-discriminator-value": "ChaosCodePackageRestartScheduled"
+ },
+ "ChaosReplicaRemovalScheduledEvent": {
+ "description": "Chaos Remove Replica Fault Scheduled event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicaEvent"
+ }
+ ],
+ "properties": {
+ "FaultGroupId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Id of fault group."
+ },
+ "FaultId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Id of fault."
+ },
+ "ServiceUri": {
+ "type": "string",
+ "description": "Service name."
+ }
+ },
+ "required": [
+ "FaultGroupId",
+ "FaultId",
+ "ServiceUri"
+ ],
+ "x-ms-discriminator-value": "ChaosReplicaRemovalScheduled"
+ },
+ "ChaosPartitionSecondaryMoveScheduledEvent": {
+ "description": "Chaos Move Secondary Fault Scheduled event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionEvent"
+ }
+ ],
+ "properties": {
+ "FaultGroupId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Id of fault group."
+ },
+ "FaultId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Id of fault."
+ },
+ "ServiceName": {
+ "type": "string",
+ "description": "Service name."
+ },
+ "SourceNode": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "DestinationNode": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "ForcedMove": {
+ "type": "boolean",
+ "description": "Indicates a forced move."
+ }
+ },
+ "required": [
+ "FaultGroupId",
+ "FaultId",
+ "ServiceName",
+ "SourceNode",
+ "DestinationNode",
+ "ForcedMove"
+ ],
+ "x-ms-discriminator-value": "ChaosPartitionSecondaryMoveScheduled"
+ },
+ "ChaosPartitionPrimaryMoveScheduledEvent": {
+ "description": "Chaos Move Primary Fault Scheduled event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/PartitionEvent"
+ }
+ ],
+ "properties": {
+ "FaultGroupId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Id of fault group."
+ },
+ "FaultId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Id of fault."
+ },
+ "ServiceName": {
+ "type": "string",
+ "description": "Service name."
+ },
+ "NodeTo": {
+ "$ref": "#/definitions/NodeName",
+ "description": "The name of a Service Fabric node."
+ },
+ "ForcedMove": {
+ "type": "boolean",
+ "description": "Indicates a forced move."
+ }
+ },
+ "required": [
+ "FaultGroupId",
+ "FaultId",
+ "ServiceName",
+ "NodeTo",
+ "ForcedMove"
+ ],
+ "x-ms-discriminator-value": "ChaosPartitionPrimaryMoveScheduled"
+ },
+ "ChaosReplicaRestartScheduledEvent": {
+ "description": "Chaos Restart Replica Fault Scheduled event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ReplicaEvent"
+ }
+ ],
+ "properties": {
+ "FaultGroupId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Id of fault group."
+ },
+ "FaultId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Id of fault."
+ },
+ "ServiceUri": {
+ "type": "string",
+ "description": "Service name."
+ }
+ },
+ "required": [
+ "FaultGroupId",
+ "FaultId",
+ "ServiceUri"
+ ],
+ "x-ms-discriminator-value": "ChaosReplicaRestartScheduled"
+ },
+ "ChaosNodeRestartScheduledEvent": {
+ "description": "Chaos Restart Node Fault Scheduled event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NodeEvent"
+ }
+ ],
+ "properties": {
+ "NodeInstanceId": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Id of Node instance."
+ },
+ "FaultGroupId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Id of fault group."
+ },
+ "FaultId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Id of fault."
+ }
+ },
+ "required": [
+ "NodeInstanceId",
+ "FaultGroupId",
+ "FaultId"
+ ],
+ "x-ms-discriminator-value": "ChaosNodeRestartScheduled"
+ },
+ "ManagedApplicationIdentityDescription": {
+ "description": "Managed application identity description.",
+ "properties": {
+ "TokenServiceEndpoint": {
+ "type": "string",
+ "description": "Token service endpoint."
+ },
+ "ManagedIdentities": {
+ "$ref": "#/definitions/ManagedApplicationIdentityList",
+ "description": "A list of managed application identity objects."
+ }
+ }
+ },
+ "ManagedApplicationIdentityList": {
+ "description": "A list of managed application identity objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ManagedApplicationIdentity"
+ }
+ },
+ "ManagedApplicationIdentity": {
+ "description": "Describes a managed application identity.",
+ "required": [
+ "Name"
+ ],
+ "properties": {
+ "Name": {
+ "type": "string",
+ "description": "The name of the identity."
+ },
+ "PrincipalId": {
+ "type": "string",
+ "description": "The identity's PrincipalId."
+ }
+ }
+ },
+ "InstanceCloseDelayDurationInSeconds": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Duration in seconds, to wait before a stateless instance is closed, to allow the active requests to drain gracefully. This would be effective when the instance is closing during the application/cluster\nupgrade, only for those instances which have a non-zero delay duration configured in the service description. See InstanceCloseDelayDurationSeconds property in $ref: \"#/definitions/StatelessServiceDescription.yaml\" for details.\nNote, the default value of InstanceCloseDelayDurationInSeconds is 4294967295, which indicates that the behavior will entirely depend on the delay configured in the stateless service description.",
+ "default": 4294967295
+ },
+ "MetricLoadDescription": {
+ "description": "Specifies metric load information.",
+ "properties": {
+ "MetricName": {
+ "type": "string",
+ "description": "The name of the reported metric."
+ },
+ "CurrentLoad": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The current value of the metric load."
+ },
+ "PredictedLoad": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The predicted value of the metric load."
+ }
+ }
+ },
+ "PagedUpdatePartitionLoadResultList": {
+ "description": "The list of results of the call UpdatePartitionLoad. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "List of partition load update information.",
+ "items": {
+ "$ref": "#/definitions/UpdatePartitionLoadResult"
+ }
+ }
+ }
+ },
+ "PartitionMetricLoadDescription": {
+ "description": "Represents load information for a partition, which contains the metrics load information about primary, all secondary replicas/instances or a specific secondary replica/instance located on a specific node.",
+ "properties": {
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "Id of the partition."
+ },
+ "PrimaryReplicaLoadEntries": {
+ "type": "array",
+ "description": "Partition's load information for primary replica, in case partition is from a stateful service.",
+ "items": {
+ "$ref": "#/definitions/MetricLoadDescription"
+ }
+ },
+ "SecondaryReplicasOrInstancesLoadEntries": {
+ "type": "array",
+ "description": "Partition's load information for all secondary replicas or instances.",
+ "items": {
+ "$ref": "#/definitions/MetricLoadDescription"
+ }
+ },
+ "SecondaryReplicaOrInstanceLoadEntriesPerNode": {
+ "type": "array",
+ "description": "Partition's load information for a specific secondary replica or instance located on a specific node.",
+ "items": {
+ "$ref": "#/definitions/ReplicaMetricLoadDescription"
+ }
+ }
+ }
+ },
+ "PartitionMetricLoadDescriptionList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PartitionMetricLoadDescription"
+ },
+ "description": "List that contains load descriptions of each partition."
+ },
+ "ReplicaMetricLoadDescription": {
+ "description": "Specifies metric loads of a partition's specific secondary replica or instance.",
+ "properties": {
+ "NodeName": {
+ "type": "string",
+ "description": "Node name of a specific secondary replica or instance."
+ },
+ "ReplicaOrInstanceLoadEntries": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricLoadDescription"
+ },
+ "description": "Loads of a different metrics for a partition's secondary replica or instance."
+ }
+ }
+ },
+ "UpdatePartitionLoadResult": {
+ "description": "Specifies result of updating load for specified partitions. The output will be ordered based on the partition ID.",
+ "properties": {
+ "PartitionId": {
+ "$ref": "#/definitions/PartitionId",
+ "description": "Id of the partition."
+ },
+ "PartitionErrorCode": {
+ "type": "integer",
+ "description": "If OperationState is Completed - this is 0. If OperationState is Faulted - this is an error code indicating the reason."
+ }
+ }
+ },
+ "ResourceStatus": {
+ "description": "Status of the resource.",
+ "type": "string",
+ "enum": [
+ "Unknown",
+ "Ready",
+ "Upgrading",
+ "Creating",
+ "Deleting",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Unknown",
+ "description": "Indicates the resource status is unknown. The value is zero."
+ },
+ {
+ "value": "Ready",
+ "description": "Indicates the resource is ready. The value is 1."
+ },
+ {
+ "value": "Upgrading",
+ "description": "Indicates the resource is upgrading. The value is 2."
+ },
+ {
+ "value": "Creating",
+ "description": "Indicates the resource is being created. The value is 3."
+ },
+ {
+ "value": "Deleting",
+ "description": "Indicates the resource is being deleted. The value is 4."
+ },
+ {
+ "value": "Failed",
+ "description": "Indicates the resource is not functional due to persistent failures. See statusDetails property for more details. The value is 5."
+ }
+ ]
+ }
+ },
+ "SecretKind": {
+ "type": "string",
+ "description": "Describes the kind of secret.",
+ "enum": [
+ "inlinedValue",
+ "keyVaultVersionedReference"
+ ],
+ "x-ms-enum": {
+ "name": "SecretKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "inlinedValue",
+ "description": "A simple secret resource whose plaintext value is provided by the user."
+ },
+ {
+ "value": "keyVaultVersionedReference",
+ "description": "A secret resource that references a specific version of a secret stored in Azure Key Vault; the expected value is a versioned KeyVault URI corresponding to the version of the secret being referenced."
+ }
+ ]
+ }
+ },
+ "SecretResourceProperties": {
+ "description": "Describes the properties of a secret resource.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/SecretResourcePropertiesBase"
+ }
+ ],
+ "properties": {
+ "description": {
+ "description": "User readable description of the secret.",
+ "type": "string"
+ },
+ "status": {
+ "readOnly": true,
+ "$ref": "#/definitions/ResourceStatus",
+ "description": "Status of the resource."
+ },
+ "statusDetails": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Gives additional information about the current status of the secret."
+ },
+ "contentType": {
+ "type": "string",
+ "description": "The type of the content stored in the secret value. The value of this property is opaque to Service Fabric. Once set, the value of this property cannot be changed."
+ }
+ }
+ },
+ "InlinedValueSecretResourceProperties": {
+ "description": "Describes the properties of a secret resource whose value is provided explicitly as plaintext. The secret resource may have multiple values, each being uniquely versioned. The secret value of each version is stored encrypted, and delivered as plaintext into the context of applications referencing it.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/SecretResourceProperties"
+ }
+ ],
+ "x-ms-discriminator-value": "inlinedValue"
+ },
+ "SecretResourceName": {
+ "type": "string",
+ "description": "Name of the Secret resource."
+ },
+ "SecretResourceDescription": {
+ "description": "This type describes a secret resource.",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/SecretResourceProperties",
+ "description": "Describes the properties of a secret resource."
+ },
+ "name": {
+ "$ref": "#/definitions/SecretResourceName",
+ "description": "Name of the Secret resource."
+ }
+ },
+ "required": [
+ "name",
+ "properties"
+ ]
+ },
+ "PagedSecretResourceDescriptionList": {
+ "type": "object",
+ "description": "The list of secret resources. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "One page of the list.",
+ "items": {
+ "$ref": "#/definitions/SecretResourceDescription"
+ }
+ }
+ }
+ },
+ "SecretResourcePropertiesBase": {
+ "discriminator": "kind",
+ "description": "This type describes the properties of a secret resource, including its kind.",
+ "type": "object",
+ "properties": {
+ "kind": {
+ "$ref": "#/definitions/SecretKind",
+ "description": "Describes the kind of secret."
+ }
+ },
+ "required": [
+ "kind"
+ ]
+ },
+ "SecretValue": {
+ "type": "object",
+ "description": "This type represents the unencrypted value of the secret.",
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "The actual value of the secret."
+ }
+ }
+ },
+ "SecretValueProperties": {
+ "type": "object",
+ "description": "This type describes properties of secret value resource.",
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "The actual value of the secret."
+ }
+ }
+ },
+ "SecretValueResourceDescription": {
+ "description": "This type describes a value of a secret resource. The name of this resource is the version identifier corresponding to this secret value.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Version identifier of the secret value."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SecretValueResourceProperties",
+ "description": "This type describes properties of a secret value resource."
+ }
+ },
+ "required": [
+ "name",
+ "properties"
+ ]
+ },
+ "PagedSecretValueResourceDescriptionList": {
+ "type": "object",
+ "description": "The list of values of a secret resource, paged if the number of results exceeds the limits of a single message. The next set of results can be obtained by executing the same query with the continuation token provided in the previous page.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SecretValueResourceDescription"
+ },
+ "description": "One page of the list."
+ }
+ }
+ },
+ "SecretValueResourceProperties": {
+ "description": "This type describes properties of a secret value resource.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/SecretValueProperties"
+ }
+ ]
+ },
+ "VolumeProperties": {
+ "description": "Describes properties of a volume resource.",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "User readable description of the volume."
+ },
+ "status": {
+ "readOnly": true,
+ "$ref": "#/definitions/ResourceStatus",
+ "description": "Status of the volume."
+ },
+ "statusDetails": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Gives additional information about the current status of the volume."
+ },
+ "provider": {
+ "$ref": "#/definitions/VolumeProvider",
+ "description": "Provider of the volume."
+ },
+ "azureFileParameters": {
+ "$ref": "#/definitions/VolumeProviderParametersAzureFile",
+ "description": "This type describes a volume provided by an Azure Files file share."
+ }
+ },
+ "required": [
+ "provider"
+ ]
+ },
+ "VolumeProvider": {
+ "type": "string",
+ "description": "Describes the provider of the volume resource.",
+ "enum": [
+ "SFAzureFile"
+ ],
+ "x-ms-enum": {
+ "name": "VolumeProvider",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "SFAzureFile",
+ "description": "Provides volumes that are backed by Azure Files."
+ }
+ ]
+ }
+ },
+ "VolumeProviderParametersAzureFile": {
+ "description": "This type describes a volume provided by an Azure Files file share.",
+ "properties": {
+ "accountName": {
+ "description": "Name of the Azure storage account for the File Share.",
+ "type": "string"
+ },
+ "accountKey": {
+ "description": "Access key of the Azure storage account for the File Share.",
+ "type": "string"
+ },
+ "shareName": {
+ "description": "Name of the Azure Files file share that provides storage for the volume.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "accountName",
+ "shareName"
+ ]
+ },
+ "VolumeReference": {
+ "description": "Describes a reference to a volume resource.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the volume being referenced."
+ },
+ "readOnly": {
+ "type": "boolean",
+ "description": "The flag indicating whether the volume is read only. Default is 'false'."
+ },
+ "destinationPath": {
+ "type": "string",
+ "description": "The path within the container at which the volume should be mounted. Only valid path characters are allowed."
+ }
+ },
+ "required": [
+ "name",
+ "destinationPath"
+ ]
+ },
+ "ApplicationScopedVolume": {
+ "description": "Describes a volume whose lifetime is scoped to the application's lifetime.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/VolumeReference"
+ }
+ ],
+ "properties": {
+ "creationParameters": {
+ "$ref": "#/definitions/ApplicationScopedVolumeCreationParameters",
+ "description": "Describes parameters for creating application-scoped volumes."
+ }
+ },
+ "required": [
+ "creationParameters"
+ ]
+ },
+ "ApplicationScopedVolumeCreationParameters": {
+ "description": "Describes parameters for creating application-scoped volumes.",
+ "type": "object",
+ "discriminator": "kind",
+ "properties": {
+ "kind": {
+ "$ref": "#/definitions/ApplicationScopedVolumeKind",
+ "description": "Specifies the application-scoped volume kind."
+ },
+ "description": {
+ "description": "User readable description of the volume.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ]
+ },
+ "ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk": {
+ "description": "Describes parameters for creating application-scoped volumes provided by Service Fabric Volume Disks",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ApplicationScopedVolumeCreationParameters"
+ }
+ ],
+ "properties": {
+ "sizeDisk": {
+ "description": "Volume size",
+ "type": "string",
+ "enum": [
+ "Small",
+ "Medium",
+ "Large"
+ ],
+ "x-ms-enum": {
+ "name": "SizeTypes",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "sizeDisk"
+ ],
+ "x-ms-discriminator-value": "ServiceFabricVolumeDisk"
+ },
+ "ApplicationScopedVolumeKind": {
+ "description": "Specifies the application-scoped volume kind.",
+ "type": "string",
+ "enum": [
+ "ServiceFabricVolumeDisk"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationScopedVolumeKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "ServiceFabricVolumeDisk",
+ "description": "Provides Service Fabric High Availability Volume Disk"
+ }
+ ]
+ }
+ },
+ "VolumeResourceName": {
+ "type": "string",
+ "description": "Name of the Volume resource."
+ },
+ "VolumeResourceDescription": {
+ "description": "This type describes a volume resource.",
+ "properties": {
+ "name": {
+ "$ref": "#/definitions/VolumeResourceName",
+ "description": "Name of the Volume resource."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VolumeProperties",
+ "description": "Describes properties of a volume resource."
+ }
+ },
+ "required": [
+ "name",
+ "properties"
+ ]
+ },
+ "PagedVolumeResourceDescriptionList": {
+ "type": "object",
+ "description": "The list of volume resources. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "One page of the list.",
+ "items": {
+ "$ref": "#/definitions/VolumeResourceDescription"
+ }
+ }
+ }
+ },
+ "NetworkAddressPrefix": {
+ "type": "string",
+ "description": "Address space for a container network. This is expressed in CIDR notation."
+ },
+ "NetworkRef": {
+ "description": "Describes a network reference in a service.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the network"
+ },
+ "endpointRefs": {
+ "description": "A list of endpoints that are exposed on this network.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EndpointRef"
+ }
+ }
+ }
+ },
+ "EndpointRef": {
+ "description": "Describes a reference to a service endpoint.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the endpoint."
+ }
+ }
+ },
+ "NetworkKind": {
+ "type": "string",
+ "description": "The type of a Service Fabric container network.",
+ "enum": [
+ "Local"
+ ],
+ "x-ms-enum": {
+ "name": "NetworkKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Local",
+ "description": "Indicates a container network local to a single Service Fabric cluster. The value is 1."
+ }
+ ]
+ }
+ },
+ "NetworkResourceProperties": {
+ "description": "Describes properties of a network resource.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NetworkResourcePropertiesBase"
+ }
+ ],
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "User readable description of the network."
+ },
+ "status": {
+ "readOnly": true,
+ "$ref": "#/definitions/ResourceStatus",
+ "description": "Status of the network."
+ },
+ "statusDetails": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Gives additional information about the current status of the network."
+ }
+ }
+ },
+ "LocalNetworkResourceProperties": {
+ "description": "Information about a Service Fabric container network local to a single Service Fabric cluster.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/NetworkResourceProperties"
+ }
+ ],
+ "x-ms-discriminator-value": "Local",
+ "properties": {
+ "networkAddressPrefix": {
+ "$ref": "#/definitions/NetworkAddressPrefix",
+ "description": "Address space for the local container network."
+ }
+ }
+ },
+ "NetworkResourceName": {
+ "type": "string",
+ "description": "Name of the Network resource."
+ },
+ "NetworkResourceDescription": {
+ "description": "This type describes a network resource.",
+ "properties": {
+ "name": {
+ "$ref": "#/definitions/NetworkResourceName",
+ "description": "Name of the Network resource."
+ },
+ "properties": {
+ "$ref": "#/definitions/NetworkResourceProperties",
+ "description": "Describes properties of a network resource."
+ }
+ },
+ "required": [
+ "name",
+ "properties"
+ ]
+ },
+ "NetworkResourcePropertiesBase": {
+ "discriminator": "kind",
+ "description": "This type describes the properties of a network resource, including its kind.",
+ "type": "object",
+ "properties": {
+ "kind": {
+ "$ref": "#/definitions/NetworkKind",
+ "description": "The type of a Service Fabric container network."
+ }
+ },
+ "required": [
+ "kind"
+ ]
+ },
+ "PagedNetworkResourceDescriptionList": {
+ "type": "object",
+ "description": "The list of network resources. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "One page of the list.",
+ "items": {
+ "$ref": "#/definitions/NetworkResourceDescription"
+ }
+ }
+ }
+ },
+ "GatewayDestination": {
+ "description": "Describes destination endpoint for routing traffic.",
+ "type": "object",
+ "properties": {
+ "applicationName": {
+ "type": "string",
+ "description": "Name of the service fabric Mesh application."
+ },
+ "serviceName": {
+ "type": "string",
+ "description": "service that contains the endpoint."
+ },
+ "endpointName": {
+ "type": "string",
+ "description": "name of the endpoint in the service."
+ }
+ },
+ "required": [
+ "applicationName",
+ "endpointName",
+ "serviceName"
+ ]
+ },
+ "GatewayProperties": {
+ "description": "Describes properties of a gateway resource.",
+ "properties": {
+ "description": {
+ "description": "User readable description of the gateway.",
+ "type": "string"
+ },
+ "sourceNetwork": {
+ "$ref": "#/definitions/NetworkRef",
+ "description": "Network the gateway should listen on for requests."
+ },
+ "destinationNetwork": {
+ "$ref": "#/definitions/NetworkRef",
+ "description": "Network that the Application is using."
+ },
+ "tcp": {
+ "description": "Configuration for tcp connectivity for this gateway.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TcpConfig"
+ }
+ },
+ "http": {
+ "description": "Configuration for http connectivity for this gateway.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HttpConfig"
+ }
+ },
+ "status": {
+ "readOnly": true,
+ "$ref": "#/definitions/ResourceStatus",
+ "description": "Status of the resource."
+ },
+ "statusDetails": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Gives additional information about the current status of the gateway."
+ },
+ "ipAddress": {
+ "readOnly": true,
+ "type": "string",
+ "description": "IP address of the gateway. This is populated in the response and is ignored for incoming requests."
+ }
+ },
+ "required": [
+ "destinationNetwork",
+ "sourceNetwork"
+ ]
+ },
+ "HttpConfig": {
+ "description": "Describes the http configuration for external connectivity for this network.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "http gateway config name."
+ },
+ "port": {
+ "type": "integer",
+ "description": "Specifies the port at which the service endpoint below needs to be exposed."
+ },
+ "hosts": {
+ "type": "array",
+ "description": "description for routing.",
+ "items": {
+ "$ref": "#/definitions/HttpHostConfig"
+ }
+ }
+ },
+ "required": [
+ "hosts",
+ "name",
+ "port"
+ ]
+ },
+ "HttpHostConfig": {
+ "description": "Describes the hostname properties for http routing.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "http hostname config name."
+ },
+ "routes": {
+ "type": "array",
+ "description": "Route information to use for routing. Routes are processed in the order they are specified. Specify routes that are more specific before routes that can handle general cases.",
+ "items": {
+ "$ref": "#/definitions/HttpRouteConfig"
+ }
+ }
+ },
+ "required": [
+ "name",
+ "routes"
+ ]
+ },
+ "HttpRouteConfig": {
+ "description": "Describes the hostname properties for http routing.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "http route name."
+ },
+ "match": {
+ "$ref": "#/definitions/HttpRouteMatchRule",
+ "description": "Describes a rule for http route matching."
+ },
+ "destination": {
+ "$ref": "#/definitions/GatewayDestination",
+ "description": "Describes destination endpoint for routing traffic."
+ }
+ },
+ "required": [
+ "destination",
+ "match",
+ "name"
+ ]
+ },
+ "HttpRouteMatchHeader": {
+ "description": "Describes header information for http route matching.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of header to match in request."
+ },
+ "value": {
+ "type": "string",
+ "description": "Value of header to match in request."
+ },
+ "type": {
+ "type": "string",
+ "description": "how to match header value",
+ "enum": [
+ "exact"
+ ],
+ "x-ms-enum": {
+ "name": "HeaderMatchType",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "HttpRouteMatchPath": {
+ "description": "Path to match for routing.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "Uri path to match for request."
+ },
+ "rewrite": {
+ "type": "string",
+ "description": "replacement string for matched part of the Uri."
+ },
+ "type": {
+ "type": "string",
+ "description": "how to match value in the Uri",
+ "enum": [
+ "prefix"
+ ],
+ "x-ms-enum": {
+ "name": "PathMatchType",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "type",
+ "value"
+ ]
+ },
+ "HttpRouteMatchRule": {
+ "description": "Describes a rule for http route matching.",
+ "type": "object",
+ "properties": {
+ "path": {
+ "$ref": "#/definitions/HttpRouteMatchPath",
+ "description": "Path to match for routing."
+ },
+ "headers": {
+ "type": "array",
+ "description": "headers and their values to match in request.",
+ "items": {
+ "$ref": "#/definitions/HttpRouteMatchHeader"
+ }
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ "TcpConfig": {
+ "description": "Describes the tcp configuration for external connectivity for this network.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "tcp gateway config name."
+ },
+ "port": {
+ "type": "integer",
+ "description": "Specifies the port at which the service endpoint below needs to be exposed."
+ },
+ "destination": {
+ "$ref": "#/definitions/GatewayDestination",
+ "description": "Describes destination endpoint for routing traffic."
+ }
+ },
+ "required": [
+ "destination",
+ "name",
+ "port"
+ ]
+ },
+ "GatewayResourceName": {
+ "type": "string",
+ "description": "Name of the Gateway resource."
+ },
+ "GatewayResourceDescription": {
+ "description": "This type describes a gateway resource.",
+ "properties": {
+ "name": {
+ "$ref": "#/definitions/GatewayResourceName",
+ "description": "Name of the Gateway resource."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GatewayProperties",
+ "description": "Describes properties of a gateway resource."
+ }
+ },
+ "required": [
+ "name",
+ "properties"
+ ]
+ },
+ "PagedGatewayResourceDescriptionList": {
+ "type": "object",
+ "description": "The list of gateway resources. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "One page of the list.",
+ "items": {
+ "$ref": "#/definitions/GatewayResourceDescription"
+ }
+ }
+ }
+ },
+ "ApplicationProperties": {
+ "description": "Describes properties of a application resource.",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "User readable description of the application."
+ },
+ "services": {
+ "type": "array",
+ "description": "Describes the services in the application. This property is used to create or modify services of the application. On get only the name of the service is returned. The service description can be obtained by querying for the service resource.",
+ "items": {
+ "$ref": "#/definitions/ServiceResourceDescription"
+ }
+ },
+ "diagnostics": {
+ "$ref": "#/definitions/DiagnosticsDescription",
+ "description": "Describes the diagnostics definition and usage for an application resource."
+ },
+ "debugParams": {
+ "description": "Internal - used by Visual Studio to setup the debugging session on the local development environment.",
+ "type": "string"
+ },
+ "serviceNames": {
+ "readOnly": true,
+ "description": "Names of the services in the application.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "status": {
+ "readOnly": true,
+ "$ref": "#/definitions/ResourceStatus",
+ "description": "Status of the application."
+ },
+ "statusDetails": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Gives additional information about the current status of the application."
+ },
+ "healthState": {
+ "readOnly": true,
+ "$ref": "#/definitions/HealthState",
+ "description": "Describes the health state of an application resource."
+ },
+ "unhealthyEvaluation": {
+ "readOnly": true,
+ "type": "string",
+ "description": "When the application's health state is not 'Ok', this additional details from service fabric Health Manager for the user to know why the application is marked unhealthy."
+ }
+ }
+ },
+ "ApplicationResourceUpgradeProgressInfo": {
+ "description": "This type describes an application resource upgrade.",
+ "properties": {
+ "Name": {
+ "type": "string",
+ "description": "Name of the Application resource."
+ },
+ "TargetApplicationTypeVersion": {
+ "type": "string",
+ "description": "The target application version for the application upgrade."
+ },
+ "StartTimestampUtc": {
+ "type": "string",
+ "description": "The estimated UTC datetime when the upgrade started."
+ },
+ "UpgradeState": {
+ "$ref": "#/definitions/ApplicationResourceUpgradeState",
+ "description": "The state of the application resource upgrade."
+ },
+ "PercentCompleted": {
+ "type": "string",
+ "description": "The estimated percent of replicas are completed in the upgrade."
+ },
+ "ServiceUpgradeProgress": {
+ "$ref": "#/definitions/ServiceUpgradeProgressList",
+ "description": "List of service upgrade progresses."
+ },
+ "RollingUpgradeMode": {
+ "$ref": "#/definitions/RollingUpgradeMode",
+ "description": "The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored."
+ },
+ "UpgradeDuration": {
+ "type": "string",
+ "description": "The estimated amount of time that the overall upgrade elapsed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.",
+ "default": "PT0H2M0S"
+ },
+ "ApplicationUpgradeStatusDetails": {
+ "type": "string",
+ "description": "Additional detailed information about the status of the pending upgrade."
+ },
+ "UpgradeReplicaSetCheckTimeoutInSeconds": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer).",
+ "default": 42949672925
+ },
+ "FailureTimestampUtc": {
+ "type": "string",
+ "description": "The estimated UTC datetime when the upgrade failed and FailureAction was executed."
+ }
+ }
+ },
+ "ApplicationResourceUpgradeState": {
+ "type": "string",
+ "description": "The state of the application resource upgrade.",
+ "enum": [
+ "Invalid",
+ "ProvisioningTarget",
+ "RollingForward",
+ "UnprovisioningCurrent",
+ "CompletedRollforward",
+ "RollingBack",
+ "UnprovisioningTarget",
+ "CompletedRollback",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationResourceUpgradeState",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the upgrade state is invalid. All Service Fabric enumerations have the invalid type. The value is 0."
+ },
+ {
+ "value": "ProvisioningTarget",
+ "description": "The upgrade is in the progress of provisioning target application type version. The value is 1."
+ },
+ {
+ "value": "RollingForward",
+ "description": "The upgrade is rolling forward to the target version but is not complete yet. The value is 2."
+ },
+ {
+ "value": "UnprovisioningCurrent",
+ "description": "The upgrade is in the progress of unprovisioning current application type version and rolling forward to the target version is completed. The value is 3."
+ },
+ {
+ "value": "CompletedRollforward",
+ "description": "The upgrade has finished rolling forward. The value is 4."
+ },
+ {
+ "value": "RollingBack",
+ "description": "The upgrade is rolling back to the previous version but is not complete yet. The value is 5."
+ },
+ {
+ "value": "UnprovisioningTarget",
+ "description": "The upgrade is in the progress of unprovisioning target application type version and rolling back to the current version is completed. The value is 6."
+ },
+ {
+ "value": "CompletedRollback",
+ "description": "The upgrade has finished rolling back. The value is 7."
+ },
+ {
+ "value": "Failed",
+ "description": "The upgrade has failed and is unable to execute FailureAction. The value is 8."
+ }
+ ]
+ }
+ },
+ "AzureInternalMonitoringPipelineSinkDescription": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/DiagnosticsSinkProperties"
+ }
+ ],
+ "x-ms-discriminator-value": "AzureInternalMonitoringPipeline",
+ "description": "Diagnostics settings for Geneva.",
+ "properties": {
+ "accountName": {
+ "description": "Azure Internal monitoring pipeline account.",
+ "type": "string"
+ },
+ "namespace": {
+ "description": "Azure Internal monitoring pipeline account namespace.",
+ "type": "string"
+ },
+ "maConfigUrl": {
+ "description": "Azure Internal monitoring agent configuration.",
+ "type": "string"
+ },
+ "fluentdConfigUrl": {
+ "description": "Azure Internal monitoring agent fluentd configuration.",
+ "type": "string"
+ },
+ "autoKeyConfigUrl": {
+ "description": "Azure Internal monitoring pipeline autokey associated with the certificate.",
+ "type": "string"
+ }
+ }
+ },
+ "DiagnosticsDescription": {
+ "description": "Describes the diagnostics options available",
+ "properties": {
+ "sinks": {
+ "description": "List of supported sinks that can be referenced.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DiagnosticsSinkProperties"
+ }
+ },
+ "enabled": {
+ "description": "Status of whether or not sinks are enabled.",
+ "type": "boolean"
+ },
+ "defaultSinkRefs": {
+ "description": "The sinks to be used if diagnostics is enabled. Sink choices can be overridden at the service and code package level.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "DiagnosticsRef": {
+ "description": "Reference to sinks in DiagnosticsDescription.",
+ "properties": {
+ "enabled": {
+ "description": "Status of whether or not sinks are enabled.",
+ "type": "boolean"
+ },
+ "sinkRefs": {
+ "description": "List of sinks to be used if enabled. References the list of sinks in DiagnosticsDescription.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "DiagnosticsSinkKind": {
+ "type": "string",
+ "description": "The kind of DiagnosticsSink.",
+ "enum": [
+ "Invalid",
+ "AzureInternalMonitoringPipeline"
+ ],
+ "x-ms-enum": {
+ "name": "DiagnosticsSinkKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates an invalid sink kind. All Service Fabric enumerations have the invalid type."
+ },
+ {
+ "value": "AzureInternalMonitoringPipeline",
+ "description": "Diagnostics settings for Geneva."
+ }
+ ]
+ }
+ },
+ "DiagnosticsSinkProperties": {
+ "description": "Properties of a DiagnosticsSink.",
+ "discriminator": "kind",
+ "properties": {
+ "kind": {
+ "$ref": "#/definitions/DiagnosticsSinkKind",
+ "description": "The kind of DiagnosticsSink."
+ },
+ "name": {
+ "description": "Name of the sink. This value is referenced by DiagnosticsReferenceDescription",
+ "type": "string"
+ },
+ "description": {
+ "description": "A description of the sink.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ]
+ },
+ "IdentityDescription": {
+ "description": "Information describing the identities associated with this application.",
+ "properties": {
+ "tokenServiceEndpoint": {
+ "type": "string",
+ "description": "the endpoint for the token service managing this identity"
+ },
+ "type": {
+ "type": "string",
+ "description": "the types of identities associated with this resource; currently restricted to 'SystemAssigned and UserAssigned'"
+ },
+ "tenantId": {
+ "type": "string",
+ "description": "the identifier of the tenant containing the application's identity."
+ },
+ "principalId": {
+ "type": "string",
+ "description": "the object identifier of the Service Principal of the identity associated with this resource."
+ },
+ "userAssignedIdentities": {
+ "$ref": "#/definitions/UserAssignedIdentityMap",
+ "description": "represents user assigned identities map."
+ }
+ },
+ "required": [
+ "type"
+ ]
+ },
+ "IdentityItemDescription": {
+ "description": "Describes a single user-assigned identity associated with the application.",
+ "type": "object",
+ "properties": {
+ "principalId": {
+ "type": "string",
+ "description": "the object identifier of the Service Principal which this identity represents."
+ },
+ "clientId": {
+ "type": "string",
+ "description": "the client identifier of the Service Principal which this identity represents."
+ }
+ }
+ },
+ "RollingUpgradeMode": {
+ "type": "string",
+ "description": "The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored.",
+ "enum": [
+ "Invalid",
+ "UnmonitoredAuto",
+ "UnmonitoredManual",
+ "Monitored"
+ ],
+ "default": "Monitored",
+ "x-ms-enum": {
+ "name": "RollingUpgradeMode",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Indicates the upgrade mode is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
+ },
+ {
+ "value": "UnmonitoredAuto",
+ "description": "The upgrade will proceed automatically without performing any health monitoring. The value is 1"
+ },
+ {
+ "value": "UnmonitoredManual",
+ "description": "The upgrade will stop after completing each upgrade domain, giving the opportunity to manually monitor health before proceeding. The value is 2"
+ },
+ {
+ "value": "Monitored",
+ "description": "The upgrade will stop after completing each upgrade domain and automatically monitor health before proceeding. The value is 3"
+ }
+ ]
+ }
+ },
+ "ServiceUpgradeProgressList": {
+ "type": "array",
+ "description": "List of service upgrade progresses.",
+ "items": {
+ "$ref": "#/definitions/ServiceUpgradeProgress"
+ }
+ },
+ "ServiceUpgradeProgress": {
+ "description": "Information about how many replicas are completed or pending for a specific service during upgrade.",
+ "properties": {
+ "ServiceName": {
+ "type": "string",
+ "description": "Name of the Service resource."
+ },
+ "CompletedReplicaCount": {
+ "type": "string",
+ "description": "The number of replicas that completes the upgrade in the service."
+ },
+ "PendingReplicaCount": {
+ "type": "string",
+ "description": "The number of replicas that are waiting to be upgraded in the service."
+ }
+ }
+ },
+ "UserAssignedIdentityMap": {
+ "type": "object",
+ "description": "Defines a map that contains user assigned identities.",
+ "additionalProperties": {
+ "$ref": "#/definitions/IdentityItemDescription"
+ }
+ },
+ "AddRemoveReplicaScalingMechanism": {
+ "description": "Describes the horizontal auto scaling mechanism that adds or removes replicas (containers or container groups).",
+ "allOf": [
+ {
+ "$ref": "#/definitions/AutoScalingMechanism"
+ },
+ {
+ "type": "object"
+ }
+ ],
+ "x-ms-discriminator-value": "AddRemoveReplica",
+ "properties": {
+ "minCount": {
+ "type": "integer",
+ "description": "Minimum number of containers (scale down won't be performed below this number)."
+ },
+ "maxCount": {
+ "type": "integer",
+ "description": "Maximum number of containers (scale up won't be performed above this number)."
+ },
+ "scaleIncrement": {
+ "type": "integer",
+ "description": "Each time auto scaling is performed, this number of containers will be added or removed."
+ }
+ },
+ "required": [
+ "minCount",
+ "maxCount",
+ "scaleIncrement"
+ ]
+ },
+ "AutoScalingMechanism": {
+ "type": "object",
+ "discriminator": "kind",
+ "description": "Describes the mechanism for performing auto scaling operation. Derived classes will describe the actual mechanism.",
+ "properties": {
+ "kind": {
+ "$ref": "#/definitions/AutoScalingMechanismKind",
+ "description": "The type of auto scaling mechanism."
+ }
+ },
+ "required": [
+ "kind"
+ ]
+ },
+ "AutoScalingMechanismKind": {
+ "type": "string",
+ "description": "Enumerates the mechanisms for auto scaling.",
+ "enum": [
+ "AddRemoveReplica"
+ ],
+ "x-ms-enum": {
+ "name": "AutoScalingMechanismKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "AddRemoveReplica",
+ "description": "Indicates that scaling should be performed by adding or removing replicas."
+ }
+ ]
+ }
+ },
+ "AutoScalingMetric": {
+ "type": "object",
+ "discriminator": "kind",
+ "description": "Describes the metric that is used for triggering auto scaling operation. Derived classes will describe resources or metrics.",
+ "properties": {
+ "kind": {
+ "$ref": "#/definitions/AutoScalingMetricKind",
+ "description": "The type of auto scaling metric"
+ }
+ },
+ "required": [
+ "kind"
+ ]
+ },
+ "AutoScalingMetricKind": {
+ "type": "string",
+ "description": "Enumerates the metrics that are used for triggering auto scaling.",
+ "enum": [
+ "Resource"
+ ],
+ "x-ms-enum": {
+ "name": "AutoScalingMetricKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Resource",
+ "description": "Indicates that the metric is one of resources, like cpu or memory."
+ }
+ ]
+ }
+ },
+ "AutoScalingPolicy": {
+ "description": "Describes the auto scaling policy",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the auto scaling policy.",
+ "type": "string"
+ },
+ "trigger": {
+ "$ref": "#/definitions/AutoScalingTrigger",
+ "description": "Determines when auto scaling operation will be invoked."
+ },
+ "mechanism": {
+ "$ref": "#/definitions/AutoScalingMechanism",
+ "description": "The mechanism that is used to scale when auto scaling operation is invoked."
+ }
+ },
+ "required": [
+ "name",
+ "trigger",
+ "mechanism"
+ ]
+ },
+ "AutoScalingResourceMetric": {
+ "description": "Describes the resource that is used for triggering auto scaling.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/AutoScalingMetric"
+ },
+ {
+ "type": "object"
+ }
+ ],
+ "x-ms-discriminator-value": "Resource",
+ "properties": {
+ "name": {
+ "$ref": "#/definitions/AutoScalingResourceMetricName",
+ "description": "Name of the resource."
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "AutoScalingResourceMetricName": {
+ "type": "string",
+ "description": "Enumerates the resources that are used for triggering auto scaling.",
+ "enum": [
+ "cpu",
+ "memoryInGB"
+ ],
+ "x-ms-enum": {
+ "name": "AutoScalingResourceMetricName",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "cpu",
+ "description": "Indicates that the resource is CPU cores."
+ },
+ {
+ "value": "memoryInGB",
+ "description": "Indicates that the resource is memory in GB."
+ }
+ ]
+ }
+ },
+ "AutoScalingTrigger": {
+ "type": "object",
+ "discriminator": "kind",
+ "description": "Describes the trigger for performing auto scaling operation.",
+ "properties": {
+ "kind": {
+ "$ref": "#/definitions/AutoScalingTriggerKind",
+ "description": "The type of auto scaling trigger"
+ }
+ },
+ "required": [
+ "kind"
+ ]
+ },
+ "AutoScalingTriggerKind": {
+ "type": "string",
+ "description": "Enumerates the triggers for auto scaling.",
+ "enum": [
+ "AverageLoad"
+ ],
+ "x-ms-enum": {
+ "name": "AutoScalingTriggerKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "AverageLoad",
+ "description": "Indicates that scaling should be performed based on average load of all replicas in the service."
+ }
+ ]
+ }
+ },
+ "ContainerCodePackageProperties": {
+ "description": "Describes a container and its runtime properties.",
+ "properties": {
+ "name": {
+ "description": "The name of the code package.",
+ "type": "string"
+ },
+ "image": {
+ "description": "The Container image to use.",
+ "type": "string"
+ },
+ "imageRegistryCredential": {
+ "$ref": "#/definitions/ImageRegistryCredential",
+ "description": "Image registry credential."
+ },
+ "entryPoint": {
+ "description": "Override for the default entry point in the container.",
+ "type": "string"
+ },
+ "commands": {
+ "description": "Command array to execute within the container in exec form.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "environmentVariables": {
+ "description": "The environment variables to set in this container",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnvironmentVariable"
+ }
+ },
+ "settings": {
+ "description": "The settings to set in this container. The setting file path can be fetched from environment variable \"Fabric_SettingPath\". The path for Windows container is \"C:\\\\secrets\". The path for Linux container is \"/var/secrets\".",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Setting"
+ }
+ },
+ "labels": {
+ "description": "The labels to set in this container.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerLabel"
+ }
+ },
+ "endpoints": {
+ "description": "The endpoints exposed by this container.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EndpointProperties"
+ }
+ },
+ "resources": {
+ "description": "The resources required by this container.",
+ "$ref": "#/definitions/ResourceRequirements"
+ },
+ "volumeRefs": {
+ "description": "Volumes to be attached to the container. The lifetime of these volumes is independent of the application's lifetime.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VolumeReference"
+ }
+ },
+ "volumes": {
+ "description": "Volumes to be attached to the container. The lifetime of these volumes is scoped to the application's lifetime.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationScopedVolume"
+ }
+ },
+ "diagnostics": {
+ "$ref": "#/definitions/DiagnosticsRef",
+ "description": "Reference to sinks in DiagnosticsDescription."
+ },
+ "reliableCollectionsRefs": {
+ "description": "A list of ReliableCollection resources used by this particular code package. Please refer to ReliableCollectionsRef for more details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReliableCollectionsRef"
+ }
+ },
+ "instanceView": {
+ "readOnly": true,
+ "$ref": "#/definitions/ContainerInstanceView",
+ "description": "Runtime information of a container instance."
+ },
+ "livenessProbe": {
+ "description": "An array of liveness probes for a code package. It determines when to restart a code package.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Probe"
+ }
+ },
+ "readinessProbe": {
+ "description": "An array of readiness probes for a code package. It determines when to unpublish an endpoint.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Probe"
+ }
+ }
+ },
+ "required": [
+ "name",
+ "image",
+ "resources"
+ ]
+ },
+ "ContainerEvent": {
+ "description": "A container event.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the container event."
+ },
+ "count": {
+ "type": "integer",
+ "description": "The count of the event."
+ },
+ "firstTimestamp": {
+ "type": "string",
+ "description": "Date/time of the first event."
+ },
+ "lastTimestamp": {
+ "type": "string",
+ "description": "Date/time of the last event."
+ },
+ "message": {
+ "type": "string",
+ "description": "The event message"
+ },
+ "type": {
+ "type": "string",
+ "description": "The event type."
+ }
+ }
+ },
+ "ContainerInstanceView": {
+ "description": "Runtime information of a container instance.",
+ "properties": {
+ "restartCount": {
+ "type": "integer",
+ "description": "The number of times the container has been restarted."
+ },
+ "currentState": {
+ "$ref": "#/definitions/ContainerState",
+ "description": "Current container instance state."
+ },
+ "previousState": {
+ "$ref": "#/definitions/ContainerState",
+ "description": "Previous container instance state."
+ },
+ "events": {
+ "description": "The events of this container instance.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerEvent"
+ }
+ }
+ }
+ },
+ "ContainerLabel": {
+ "description": "Describes a container label.",
+ "properties": {
+ "name": {
+ "description": "The name of the container label.",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value of the container label.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ]
+ },
+ "ContainerState": {
+ "description": "The container state.",
+ "properties": {
+ "state": {
+ "type": "string",
+ "description": "The state of this container"
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Date/time when the container state started."
+ },
+ "exitCode": {
+ "type": "string",
+ "description": "The container exit code."
+ },
+ "finishTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Date/time when the container state finished."
+ },
+ "detailStatus": {
+ "description": "Human-readable status of this state.",
+ "type": "string"
+ }
+ }
+ },
+ "DefaultExecutionPolicy": {
+ "description": "The default execution policy. Always restart the service if an exit occurs.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ExecutionPolicy"
+ },
+ {
+ "type": "object"
+ }
+ ],
+ "x-ms-discriminator-value": "Default"
+ },
+ "EndpointProperties": {
+ "description": "Describes a container endpoint.",
+ "properties": {
+ "name": {
+ "description": "The name of the endpoint.",
+ "type": "string"
+ },
+ "port": {
+ "description": "Port used by the container.",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "EnvironmentVariable": {
+ "description": "Describes an environment variable for the container.",
+ "properties": {
+ "type": {
+ "$ref": "#/definitions/EnvironmentVariableType",
+ "description": "The type of the environment variable being given in value"
+ },
+ "name": {
+ "description": "The name of the environment variable.",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value of the environment variable, will be processed based on the type provided.",
+ "type": "string"
+ }
+ }
+ },
+ "EnvironmentVariableType": {
+ "type": "string",
+ "description": "The type of the environment variable being given in value",
+ "default": "ClearText",
+ "enum": [
+ "ClearText",
+ "KeyVaultReference",
+ "SecretValueReference"
+ ],
+ "x-ms-enum": {
+ "name": "EnvironmentVariableType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "ClearText",
+ "description": "The environment variable in clear text, will not be processed in any way and passed in as is"
+ },
+ {
+ "value": "KeyVaultReference",
+ "description": "The URI to a KeyVault secret version, will be resolved using the application's managed identity (this type is only valid if the app was assigned a managed identity) before getting passed in"
+ },
+ {
+ "value": "SecretValueReference",
+ "description": "The reference to a SecretValue resource, will be resolved before getting passed in"
+ }
+ ]
+ }
+ },
+ "ExecutionPolicy": {
+ "type": "object",
+ "discriminator": "type",
+ "description": "The execution policy of the service",
+ "properties": {
+ "type": {
+ "$ref": "#/definitions/ExecutionPolicyType",
+ "description": "Enumerates the execution policy types for services."
+ }
+ },
+ "required": [
+ "type"
+ ]
+ },
+ "ExecutionPolicyType": {
+ "type": "string",
+ "description": "Enumerates the execution policy types for services.",
+ "enum": [
+ "Default",
+ "RunToCompletion"
+ ],
+ "x-ms-enum": {
+ "name": "ExecutionPolicyType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Default",
+ "description": "Indicates the default execution policy, always restart the service if an exit occurs."
+ },
+ {
+ "value": "RunToCompletion",
+ "description": "Indicates that the service will perform its desired operation and complete successfully. If the service encounters failure, it will restarted based on restart policy specified. If the service completes its operation successfully, it will not be restarted again."
+ }
+ ]
+ }
+ },
+ "ImageRegistryCredential": {
+ "description": "Image registry credential.",
+ "properties": {
+ "server": {
+ "type": "string",
+ "description": "Docker image registry server, without protocol such as `http` and `https`."
+ },
+ "username": {
+ "type": "string",
+ "description": "The username for the private registry."
+ },
+ "passwordType": {
+ "$ref": "#/definitions/ImageRegistryPasswordType",
+ "description": "The type of the image registry password being given in password"
+ },
+ "password": {
+ "type": "string",
+ "description": "The password for the private registry. The password is required for create or update operations, however it is not returned in the get or list operations. Will be processed based on the type provided."
+ }
+ },
+ "required": [
+ "server",
+ "username"
+ ]
+ },
+ "ImageRegistryPasswordType": {
+ "type": "string",
+ "description": "The type of the image registry password being given in password",
+ "default": "ClearText",
+ "enum": [
+ "ClearText",
+ "KeyVaultReference",
+ "SecretValueReference"
+ ],
+ "x-ms-enum": {
+ "name": "ImageRegistryPasswordType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "ClearText",
+ "description": "The image registry password in clear text, will not be processed in any way and used directly"
+ },
+ {
+ "value": "KeyVaultReference",
+ "description": "The URI to a KeyVault secret version, will be resolved using the application's managed identity (this type is only valid if the app was assigned a managed identity) before getting used"
+ },
+ {
+ "value": "SecretValueReference",
+ "description": "The reference to a SecretValue resource, will be resolved before getting used"
+ }
+ ]
+ }
+ },
+ "OperatingSystemType": {
+ "type": "string",
+ "description": "The operation system required by the code in service.",
+ "enum": [
+ "Linux",
+ "Windows"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Linux",
+ "description": "The required operating system is Linux."
+ },
+ {
+ "value": "Windows",
+ "description": "The required operating system is Windows."
+ }
+ ]
+ }
+ },
+ "Probe": {
+ "description": "Probes have a number of fields that you can use to control their behavior.",
+ "properties": {
+ "initialDelaySeconds": {
+ "type": "integer",
+ "description": "The initial delay in seconds to start executing probe once codepackage has started.",
+ "default": 0
+ },
+ "periodSeconds": {
+ "type": "integer",
+ "description": "Periodic seconds to execute probe.",
+ "default": 10
+ },
+ "timeoutSeconds": {
+ "type": "integer",
+ "description": "Period after which probe is considered as failed if it hasn't completed successfully.",
+ "default": 1
+ },
+ "successThreshold": {
+ "type": "integer",
+ "description": "The count of successful probe executions after which probe is considered success.",
+ "default": 1
+ },
+ "failureThreshold": {
+ "type": "integer",
+ "description": "The count of failures after which probe is considered failed.",
+ "default": 3
+ },
+ "exec": {
+ "$ref": "#/definitions/ProbeExec",
+ "description": "Exec command to run inside the container."
+ },
+ "httpGet": {
+ "$ref": "#/definitions/ProbeHttpGet",
+ "description": "Http probe for the container."
+ },
+ "tcpSocket": {
+ "$ref": "#/definitions/ProbeTcpSocket",
+ "description": "Tcp port to probe inside the container."
+ }
+ }
+ },
+ "ProbeExec": {
+ "description": "Exec command to run inside the container.",
+ "properties": {
+ "command": {
+ "description": "Comma separated command to run inside the container for example \"sh, -c, echo hello world\".",
+ "type": "string"
+ }
+ },
+ "required": [
+ "command"
+ ]
+ },
+ "ProbeHttpGet": {
+ "description": "Http probe for the container.",
+ "properties": {
+ "port": {
+ "description": "Port to access for probe.",
+ "type": "integer"
+ },
+ "path": {
+ "description": "Path to access on the HTTP request.",
+ "type": "string"
+ },
+ "host": {
+ "description": "Host IP to connect to.",
+ "type": "string"
+ },
+ "httpHeaders": {
+ "description": "Headers to set in the request.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ProbeHttpGetHeaders"
+ }
+ },
+ "scheme": {
+ "type": "string",
+ "description": "Scheme for the http probe. Can be Http or Https.",
+ "enum": [
+ "http",
+ "https"
+ ],
+ "x-ms-enum": {
+ "name": "scheme",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "http",
+ "description": "Indicates that the probe is http."
+ },
+ {
+ "value": "https",
+ "description": "Indicates that the probe is https. No cert validation."
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "port"
+ ]
+ },
+ "ProbeHttpGetHeaders": {
+ "description": "Http headers.",
+ "properties": {
+ "name": {
+ "description": "The name of the header.",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value of the header.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ]
+ },
+ "ProbeTcpSocket": {
+ "description": "Tcp port to probe inside the container.",
+ "properties": {
+ "port": {
+ "description": "Port to access for probe.",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "port"
+ ]
+ },
+ "ReliableCollectionsRef": {
+ "description": "Specifying this parameter adds support for reliable collections",
+ "properties": {
+ "name": {
+ "description": "Name of ReliableCollection resource. Right now it's not used and you can use any string.",
+ "type": "string"
+ },
+ "doNotPersistState": {
+ "description": "False (the default) if ReliableCollections state is persisted to disk as usual. True if you do not want to persist state, in which case replication is still enabled and you can use ReliableCollections as distributed cache.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "ResourceLimits": {
+ "description": "This type describes the resource limits for a given container. It describes the most amount of resources a container is allowed to use before being restarted.",
+ "properties": {
+ "memoryInGB": {
+ "description": "The memory limit in GB.",
+ "type": "number",
+ "format": "double"
+ },
+ "cpu": {
+ "description": "CPU limits in cores. At present, only full cores are supported.",
+ "type": "number",
+ "format": "double"
+ }
+ }
+ },
+ "ResourceRequests": {
+ "description": "This type describes the requested resources for a given container. It describes the least amount of resources required for the container. A container can consume more than requested resources up to the specified limits before being restarted. Currently, the requested resources are treated as limits.",
+ "properties": {
+ "memoryInGB": {
+ "description": "The memory request in GB for this container.",
+ "type": "number",
+ "format": "double"
+ },
+ "cpu": {
+ "description": "Requested number of CPU cores. At present, only full cores are supported.",
+ "type": "number",
+ "format": "double"
+ }
+ },
+ "required": [
+ "memoryInGB",
+ "cpu"
+ ]
+ },
+ "ResourceRequirements": {
+ "description": "This type describes the resource requirements for a container or a service.",
+ "properties": {
+ "requests": {
+ "$ref": "#/definitions/ResourceRequests",
+ "description": "Describes the requested resources for a given container."
+ },
+ "limits": {
+ "$ref": "#/definitions/ResourceLimits",
+ "description": "Describes the maximum limits on the resources for a given container."
+ }
+ },
+ "required": [
+ "requests"
+ ]
+ },
+ "RestartPolicy": {
+ "type": "string",
+ "description": "Enumerates the restart policy for RunToCompletionExecutionPolicy",
+ "enum": [
+ "OnFailure",
+ "Never"
+ ],
+ "x-ms-enum": {
+ "name": "RestartPolicy",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "OnFailure",
+ "description": "Service will be restarted when it encounters a failure."
+ },
+ {
+ "value": "Never",
+ "description": "Service will never be restarted. If the service encounters a failure, it will move to Failed state."
+ }
+ ]
+ }
+ },
+ "RunToCompletionExecutionPolicy": {
+ "description": "The run to completion execution policy, the service will perform its desired operation and complete successfully. If the service encounters failure, it will restarted based on restart policy specified. If the service completes its operation successfully, it will not be restarted again.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ExecutionPolicy"
+ },
+ {
+ "type": "object"
+ }
+ ],
+ "x-ms-discriminator-value": "RunToCompletion",
+ "properties": {
+ "restart": {
+ "$ref": "#/definitions/RestartPolicy",
+ "description": "Enumerates the restart policy for RunToCompletionExecutionPolicy"
+ }
+ },
+ "required": [
+ "restart"
+ ]
+ },
+ "ServiceProperties": {
+ "description": "Describes properties of a service resource.",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "User readable description of the service."
+ },
+ "replicaCount": {
+ "type": "integer",
+ "description": "The number of replicas of the service to create. Defaults to 1 if not specified."
+ },
+ "executionPolicy": {
+ "$ref": "#/definitions/ExecutionPolicy",
+ "description": "The execution policy of the service"
+ },
+ "autoScalingPolicies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AutoScalingPolicy"
+ },
+ "description": "Auto scaling policies"
+ },
+ "status": {
+ "readOnly": true,
+ "$ref": "#/definitions/ResourceStatus",
+ "description": "Status of the service."
+ },
+ "statusDetails": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Gives additional information about the current status of the service."
+ },
+ "healthState": {
+ "readOnly": true,
+ "$ref": "#/definitions/HealthState",
+ "description": "Describes the health state of an application resource."
+ },
+ "unhealthyEvaluation": {
+ "readOnly": true,
+ "type": "string",
+ "description": "When the service's health state is not 'Ok', this additional details from service fabric Health Manager for the user to know why the service is marked unhealthy."
+ },
+ "identityRefs": {
+ "description": "The service identity list.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceIdentity"
+ }
+ },
+ "dnsName": {
+ "type": "string",
+ "description": "Dns name of the service."
+ }
+ }
+ },
+ "ServiceReplicaProperties": {
+ "description": "Describes the properties of a service replica.",
+ "properties": {
+ "osType": {
+ "$ref": "#/definitions/OperatingSystemType",
+ "description": "The operation system required by the code in service."
+ },
+ "codePackages": {
+ "description": "Describes the set of code packages that forms the service. A code package describes the container and the properties for running it. All the code packages are started together on the same host and share the same context (network, process etc.).",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerCodePackageProperties"
+ }
+ },
+ "networkRefs": {
+ "type": "array",
+ "description": "The names of the private networks that this service needs to be part of.",
+ "items": {
+ "$ref": "#/definitions/NetworkRef"
+ }
+ },
+ "diagnostics": {
+ "$ref": "#/definitions/DiagnosticsRef",
+ "description": "Reference to sinks in DiagnosticsDescription."
+ }
+ },
+ "required": [
+ "osType",
+ "codePackages"
+ ]
+ },
+ "Setting": {
+ "description": "Describes a setting for the container. The setting file path can be fetched from environment variable \"Fabric_SettingPath\". The path for Windows container is \"C:\\\\secrets\". The path for Linux container is \"/var/secrets\".",
+ "properties": {
+ "type": {
+ "$ref": "#/definitions/SettingType",
+ "description": "The type of the setting being given in value"
+ },
+ "name": {
+ "description": "The name of the setting.",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value of the setting, will be processed based on the type provided.",
+ "type": "string"
+ }
+ }
+ },
+ "SettingType": {
+ "type": "string",
+ "description": "The type of the setting being given in value",
+ "default": "ClearText",
+ "enum": [
+ "ClearText",
+ "KeyVaultReference",
+ "SecretValueReference"
+ ],
+ "x-ms-enum": {
+ "name": "SettingType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "ClearText",
+ "description": "The setting in clear text, will not be processed in any way and passed in as is"
+ },
+ {
+ "value": "KeyVaultReference",
+ "description": "The URI to a KeyVault secret version, will be resolved using the application's managed identity (this type is only valid if the app was assigned a managed identity) before getting passed in"
+ },
+ {
+ "value": "SecretValueReference",
+ "description": "The reference to a SecretValue resource, will be resolved before getting passed in"
+ }
+ ]
+ }
+ },
+ "ServiceReplicaDescription": {
+ "description": "Describes a replica of a service resource.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceReplicaProperties"
+ }
+ ],
+ "properties": {
+ "replicaName": {
+ "type": "string",
+ "description": "Name of the replica."
+ }
+ },
+ "required": [
+ "replicaName"
+ ]
+ },
+ "AverageLoadScalingTrigger": {
+ "description": "Describes the average load trigger used for auto scaling.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/AutoScalingTrigger"
+ },
+ {
+ "type": "object"
+ }
+ ],
+ "x-ms-discriminator-value": "AverageLoad",
+ "properties": {
+ "metric": {
+ "$ref": "#/definitions/AutoScalingMetric",
+ "description": "Description of the metric that is used for scaling."
+ },
+ "lowerLoadThreshold": {
+ "type": "number",
+ "format": "double",
+ "description": "Lower load threshold (if average load is below this threshold, service will scale down)."
+ },
+ "upperLoadThreshold": {
+ "type": "number",
+ "format": "double",
+ "description": "Upper load threshold (if average load is above this threshold, service will scale up)."
+ },
+ "scaleIntervalInSeconds": {
+ "type": "integer",
+ "description": "Scale interval that indicates how often will this trigger be checked.",
+ "minimum": 60
+ }
+ },
+ "required": [
+ "metric",
+ "lowerLoadThreshold",
+ "upperLoadThreshold",
+ "scaleIntervalInSeconds"
+ ]
+ },
+ "ServiceIdentity": {
+ "description": "Map service identity friendly name to an application identity.",
+ "properties": {
+ "name": {
+ "description": "The identity friendly name.",
+ "type": "string"
+ },
+ "identityRef": {
+ "description": "The application identity name.",
+ "type": "string"
+ }
+ }
+ },
+ "ServiceResourceName": {
+ "type": "string",
+ "description": "Name of the Service resource."
+ },
+ "ServiceResourceDescription": {
+ "description": "This type describes a service resource.",
+ "properties": {
+ "name": {
+ "$ref": "#/definitions/ServiceResourceName",
+ "description": "Name of the Service resource."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ServiceResourceProperties",
+ "description": "This type describes properties of a service resource."
+ }
+ },
+ "required": [
+ "name",
+ "properties"
+ ]
+ },
+ "ServiceResourceProperties": {
+ "description": "This type describes properties of a service resource.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceReplicaProperties"
+ },
+ {
+ "$ref": "#/definitions/ServiceProperties"
+ }
+ ]
+ },
+ "PagedServiceResourceDescriptionList": {
+ "type": "object",
+ "description": "The list of service resources. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "One page of the list.",
+ "items": {
+ "$ref": "#/definitions/ServiceResourceDescription"
+ }
+ }
+ }
+ },
+ "PagedServiceReplicaDescriptionList": {
+ "description": "The list of service resource replicas in the cluster. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "List of service resource replica description.",
+ "items": {
+ "$ref": "#/definitions/ServiceReplicaDescription"
+ }
+ }
+ }
+ },
+ "ApplicationResourceName": {
+ "type": "string",
+ "description": "Name of the Application resource."
+ },
+ "ApplicationResourceDescription": {
+ "description": "This type describes a application resource.",
+ "properties": {
+ "name": {
+ "$ref": "#/definitions/ApplicationResourceName",
+ "description": "Name of the Application resource."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationProperties",
+ "description": "Describes properties of a application resource."
+ },
+ "identity": {
+ "$ref": "#/definitions/IdentityDescription",
+ "description": "Describes the identity of the application."
+ }
+ },
+ "required": [
+ "name",
+ "properties"
+ ]
+ },
+ "PagedApplicationResourceDescriptionList": {
+ "type": "object",
+ "description": "The list of application resources. The list is paged when all of the results cannot fit in a single message. The next set of results can be obtained by executing the same query with the continuation token provided in this list.",
+ "properties": {
+ "ContinuationToken": {
+ "$ref": "#/definitions/ContinuationToken",
+ "description": "The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response."
+ },
+ "Items": {
+ "type": "array",
+ "description": "One page of the list.",
+ "items": {
+ "$ref": "#/definitions/ApplicationResourceDescription"
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "CodePackageNameRequiredPathParam": {
+ "name": "codePackageName",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "The name of code package of the service."
+ },
+ "ApiVersion_6-4-Preview_RequiredQueryParam": {
+ "name": "api-version",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "6.4-preview"
+ ],
+ "required": true,
+ "default": "6.4-preview",
+ "description": "The version of the API. This parameter is required and its value must be '6.4-preview'.",
+ "x-ms-enum": {
+ "name": "ApiVersion_6-4-Preview_RequiredQueryParam",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "6.4-preview",
+ "description": "The version number for the preview functionality of 6.4 runtime"
+ }
+ ]
+ }
+ },
+ "TailOptionalQueryParam": {
+ "name": "Tail",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "Number of lines to show from the end of the logs. Default is 100. 'all' to show the complete logs."
+ },
+ "ApiVersion_6-0-Preview_RequiredQueryParam": {
+ "name": "api-version",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "6.0-preview"
+ ],
+ "required": true,
+ "default": "6.0-preview",
+ "description": "The version of the API. This parameter is required and its value must be '\"6.0-preview'.",
+ "x-ms-enum": {
+ "name": "ApiVersion_6-0-Preview_RequiredQueryParam",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "6.0-preview",
+ "description": "The version number for the preview functionality of 6.0 runtime."
+ }
+ ]
+ }
+ },
+ "ApiVersion_6-0_RequiredQueryParam": {
+ "name": "api-version",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "6.0"
+ ],
+ "required": true,
+ "default": "6.0",
+ "description": "The version of the API. This parameter is required and its value must be '6.0'.\n\nService Fabric REST API version is based on the runtime version in which the API was introduced or was changed. Service Fabric runtime supports more than one version of the API. This is the latest supported version of the API. If a lower API version is passed, the returned response may be different from the one documented in this specification.\n\nAdditionally the runtime accept any version that is higher than the latest supported version up to the current version of the runtime. So if the latest API version is 6.0, but if the runtime is 6.1, in order to make it easier to write the clients, the runtime will accept version 6.1 for that API. However the behavior of the API will be as per the documented 6.0 version.",
+ "x-ms-enum": {
+ "name": "ApiVersion_6-0_RequiredQueryParam",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "6.0",
+ "description": "The 6.0 version of the API."
+ }
+ ]
+ }
+ },
+ "ApiVersion_6-1_RequiredQueryParam": {
+ "name": "api-version",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "6.1"
+ ],
+ "required": true,
+ "default": "6.1",
+ "description": "The version of the API. This parameter is required and its value must be '6.1'.\n\nService Fabric REST API version is based on the runtime version in which the API was introduced or was changed. Service Fabric runtime supports more than one version of the API. This is the latest supported version of the API. If a lower API version is passed, the returned response may be different from the one documented in this specification.\n\nAdditionally the runtime accept any version that is higher than the latest supported version up to the current version of the runtime. So if the latest API version is 6.0, but if the runtime is 6.1, in order to make it easier to write the clients, the runtime will accept version 6.1 for that API. However the behavior of the API will be as per the documented 6.0 version.",
+ "x-ms-enum": {
+ "name": "ApiVersion_6-1_RequiredQueryParam",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "6.1",
+ "description": "The 6.1 version of the API."
+ }
+ ]
+ }
+ },
+ "ApiVersion_6-2_RequiredQueryParam": {
+ "name": "api-version",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "6.2"
+ ],
+ "required": true,
+ "default": "6.2",
+ "description": "The version of the API. This parameter is required and its value must be '6.2'.\n\nService Fabric REST API version is based on the runtime version in which the API was introduced or was changed. Service Fabric runtime supports more than one version of the API. This version is the latest supported version of the API. If a lower API version is passed, the returned response may be different from the one documented in this specification.\n\nAdditionally the runtime accepts any version that is higher than the latest supported version up to the current version of the runtime. So if the latest API version is 6.0 and the runtime is 6.1, the runtime will accept version 6.1 for that API. However the behavior of the API will be as per the documented 6.0 version.",
+ "x-ms-enum": {
+ "name": "ApiVersion_6-2_RequiredQueryParam",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "6.2",
+ "description": "The 6.2 version of the API."
+ }
+ ]
+ }
+ },
+ "ApiVersion_6-2-Preview_RequiredQueryParam": {
+ "name": "api-version",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "6.2-preview"
+ ],
+ "required": true,
+ "default": "6.2-preview",
+ "description": "The version of the API. This parameter is required and its value must be '6.2-preview'.",
+ "x-ms-enum": {
+ "name": "ApiVersion_6-2-Preview_RequiredQueryParam",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "6.2-preview",
+ "description": "The version number for the preview functionality of 6.2 runtime"
+ }
+ ]
+ }
+ },
+ "ApiVersion_6-3_RequiredQueryParam": {
+ "name": "api-version",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "6.3"
+ ],
+ "required": true,
+ "default": "6.3",
+ "description": "The version of the API. This parameter is required and its value must be '6.3'.\n\nService Fabric REST API version is based on the runtime version in which the API was introduced or was changed. Service Fabric runtime supports more than one version of the API. This version is the latest supported version of the API. If a lower API version is passed, the returned response may be different from the one documented in this specification.\n\nAdditionally the runtime accepts any version that is higher than the latest supported version up to the current version of the runtime. So if the latest API version is 6.0 and the runtime is 6.1, the runtime will accept version 6.1 for that API. However the behavior of the API will be as per the documented 6.0 version.",
+ "x-ms-enum": {
+ "name": "ApiVersion_6-3_RequiredQueryParam",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "6.3",
+ "description": "The 6.3 version of the API."
+ }
+ ]
+ }
+ },
+ "ApiVersion_6-3-Preview_RequiredQueryParam": {
+ "name": "api-version",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "6.3-preview"
+ ],
+ "required": true,
+ "default": "6.3-preview",
+ "description": "The version of the API. This parameter is required and its value must be '6.3-preview'.",
+ "x-ms-enum": {
+ "name": "ApiVersion_6-3-Preview_RequiredQueryParam",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "6.3-preview",
+ "description": "The version number for the preview functionality of 6.3 runtime"
+ }
+ ]
+ }
+ },
+ "ApiVersion_6-4_RequiredQueryParam": {
+ "name": "api-version",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "6.4"
+ ],
+ "required": true,
+ "default": "6.4",
+ "description": "The version of the API. This parameter is required and its value must be '6.4'.\n\nService Fabric REST API version is based on the runtime version in which the API was introduced or was changed. Service Fabric runtime supports more than one version of the API. This version is the latest supported version of the API. If a lower API version is passed, the returned response may be different from the one documented in this specification.\n\nAdditionally the runtime accepts any version that is higher than the latest supported version up to the current version of the runtime. So if the latest API version is 6.0 and the runtime is 6.1, the runtime will accept version 6.1 for that API. However the behavior of the API will be as per the documented 6.0 version.",
+ "x-ms-enum": {
+ "name": "ApiVersion_6-4_RequiredQueryParam",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "6.4",
+ "description": "The 6.4 version of the API."
+ }
+ ]
+ }
+ },
+ "ApiVersion_6-5_RequiredQueryParam": {
+ "name": "api-version",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "6.5"
+ ],
+ "required": true,
+ "default": "6.5",
+ "description": "The version of the API. This parameter is required and its value must be '6.5'.\n\nService Fabric REST API version is based on the runtime version in which the API was introduced or was changed. Service Fabric runtime supports more than one version of the API. This version is the latest supported version of the API. If a lower API version is passed, the returned response may be different from the one documented in this specification.\n\nAdditionally the runtime accepts any version that is higher than the latest supported version up to the current version of the runtime. So if the latest API version is 6.0 and the runtime is 6.1, the runtime will accept version 6.1 for that API. However the behavior of the API will be as per the documented 6.0 version.",
+ "x-ms-enum": {
+ "name": "ApiVersion_6-5_RequiredQueryParam",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "6.5",
+ "description": "The 6.5 version of the API."
+ }
+ ]
+ }
+ },
+ "ApiVersion_7-0_RequiredQueryParam": {
+ "name": "api-version",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "7.0"
+ ],
+ "required": true,
+ "default": "7.0",
+ "description": "The version of the API. This parameter is required and its value must be '7.0'.\n\nService Fabric REST API version is based on the runtime version in which the API was introduced or was changed. Service Fabric runtime supports more than one version of the API. This version is the latest supported version of the API. If a lower API version is passed, the returned response may be different from the one documented in this specification.\n\nAdditionally the runtime accepts any version that is higher than the latest supported version up to the current version of the runtime. So if the latest API version is 6.0 and the runtime is 6.1, the runtime will accept version 6.1 for that API. However the behavior of the API will be as per the documented 6.0 version.",
+ "x-ms-enum": {
+ "name": "ApiVersion_7-0_RequiredQueryParam",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "7.0",
+ "description": "The 7.0 version of the API."
+ }
+ ]
+ }
+ },
+ "ApiVersion_7-2_RequiredQueryParam": {
+ "name": "api-version",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "7.2"
+ ],
+ "required": true,
+ "default": "7.2",
+ "description": "The version of the API. This parameter is required and its value must be '7.2'.\n\nService Fabric REST API version is based on the runtime version in which the API was introduced or was changed. Service Fabric runtime supports more than one version of the API. This version is the latest supported version of the API. If a lower API version is passed, the returned response may be different from the one documented in this specification.\n\nAdditionally the runtime accepts any version that is higher than the latest supported version up to the current version of the runtime. So if the latest API version is 6.0 and the runtime is 6.1, the runtime will accept version 6.1 for that API. However the behavior of the API will be as per the documented 6.0 version.",
+ "x-ms-enum": {
+ "name": "ApiVersion_7-2_RequiredQueryParam",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "7.2",
+ "description": "The 7.2 version of the API."
+ }
+ ]
+ }
+ },
+ "ApplicationDefinitionKindFilterOptionalQueryParam": {
+ "name": "ApplicationDefinitionKindFilter",
+ "description": "Used to filter on ApplicationDefinitionKind, which is the mechanism used to define a Service Fabric application.\n- Default - Default value, which performs the same function as selecting \"All\". The value is 0.\n- All - Filter that matches input with any ApplicationDefinitionKind value. The value is 65535.\n- ServiceFabricApplicationDescription - Filter that matches input with ApplicationDefinitionKind value ServiceFabricApplicationDescription. The value is 1.\n- Compose - Filter that matches input with ApplicationDefinitionKind value Compose. The value is 2.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": false,
+ "default": 0
+ },
+ "ApplicationHealthPolicyOptionalBodyParam": {
+ "name": "ApplicationHealthPolicy",
+ "in": "body",
+ "description": "Describes the health policies used to evaluate the health of an application or one of its children.\nIf not present, the health evaluation uses the health policy from application manifest or the default health policy.",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ApplicationHealthPolicy"
+ }
+ },
+ "ApplicationIdRequiredPathParam": {
+ "name": "applicationId",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "The identity of the application. This is typically the full name of the application without the 'fabric:' URI scheme.\nStarting from version 6.0, hierarchical names are delimited with the \"~\" character.\nFor example, if the application name is \"fabric:/myapp/app1\", the application identity would be \"myapp~app1\" in 6.0+ and \"myapp/app1\" in previous versions."
+ },
+ "ApplicationsHealthStateFilterOptionalQueryParam": {
+ "name": "ApplicationsHealthStateFilter",
+ "description": "Allows filtering of the application health state objects returned in the result of cluster health\nquery based on their health state.\nThe possible values for this parameter include integer value obtained from members or bitwise operations\non members of HealthStateFilter enumeration. Only applications that match the filter are returned.\nAll applications are used to evaluate the aggregated health state. If not specified, all entries are returned.\nThe state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.\nFor example, if the provided value is 6 then health state of applications with HealthState value of OK (2) and Warning (4) are returned.\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": false,
+ "default": 0
+ },
+ "ApplicationTypeDefinitionKindFilterOptionalQueryParam": {
+ "name": "ApplicationTypeDefinitionKindFilter",
+ "description": "Used to filter on ApplicationTypeDefinitionKind which is the mechanism used to define a Service Fabric application type.\n- Default - Default value, which performs the same function as selecting \"All\". The value is 0.\n- All - Filter that matches input with any ApplicationTypeDefinitionKind value. The value is 65535.\n- ServiceFabricApplicationPackage - Filter that matches input with ApplicationTypeDefinitionKind value ServiceFabricApplicationPackage. The value is 1.\n- Compose - Filter that matches input with ApplicationTypeDefinitionKind value Compose. The value is 2.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": false,
+ "default": 0
+ },
+ "ApplicationTypeNameOptionalQueryParam": {
+ "name": "ApplicationTypeName",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "The application type name used to filter the applications to query for. This value should not contain the application type version."
+ },
+ "ApplicationTypeNameRequiredPathParam": {
+ "name": "applicationTypeName",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "The name of the application type."
+ },
+ "ApplicationTypeVersionOptionalQueryParam": {
+ "name": "ApplicationTypeVersion",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "The version of the application type."
+ },
+ "ApplicationTypeVersionRequiredQueryParam": {
+ "name": "ApplicationTypeVersion",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "The version of the application type."
+ },
+ "ProvisionApplicationTypeDescriptionBaseRequiredBodyParam": {
+ "name": "ProvisionApplicationTypeDescriptionBaseRequiredBodyParam",
+ "in": "body",
+ "description": "The base type of provision application type description which supports either image store-based provision or external store-based provision.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ProvisionApplicationTypeDescriptionBase"
+ }
+ },
+ "ClusterConfigurationUpgradeDescriptionRequiredBodyParam": {
+ "name": "ClusterConfigurationUpgradeDescription",
+ "in": "body",
+ "description": "Parameters for a standalone cluster configuration upgrade.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ClusterConfigurationUpgradeDescription"
+ }
+ },
+ "ClusterHealthPoliciesOptionalBodyParam": {
+ "name": "ClusterHealthPolicies",
+ "in": "body",
+ "description": "Describes the health policies used to evaluate the cluster health.\nIf not present, the health evaluation uses the cluster health policy defined in the cluster manifest or the default cluster health policy.\nBy default, each application is evaluated using its specific application health policy, defined in the application manifest, or the default health policy, if no policy is defined in manifest.\nIf the application health policy map is specified, and it has an entry for an application, the specified application health policy\nis used to evaluate the application health.",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ClusterHealthPolicies"
+ }
+ },
+ "ClusterHealthPolicyOptionalBodyParam": {
+ "name": "ClusterHealthPolicy",
+ "in": "body",
+ "description": "Describes the health policies used to evaluate the health of a cluster or node. If not present, the health evaluation uses the health policy from cluster manifest or the default health policy.",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ClusterHealthPolicy"
+ }
+ },
+ "ClusterHealthChunkQueryDescriptionOptionalBodyParam": {
+ "name": "ClusterHealthChunkQueryDescription",
+ "in": "body",
+ "description": "Describes the cluster and application health policies used to evaluate the cluster health and the filters to select which cluster entities to be returned.\nIf the cluster health policy is present, it is used to evaluate the cluster events and the cluster nodes. If not present, the health evaluation uses the cluster health policy defined in the cluster manifest or the default cluster health policy.\nBy default, each application is evaluated using its specific application health policy, defined in the application manifest, or the default health policy, if no policy is defined in manifest.\nIf the application health policy map is specified, and it has an entry for an application, the specified application health policy\nis used to evaluate the application health.\nUsers can specify very flexible filters to select which cluster entities to include in response. The selection can be done based on the entities health state and based on the hierarchy.\nThe query can return multi-level children of the entities based on the specified filters. For example, it can return one application with a specified name, and for this application, return\nonly services that are in Error or Warning, and all partitions and replicas for one of these services.",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ClusterHealthChunkQueryDescription"
+ }
+ },
+ "CodePackageInstanceIdRequiredQueryParam": {
+ "name": "CodePackageInstanceId",
+ "description": "ID that uniquely identifies a code package instance deployed on a service fabric node.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true
+ },
+ "CodePackageNameRequiredQueryParam": {
+ "name": "CodePackageName",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "The name of code package specified in service manifest registered as part of an application type in a Service Fabric cluster."
+ },
+ "CodeVersionOptionalQueryParam": {
+ "name": "CodeVersion",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "The product version of Service Fabric."
+ },
+ "ConfigVersionOptionalQueryParam": {
+ "name": "ConfigVersion",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "The config version of Service Fabric."
+ },
+ "ConfigurationApiVersionRequiredQueryParam": {
+ "name": "ConfigurationApiVersion",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "The API version of the Standalone cluster json configuration."
+ },
+ "ContainerApiRequiredBodyParam": {
+ "name": "ContainerApiRequestBody",
+ "in": "body",
+ "description": "Parameters for making container API call",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ContainerApiRequestBody"
+ }
+ },
+ "ContinuationTokenOptionalQueryParam": {
+ "name": "ContinuationToken",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": false,
+ "description": "The continuation token parameter is used to obtain next set of results. A continuation token with a non-empty value is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token does not contain a value. The value of this parameter should not be URL encoded."
+ },
+ "DeployedApplicationsHealthStateFilterOptionalQueryParam": {
+ "name": "DeployedApplicationsHealthStateFilter",
+ "description": "Allows filtering of the deployed applications health state objects returned in the result of application health query based on their health state.\nThe possible values for this parameter include integer value of one of the following health states. Only deployed applications that match the filter will be returned.\nAll deployed applications are used to evaluate the aggregated health state. If not specified, all entries are returned.\nThe state values are flag-based enumeration, so the value could be a combination of these values, obtained using bitwise 'OR' operator.\nFor example, if the provided value is 6 then health state of deployed applications with HealthState value of OK (2) and Warning (4) are returned.\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": false,
+ "default": 0
+ },
+ "DeployedServicePackagesHealthStateFilterOptionalQueryParam": {
+ "name": "DeployedServicePackagesHealthStateFilter",
+ "description": "Allows filtering of the deployed service package health state objects returned in the result of deployed application health query based on their health state.\nThe possible values for this parameter include integer value of one of the following health states.\nOnly deployed service packages that match the filter are returned. All deployed service packages are used to evaluate the aggregated health state of the deployed application.\nIf not specified, all entries are returned.\nThe state values are flag-based enumeration, so the value can be a combination of these values, obtained using the bitwise 'OR' operator.\nFor example, if the provided value is 6 then health state of service packages with HealthState value of OK (2) and Warning (4) are returned.\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": false,
+ "default": 0
+ },
+ "DeploymentNameRequiredPathParam": {
+ "name": "deploymentName",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "The identity of the deployment."
+ },
+ "EventsHealthStateFilterOptionalQueryParam": {
+ "name": "EventsHealthStateFilter",
+ "description": "Allows filtering the collection of HealthEvent objects returned based on health state.\nThe possible values for this parameter include integer value of one of the following health states.\nOnly events that match the filter are returned. All events are used to evaluate the aggregated health state.\nIf not specified, all entries are returned. The state values are flag-based enumeration, so the value could be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned.\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": false,
+ "default": 0
+ },
+ "ExcludeApplicationParametersOptionalQueryParam": {
+ "name": "ExcludeApplicationParameters",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "default": false,
+ "description": "The flag that specifies whether application parameters will be excluded from the result."
+ },
+ "HealthInformationRequiredBodyParam": {
+ "name": "HealthInformation",
+ "in": "body",
+ "description": "Describes the health information for the health report. This information needs to be present in all of the health reports sent to the health manager.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/HealthInformation"
+ }
+ },
+ "NodeNameRequiredPathParam": {
+ "name": "nodeName",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "The name of the node."
+ },
+ "NodesHealthStateFilterOptionalQueryParam": {
+ "name": "NodesHealthStateFilter",
+ "description": "Allows filtering of the node health state objects returned in the result of cluster health query\nbased on their health state. The possible values for this parameter include integer value of one of the\nfollowing health states. Only nodes that match the filter are returned. All nodes are used to evaluate the aggregated health state.\nIf not specified, all entries are returned.\nThe state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.\nFor example, if the provided value is 6 then health state of nodes with HealthState value of OK (2) and Warning (4) are returned.\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": false,
+ "default": 0
+ },
+ "NodeStatusFilterOptionalQueryParam": {
+ "name": "NodeStatusFilter",
+ "description": "Allows filtering the nodes based on the NodeStatus. Only the nodes that are matching the specified filter value will be returned. The filter value can be one of the following.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "default",
+ "all",
+ "up",
+ "down",
+ "enabling",
+ "disabling",
+ "disabled",
+ "unknown",
+ "removed"
+ ],
+ "required": false,
+ "default": "default",
+ "x-ms-enum": {
+ "name": "NodeStatusFilter",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "default",
+ "description": "This filter value will match all of the nodes excepts the ones with status as Unknown or Removed."
+ },
+ {
+ "value": "all",
+ "description": "This filter value will match all of the nodes."
+ },
+ {
+ "value": "up",
+ "description": "This filter value will match nodes that are Up."
+ },
+ {
+ "value": "down",
+ "description": "This filter value will match nodes that are Down."
+ },
+ {
+ "value": "enabling",
+ "description": "This filter value will match nodes that are in the process of being enabled with status as Enabling."
+ },
+ {
+ "value": "disabling",
+ "description": "This filter value will match nodes that are in the process of being disabled with status as Disabling."
+ },
+ {
+ "value": "disabled",
+ "description": "This filter value will match nodes that are Disabled."
+ },
+ {
+ "value": "unknown",
+ "description": "This filter value will match nodes whose status is Unknown. A node would be in Unknown state if Service Fabric does not have authoritative information about that node. This can happen if the system learns about a node at runtime."
+ },
+ {
+ "value": "removed",
+ "description": "This filter value will match nodes whose status is Removed. These are the nodes that are removed from the cluster using the RemoveNodeState API."
+ }
+ ]
+ }
+ },
+ "PartitionIdOptionalQueryParam": {
+ "name": "PartitionId",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "format": "uuid",
+ "required": false,
+ "description": "The identity of the partition."
+ },
+ "PartitionIdRequiredPathParam": {
+ "name": "partitionId",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "format": "uuid",
+ "required": true,
+ "description": "The identity of the partition."
+ },
+ "ProvisionFabricDescriptionRequiredBodyParam": {
+ "name": "ProvisionFabricDescription",
+ "in": "body",
+ "description": "Describes the parameters for provisioning a cluster.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ProvisionFabricDescription"
+ }
+ },
+ "UnprovisionFabricDescriptionRequiredBodyParam": {
+ "name": "UnprovisionFabricDescription",
+ "in": "body",
+ "description": "Describes the parameters for unprovisioning a cluster.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/UnprovisionFabricDescription"
+ }
+ },
+ "ResumeClusterUpgradeDescriptionRequiredBodyParam": {
+ "name": "ResumeClusterUpgradeDescription",
+ "in": "body",
+ "description": "Describes the parameters for resuming a cluster upgrade.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ResumeClusterUpgradeDescription"
+ }
+ },
+ "UpdateClusterUpgradeDescriptionRequiredBodyParam": {
+ "name": "UpdateClusterUpgradeDescription",
+ "in": "body",
+ "description": "Parameters for updating a cluster upgrade.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/UpdateClusterUpgradeDescription"
+ }
+ },
+ "StartClusterUpgradeDescriptionRequiredBodyParam": {
+ "name": "StartClusterUpgradeDescription",
+ "in": "body",
+ "description": "Describes the parameters for starting a cluster upgrade.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/StartClusterUpgradeDescription"
+ }
+ },
+ "ReplicaHealthReportServiceKindRequiredQueryParam": {
+ "name": "ServiceKind",
+ "in": "query",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "description": "The kind of service replica (Stateless or Stateful) for which the health is being reported. Following are the possible values.",
+ "type": "string",
+ "enum": [
+ "Stateless",
+ "Stateful"
+ ],
+ "default": "Stateful",
+ "x-ms-enum": {
+ "name": "ReplicaHealthReportServiceKind",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Stateless",
+ "description": "Does not use Service Fabric to make its state highly available or reliable. The value is 1"
+ },
+ {
+ "value": "Stateful",
+ "description": "Uses Service Fabric to make its state or part of its state highly available and reliable. The value is 2."
+ }
+ ]
+ }
+ },
+ "ReplicaIdRequiredPathParam": {
+ "name": "replicaId",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "The identifier of the replica."
+ },
+ "ReplicasHealthStateFilerOptionalQueryParam": {
+ "name": "ReplicasHealthStateFilter",
+ "description": "Allows filtering the collection of ReplicaHealthState objects on the partition. The value can be obtained from members or bitwise operations on members of HealthStateFilter. Only replicas that match the filter will be returned. All replicas will be used to evaluate the aggregated health state. If not specified, all entries will be returned.The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. For example, If the provided value is 6 then all of the events with HealthState value of OK (2) and Warning (4) will be returned. The possible values for this parameter include integer value of one of the following health states.\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": false,
+ "default": 0
+ },
+ "ServiceIdRequiredPathParam": {
+ "name": "serviceId",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "The identity of the service. This ID is typically the full name of the service without the 'fabric:' URI scheme.\nStarting from version 6.0, hierarchical names are delimited with the \"~\" character.\nFor example, if the service name is \"fabric:/myapp/app1/svc1\", the service identity would be \"myapp~app1~svc1\" in 6.0+ and \"myapp/app1/svc1\" in previous versions."
+ },
+ "ServiceManifestNameOptionalQueryParam": {
+ "name": "ServiceManifestName",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "The name of a service manifest registered as part of an application type in a Service Fabric cluster."
+ },
+ "ServiceManifestNameRequiredQueryParam": {
+ "name": "ServiceManifestName",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "The name of a service manifest registered as part of an application type in a Service Fabric cluster."
+ },
+ "ServicePackageNameRequiredPathParam": {
+ "name": "servicePackageName",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "The name of the service package."
+ },
+ "ServicesHealthStateFilterOptionalQueryParam": {
+ "name": "ServicesHealthStateFilter",
+ "description": "Allows filtering of the services health state objects returned in the result of services health query based on their health state.\nThe possible values for this parameter include integer value of one of the following health states.\nOnly services that match the filter are returned. All services are used to evaluate the aggregated health state.\nIf not specified, all entries are returned. The state values are flag-based enumeration, so the value could be a combination of these values,\nobtained using bitwise 'OR' operator. For example, if the provided value is 6 then health state of services with HealthState value of OK (2) and Warning (4) will be returned.\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": false,
+ "default": 0
+ },
+ "CreateServiceFromTemplateRequiredBodyParam": {
+ "name": "ServiceFromTemplateDescription",
+ "in": "body",
+ "description": "Describes the service that needs to be created from the template defined in the application manifest.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ServiceFromTemplateDescription"
+ }
+ },
+ "ServiceTypeNameOptionalQueryParam": {
+ "name": "ServiceTypeName",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "The service type name used to filter the services to query for."
+ },
+ "InfrastructureCommandRequiredQueryParam": {
+ "name": "Command",
+ "description": "The text of the command to be invoked. The content of the command is infrastructure-specific.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true
+ },
+ "InfrastructureServiceIdOptionalQueryParam": {
+ "name": "ServiceId",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "description": "The identity of the infrastructure service. This is the full name of the infrastructure service without the 'fabric:' URI scheme. This parameter required only for the cluster that has more than one instance of infrastructure service running.",
+ "required": false
+ },
+ "ForceRemoveOptionalQueryParam": {
+ "name": "ForceRemove",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "description": "Remove a Service Fabric application or service forcefully without going through the graceful shutdown sequence. This parameter can be used to forcefully delete an application or service for which delete is timing out due to issues in the service code that prevents graceful close of replicas."
+ },
+ "ForceRemoveReplicaOptionalQueryParam": {
+ "name": "ForceRemove",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "description": "Remove a Service Fabric application or service forcefully without going through the graceful shutdown sequence. This parameter can be used to forcefully delete an application or service for which delete is timing out due to issues in the service code that prevents graceful close of replicas."
+ },
+ "DeactivationIntentDescriptionRequiredBodyParam": {
+ "name": "DeactivationIntentDescription",
+ "in": "body",
+ "description": "Describes the intent or reason for deactivating the node.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/DeactivationIntentDescription"
+ }
+ },
+ "RestartNodeDescriptionRequiredBodyParam": {
+ "name": "RestartNodeDescription",
+ "in": "body",
+ "description": "The instance of the node to be restarted and a flag indicating the need to take dump of the fabric process.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/RestartNodeDescription"
+ }
+ },
+ "ApplicationUpgradeDescriptionRequiredBodyParam": {
+ "name": "ApplicationUpgradeDescription",
+ "in": "body",
+ "description": "Parameters for an application upgrade.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ApplicationUpgradeDescription"
+ }
+ },
+ "ComposeDeploymentUpgradeDescriptionRequiredBodyParam": {
+ "name": "ComposeDeploymentUpgradeDescription",
+ "in": "body",
+ "description": "Parameters for upgrading compose deployment.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ComposeDeploymentUpgradeDescription"
+ }
+ },
+ "ApplicationTypeImageStorePathRequiredBodyParam": {
+ "name": "ApplicationTypeImageStorePath",
+ "in": "body",
+ "description": "The relative path for the application package in the image store specified during the prior copy operation.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ApplicationTypeImageStorePath"
+ }
+ },
+ "UnprovisionApplicationTypeRequiredBodyParam": {
+ "name": "UnprovisionApplicationTypeDescriptionInfo",
+ "in": "body",
+ "description": "The relative path for the application package in the image store specified during the prior copy operation.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/UnprovisionApplicationTypeDescriptionInfo"
+ }
+ },
+ "UpgradeOrchestrationServiceStateRequiredBodyParam": {
+ "name": "UpgradeOrchestrationServiceState",
+ "in": "body",
+ "x-ms-parameter-location": "method",
+ "required": true,
+ "description": "Service state of Service Fabric Upgrade Orchestration Service.",
+ "schema": {
+ "$ref": "#/definitions/UpgradeOrchestrationServiceState"
+ }
+ },
+ "ChaosParametersRequiredBodyParam": {
+ "name": "ChaosParameters",
+ "in": "body",
+ "description": "Describes all the parameters to configure a Chaos run.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ChaosParameters"
+ }
+ },
+ "StartTimeUtcOptionalQueryParam": {
+ "name": "StartTimeUtc",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "The Windows file time representing the start time of the time range for which a Chaos report is to be generated. Consult [DateTime.ToFileTimeUtc Method](https://msdn.microsoft.com/library/system.datetime.tofiletimeutc(v=vs.110).aspx) for details."
+ },
+ "EndTimeUtcOptionalQueryParam": {
+ "name": "EndTimeUtc",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "The Windows file time representing the end time of the time range for which a Chaos report is to be generated. Consult [DateTime.ToFileTimeUtc Method](https://msdn.microsoft.com/library/system.datetime.tofiletimeutc(v=vs.110).aspx) for details."
+ },
+ "ApplicationNameRequiredQueryParam": {
+ "name": "ApplicationName",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "The name of application to create from compose file. This is typically the full name of the application including 'fabric:' URI scheme."
+ },
+ "CreateComposeDeploymentRequiredBodyParam": {
+ "name": "CreateComposeDeploymentDescription",
+ "in": "body",
+ "description": "Describes the compose deployment that needs to be created.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/CreateComposeDeploymentDescription"
+ }
+ },
+ "PasswordEncryptedOptionalQueryParam": {
+ "name": "PasswordEncrypted",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "description": "Indicates that supplied container repository password is encrypted."
+ },
+ "RepositoryPasswordOptionalQueryParam": {
+ "name": "RepositoryPassword",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "The password for supplied username to connect to container repository."
+ },
+ "RepositoryUserNameOptionalQueryParam": {
+ "name": "RepositoryUserName",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "The user name to connect to container repository."
+ },
+ "MaxResultsOptionalQueryParam": {
+ "name": "MaxResults",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "format": "int64",
+ "minimum": 0,
+ "default": 0,
+ "required": false,
+ "description": "The maximum number of results to be returned as part of the paged queries. This parameter defines the upper bound on the number of results returned. The results returned can be less than the specified maximum results if they do not fit in the message as per the max message size restrictions defined in the configuration. If this parameter is zero or not specified, the paged query includes as many results as possible that fit in the return message."
+ },
+ "ApplicationDescriptionRequiredBodyParam": {
+ "name": "ApplicationDescription",
+ "in": "body",
+ "description": "Description for creating an application.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ApplicationDescription"
+ }
+ },
+ "ServiceDescriptionRequiredBodyParam": {
+ "name": "ServiceDescription",
+ "in": "body",
+ "description": "The information necessary to create a service.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ServiceDescription"
+ }
+ },
+ "ServiceUpdateDescriptionRequiredBodyParam": {
+ "name": "ServiceUpdateDescription",
+ "in": "body",
+ "description": "The information necessary to update a service.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ServiceUpdateDescription"
+ }
+ },
+ "ImageStoreCopyDescriptionRequiredBodyParam": {
+ "name": "ImageStoreCopyDescription",
+ "in": "body",
+ "description": "Describes the copy description for the image store.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ImageStoreCopyDescription"
+ }
+ },
+ "CodePackageNameOptionalQueryParam": {
+ "name": "CodePackageName",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "The name of code package specified in service manifest registered as part of an application type in a Service Fabric cluster."
+ },
+ "RestartDeployedCodePackageRequiredBodyParam": {
+ "name": "RestartDeployedCodePackageDescription",
+ "in": "body",
+ "description": "Describes the deployed code package on Service Fabric node to restart.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/RestartDeployedCodePackageDescription"
+ }
+ },
+ "PartitionsHealthStateFilterOptionalQueryParam": {
+ "name": "PartitionsHealthStateFilter",
+ "description": "Allows filtering of the partitions health state objects returned in the result of service health query based on their health state.\nThe possible values for this parameter include integer value of one of the following health states.\nOnly partitions that match the filter are returned. All partitions are used to evaluate the aggregated health state.\nIf not specified, all entries are returned. The state values are flag-based enumeration, so the value could be a combination of these value\nobtained using bitwise 'OR' operator. For example, if the provided value is 6 then health state of partitions with HealthState value of OK (2) and Warning (4) will be returned.\n\n- Default - Default value. Matches any HealthState. The value is zero.\n- None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1.\n- Ok - Filter that matches input with HealthState value Ok. The value is 2.\n- Warning - Filter that matches input with HealthState value Warning. The value is 4.\n- Error - Filter that matches input with HealthState value Error. The value is 8.\n- All - Filter that matches input with any HealthState value. The value is 65535.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": false,
+ "default": 0
+ },
+ "DeployedServiceType_ServiceManifestNameOptionalQueryParam": {
+ "name": "ServiceManifestName",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "The name of the service manifest to filter the list of deployed service type information. If specified, the response will only contain the information about service types that are defined in this service manifest."
+ },
+ "ServiceTypeNameRequiredPathParam": {
+ "name": "serviceTypeName",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "Specifies the name of a Service Fabric service type."
+ },
+ "ImageStoreContentPathRequiredPathParam": {
+ "name": "contentPath",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "Relative path to file or folder in the image store from its root."
+ },
+ "PartitionKeyTypeOptionalQueryParam": {
+ "name": "PartitionKeyType",
+ "description": "Key type for the partition. This parameter is required if the partition scheme for the service is Int64Range or Named. The possible values are following.\n- None (1) - Indicates that the PartitionKeyValue parameter is not specified. This is valid for the partitions with partitioning scheme as Singleton. This is the default value. The value is 1.\n- Int64Range (2) - Indicates that the PartitionKeyValue parameter is an int64 partition key. This is valid for the partitions with partitioning scheme as Int64Range. The value is 2.\n- Named (3) - Indicates that the PartitionKeyValue parameter is a name of the partition. This is valid for the partitions with partitioning scheme as Named. The value is 3.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": false
+ },
+ "PartitionKeyValueOptionalQueryParam": {
+ "name": "PartitionKeyValue",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": false,
+ "description": "Partition key. This is required if the partition scheme for the service is Int64Range or Named. \nThis is not the partition ID, but rather, either the integer key value, or the name of the partition ID.\nFor example, if your service is using ranged partitions from 0 to 10, then they PartitionKeyValue would be an\ninteger in that range. Query service description to see the range or name."
+ },
+ "PreviousRspVersionOptionalQueryParam": {
+ "name": "PreviousRspVersion",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": false,
+ "description": "The value in the Version field of the response that was received previously. This is required if the user knows that the result that was gotten previously is stale."
+ },
+ "DataLossModeRequiredQueryParam": {
+ "name": "DataLossMode",
+ "description": "This enum is passed to the StartDataLoss API to indicate what type of data loss to induce.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "Invalid",
+ "PartialDataLoss",
+ "FullDataLoss"
+ ],
+ "required": true,
+ "x-ms-enum": {
+ "name": "DataLossMode",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Reserved. Do not pass into API."
+ },
+ {
+ "value": "PartialDataLoss",
+ "description": "PartialDataLoss option will cause a quorum of replicas to go down, triggering an OnDataLoss event in the system for the given partition."
+ },
+ {
+ "value": "FullDataLoss",
+ "description": "FullDataLoss option will drop all the replicas which means that all the data will be lost."
+ }
+ ]
+ }
+ },
+ "FaultOperationIdRequiredQueryParam": {
+ "name": "OperationId",
+ "description": "A GUID that identifies a call of this API. This is passed into the corresponding GetProgress API",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "format": "uuid",
+ "required": true
+ },
+ "ForceRequiredQueryParam": {
+ "name": "Force",
+ "description": "Indicates whether to gracefully roll back and clean up internal system state modified by executing the user-induced operation.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": true,
+ "default": false
+ },
+ "NodeInstanceIdRequiredQueryParam": {
+ "name": "NodeInstanceId",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "The node instance ID of the target node. This can be determined through GetNodeInfo API."
+ },
+ "NodeTransitionTypeRequiredQueryParam": {
+ "name": "NodeTransitionType",
+ "description": "Indicates the type of transition to perform. NodeTransitionType.Start will start a stopped node. NodeTransitionType.Stop will stop a node that is up.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "Invalid",
+ "Start",
+ "Stop"
+ ],
+ "required": true,
+ "x-ms-enum": {
+ "name": "NodeTransitionType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Reserved. Do not pass into API."
+ },
+ {
+ "value": "Start",
+ "description": "Transition a stopped node to up."
+ },
+ {
+ "value": "Stop",
+ "description": "Transition an up node to stopped."
+ }
+ ]
+ }
+ },
+ "QuorumLossDurationRequiredQueryParam": {
+ "name": "QuorumLossDuration",
+ "description": "The amount of time for which the partition will be kept in quorum loss. This must be specified in seconds.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": true
+ },
+ "QuorumLossModeRequiredQueryParam": {
+ "name": "QuorumLossMode",
+ "description": "This enum is passed to the StartQuorumLoss API to indicate what type of quorum loss to induce.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "Invalid",
+ "QuorumReplicas",
+ "AllReplicas"
+ ],
+ "required": true,
+ "x-ms-enum": {
+ "name": "QuorumLossMode",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Reserved. Do not pass into API."
+ },
+ {
+ "value": "QuorumReplicas",
+ "description": "Partial Quorum loss mode : Minimum number of replicas for a partition will be down that will cause a quorum loss."
+ },
+ {
+ "value": "AllReplicas"
+ }
+ ]
+ }
+ },
+ "RestartPartitionModeRequiredQueryParam": {
+ "name": "RestartPartitionMode",
+ "description": "Describe which partitions to restart.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "Invalid",
+ "AllReplicasOrInstances",
+ "OnlyActiveSecondaries"
+ ],
+ "required": true,
+ "x-ms-enum": {
+ "name": "RestartPartitionMode",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "Reserved. Do not pass into API."
+ },
+ {
+ "value": "AllReplicasOrInstances",
+ "description": "All replicas or instances in the partition are restarted at once."
+ },
+ {
+ "value": "OnlyActiveSecondaries",
+ "description": "Only the secondary replicas are restarted."
+ }
+ ]
+ }
+ },
+ "StateFilterRequiredQueryParam": {
+ "name": "StateFilter",
+ "description": "Used to filter on OperationState's for user-induced operations.\n\n- 65535 - select All\n- 1 - select Running\n- 2 - select RollingBack\n- 8 - select Completed\n- 16 - select Faulted\n- 32 - select Cancelled\n- 64 - select ForceCancelled",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": true,
+ "default": 65535
+ },
+ "StopDurationInSecondsRequiredQueryParam": {
+ "name": "StopDurationInSeconds",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "required": true,
+ "description": "The duration, in seconds, to keep the node stopped. The minimum value is 600, the maximum is 14400. After this time expires, the node will automatically come back up."
+ },
+ "TypeFilterRequiredQueryParam": {
+ "name": "TypeFilter",
+ "description": "Used to filter on OperationType for user-induced operations.\n\n- 65535 - select all\n- 1 - select PartitionDataLoss.\n- 2 - select PartitionQuorumLoss.\n- 4 - select PartitionRestart.\n- 8 - select NodeTransition.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": true,
+ "default": 65535
+ },
+ "DeployServicePackageToNodeRequiredBodyParam": {
+ "name": "DeployServicePackageToNodeDescription",
+ "in": "body",
+ "description": "Describes information for deploying a service package to a Service Fabric node.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/DeployServicePackageToNodeDescription"
+ }
+ },
+ "ResumeApplicationUpgradeDescriptionRequiredBodyParam": {
+ "name": "ResumeApplicationUpgradeDescription",
+ "in": "body",
+ "description": "Describes the parameters for resuming an application upgrade.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ResumeApplicationUpgradeDescription"
+ }
+ },
+ "ApplicationUpgradeUpdateDescriptionRequiredBodyParam": {
+ "name": "ApplicationUpgradeUpdateDescription",
+ "in": "body",
+ "description": "Parameters for updating an existing application upgrade.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ApplicationUpgradeUpdateDescription"
+ }
+ },
+ "TimeoutOptionalQueryParam": {
+ "name": "timeout",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "format": "int64",
+ "required": false,
+ "minimum": 1,
+ "maximum": 4294967295,
+ "default": 60,
+ "description": "The server timeout for performing the operation in seconds. This timeout specifies the time duration that the client is willing to wait for the requested operation to complete. The default value for this parameter is 60 seconds."
+ },
+ "NameDescriptionRequiredBodyParam": {
+ "name": "NameDescription",
+ "in": "body",
+ "description": "Describes the Service Fabric name to be created.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/NameDescription"
+ }
+ },
+ "NameIdRequiredPathParam": {
+ "name": "nameId",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "The Service Fabric name, without the 'fabric:' URI scheme."
+ },
+ "RecursiveOptionalQueryParam": {
+ "name": "Recursive",
+ "description": "Allows specifying that the search performed should be recursive.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "default": false
+ },
+ "IncludeValuesOptionalQueryParam": {
+ "name": "IncludeValues",
+ "description": "Allows specifying whether to include the values of the properties returned. True if values should be returned with the metadata; False to return only property metadata.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "default": false
+ },
+ "PropertyDescriptionRequiredBodyParam": {
+ "name": "PropertyDescription",
+ "in": "body",
+ "description": "Describes the Service Fabric property to be created.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/PropertyDescription"
+ }
+ },
+ "PropertyNameRequiredQueryParam": {
+ "name": "PropertyName",
+ "description": "Specifies the name of the property to get.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true
+ },
+ "PropertyBatchDescriptionListRequiredBodyParam": {
+ "name": "PropertyBatchDescriptionList",
+ "in": "body",
+ "description": "Describes the property batch operations to be submitted.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/PropertyBatchDescriptionList"
+ }
+ },
+ "ImmediateOptionalQueryParam": {
+ "name": "Immediate",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "default": false,
+ "description": "A flag that indicates whether the report should be sent immediately.\nA health report is sent to a Service Fabric gateway Application, which forwards to the health store.\nIf Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, regardless of the fabric client settings that the HTTP Gateway Application is using.\nThis is useful for critical reports that should be sent as soon as possible.\nDepending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway is closed or the message doesn't reach the Gateway.\nIf Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. Therefore, it will be batched according to the HealthReportSendInterval configuration.\nThis is the recommended setting because it allows the health client to optimize health reporting messages to health store as well as health report processing.\nBy default, reports are not sent immediately."
+ },
+ "ExcludeHealthStatisticsOptionalQueryParam": {
+ "name": "ExcludeHealthStatistics",
+ "description": "Indicates whether the health statistics should be returned as part of the query result. False by default.\nThe statistics show the number of children entities in health state Ok, Warning, and Error.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "default": false
+ },
+ "IncludeSystemApplicationHealthStatisticsOptionalQueryParam": {
+ "name": "IncludeSystemApplicationHealthStatistics",
+ "description": "Indicates whether the health statistics should include the fabric:/System application health statistics. False by default.\nIf IncludeSystemApplicationHealthStatistics is set to true, the health statistics include the entities that belong to the fabric:/System application.\nOtherwise, the query result includes health statistics only for user applications.\nThe health statistics must be included in the query result for this parameter to be applied.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "default": false
+ },
+ "IncludeHealthStateOptionalQueryParam": {
+ "name": "IncludeHealthState",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "default": false,
+ "description": "Include the health state of an entity.\nIf this parameter is false or not specified, then the health state returned is \"Unknown\".\nWhen set to true, the query goes in parallel to the node and the health system service before the results are merged.\nAs a result, the query is more expensive and may take a longer time."
+ },
+ "BackupPolicyDescriptionRequiredBodyParam": {
+ "name": "BackupPolicyDescription",
+ "in": "body",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "description": "Describes the backup policy.",
+ "schema": {
+ "$ref": "#/definitions/BackupPolicyDescription"
+ }
+ },
+ "DisableBackupDescriptionOptionalBodyParam": {
+ "name": "DisableBackupDescription",
+ "in": "body",
+ "description": "Specifies the parameters to disable backup for any backup entity.",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/DisableBackupDescription"
+ }
+ },
+ "BackupPolicyNameRequiredPathParam": {
+ "name": "backupPolicyName",
+ "in": "path",
+ "description": "The name of the backup policy.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "type": "string"
+ },
+ "EnableBackupDescriptionRequiredBodyParam": {
+ "name": "EnableBackupDescription",
+ "in": "body",
+ "description": "Specifies the parameters for enabling backup.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/EnableBackupDescription"
+ }
+ },
+ "RestorePartitionDescriptionRequiredBodyParam": {
+ "name": "RestorePartitionDescription",
+ "in": "body",
+ "description": "Describes the parameters to restore the partition.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/RestorePartitionDescription"
+ }
+ },
+ "RestoreTimeoutOptionalQueryParam": {
+ "name": "RestoreTimeout",
+ "description": "Specifies the maximum amount of time to wait, in minutes, for the restore operation to complete. Post that, the operation returns back with timeout error. However, in certain corner cases it could be that the restore operation goes through even though it completes with timeout. In case of timeout error, its recommended to invoke this operation again with a greater timeout value. the default value for the same is 10 minutes.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": false,
+ "default": 10
+ },
+ "BackupPartitionDescriptionOptionalBodyParam": {
+ "name": "BackupPartitionDescription",
+ "in": "body",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "description": "Describes the parameters to backup the partition now. If not present, backup operation uses default parameters from the backup policy current associated with this partition.",
+ "schema": {
+ "$ref": "#/definitions/BackupPartitionDescription"
+ }
+ },
+ "BackupTimeoutOptionalQueryParam": {
+ "name": "BackupTimeout",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": false,
+ "description": "Specifies the maximum amount of time, in minutes, to wait for the backup operation to complete. Post that, the operation completes with timeout error. However, in certain corner cases it could be that though the operation returns back timeout, the backup actually goes through. In case of timeout error, its recommended to invoke this operation again with a greater timeout value. The default value for the same is 10 minutes.",
+ "default": 10
+ },
+ "LatestOptionalQueryParam": {
+ "name": "Latest",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "description": "Specifies whether to get only the most recent backup available for a partition for the specified time range.",
+ "required": false,
+ "default": false
+ },
+ "StartDateTimeFilterOptionalQueryParam": {
+ "name": "StartDateTimeFilter",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "format": "date-time",
+ "required": false,
+ "description": "Specify the start date time from which to enumerate backups, in datetime format. The date time must be specified in ISO8601 format. This is an optional parameter. If not specified, all backups from the beginning are enumerated."
+ },
+ "EndDateTimeFilterOptionalQueryParam": {
+ "name": "EndDateTimeFilter",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "format": "date-time",
+ "required": false,
+ "description": "Specify the end date time till which to enumerate backups, in datetime format. The date time must be specified in ISO8601 format. This is an optional parameter. If not specified, enumeration is done till the most recent backup."
+ },
+ "GetBackupByStorageQueryDescriptionRequiredBodyParam": {
+ "name": "GetBackupByStorageQueryDescription",
+ "in": "body",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "description": "Describes the filters and backup storage details to be used for enumerating backups.",
+ "schema": {
+ "$ref": "#/definitions/GetBackupByStorageQueryDescription"
+ }
+ },
+ "RepairTaskApproveDescriptionRequiredBodyParam": {
+ "name": "RepairTaskApproveDescription",
+ "in": "body",
+ "description": "Describes the repair task to be approved.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/RepairTaskApproveDescription"
+ }
+ },
+ "RepairTaskCancelDescriptionRequiredBodyParam": {
+ "name": "RepairTaskCancelDescription",
+ "in": "body",
+ "description": "Describes the repair task to be cancelled.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/RepairTaskCancelDescription"
+ }
+ },
+ "RepairTaskDeleteDescriptionRequiredBodyParam": {
+ "name": "RepairTaskDeleteDescription",
+ "in": "body",
+ "description": "Describes the repair task to be deleted.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/RepairTaskDeleteDescription"
+ }
+ },
+ "RepairTaskExecutorFilterOptionalQueryParam": {
+ "name": "ExecutorFilter",
+ "description": "The name of the repair executor whose claimed tasks should be included in the list.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false
+ },
+ "RepairTaskIdFilterOptionalQueryParam": {
+ "name": "TaskIdFilter",
+ "description": "The repair task ID prefix to be matched.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false
+ },
+ "RepairTaskRequiredBodyParam": {
+ "name": "RepairTask",
+ "in": "body",
+ "description": "Describes the repair task to be created or updated.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/RepairTask"
+ }
+ },
+ "RepairTaskStateFilterOptionalQueryParam": {
+ "name": "StateFilter",
+ "description": "A bitwise-OR of the following values, specifying which task states should be included in the result list.\n\n- 1 - Created\n- 2 - Claimed\n- 4 - Preparing\n- 8 - Approved\n- 16 - Executing\n- 32 - Restoring\n- 64 - Completed",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "integer",
+ "required": false
+ },
+ "RepairTaskUpdateHealthPolicyDescriptionRequiredBodyParam": {
+ "name": "RepairTaskUpdateHealthPolicyDescription",
+ "in": "body",
+ "description": "Describes the repair task healthy policy to be updated.",
+ "x-ms-parameter-location": "method",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RepairTaskUpdateHealthPolicyDescription"
+ }
+ },
+ "UploadSessionIdRequiredQueryParam": {
+ "name": "session-id",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "format": "uuid",
+ "required": true,
+ "description": "A GUID generated by the user for a file uploading. It identifies an image store upload session which keeps track of all file chunks until it is committed."
+ },
+ "UploadFileChunkContentRangeHeaderParam": {
+ "name": "Content-Range",
+ "in": "header",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "When uploading file chunks to the image store, the Content-Range header field need to be configured and sent with a request. The format should looks like \"bytes {First-Byte-Position}-{Last-Byte-Position}/{File-Length}\". For example, Content-Range:bytes 300-5000/20000 indicates that user is sending bytes 300 through 5,000 and the total file length is 20,000 bytes."
+ },
+ "ChaosScheduleRequiredBodyParam": {
+ "name": "ChaosSchedule",
+ "in": "body",
+ "description": "Describes the schedule used by Chaos.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ChaosScheduleDescription"
+ }
+ },
+ "StartTimeUtcRequiredQueryParam": {
+ "name": "StartTimeUtc",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "The start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ."
+ },
+ "EndTimeUtcRequiredQueryParam": {
+ "name": "EndTimeUtc",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "The end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ."
+ },
+ "EventsTypesFilterOptionalQueryParam": {
+ "name": "EventsTypesFilter",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "This is a comma separated string specifying the types of FabricEvents that should only be included in the response."
+ },
+ "ExcludeAnalysisEventsOptionalQueryParam": {
+ "name": "ExcludeAnalysisEvents",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "description": "This param disables the retrieval of AnalysisEvents if true is passed."
+ },
+ "SkipCorrelationLookupOptionalQueryParam": {
+ "name": "SkipCorrelationLookup",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "description": "This param disables the search of CorrelatedEvents information if true is passed. otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets populated."
+ },
+ "EventInstanceIdRequiredPathParam": {
+ "name": "eventInstanceId",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "The EventInstanceId."
+ },
+ "PreviousOptionalQueryParam": {
+ "name": "Previous",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "description": "Specifies whether to get container logs from exited/dead containers of the code package instance.",
+ "required": false,
+ "default": false
+ },
+ "IgnoreConstraintsOptionalParam": {
+ "name": "IgnoreConstraints",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "default": false,
+ "description": "Ignore constraints when moving a replica. If this parameter is not specified, all constraints are honored."
+ },
+ "NodeNameOptionalParam": {
+ "name": "NodeName",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "The name of the node."
+ },
+ "VerboseServicePlacementHealthReportingParam": {
+ "name": "Enabled",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": true,
+ "description": "The verbosity of service placement health reporting."
+ },
+ "NewNodeNameOptionalParam": {
+ "name": "NewNodeName",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": false,
+ "description": "The name of the target node for secondary replica move. If not specified, replica is moved to a random node."
+ },
+ "CurrentNodeNameRequiredParam": {
+ "name": "CurrentNodeName",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "required": true,
+ "description": "The name of the source node for secondary replica move."
+ },
+ "OnlyQueryPrimariesOptionalQueryParam": {
+ "name": "OnlyQueryPrimaries",
+ "description": "Indicates that unplaced replica information will be queries only for primary replicas.",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "default": false
+ },
+ "ForceConfigurationOverrideOptionalParam": {
+ "name": "Force",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "type": "boolean",
+ "required": false,
+ "description": "Force adding configuration overrides on specified nodes."
+ },
+ "ConfigurationOverrideListRequiredParam": {
+ "name": "ConfigParameterOverrideList",
+ "in": "body",
+ "description": "Description for adding list of configuration overrides.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ConfigParameterOverrideList"
+ }
+ },
+ "PartitionMetricLoadDescriptionListRequiredParam": {
+ "name": "PartitionMetricLoadDescriptionList",
+ "in": "body",
+ "description": "Description of updating load for list of partitions.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/PartitionMetricLoadDescriptionList"
+ }
+ },
+ "SecretResourceDescriptionRequiredBodyParam": {
+ "name": "secretResourceDescription",
+ "in": "body",
+ "description": "Description for creating a secret resource.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/SecretResourceDescription"
+ }
+ },
+ "SecretResourceNameRequiredPathParam": {
+ "name": "secretResourceName",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "The name of the secret resource."
+ },
+ "SecretValueResourceDescriptionRequiredBodyParam": {
+ "name": "secretValueResourceDescription",
+ "in": "body",
+ "description": "Description for creating a value of a secret resource.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/SecretValueResourceDescription"
+ }
+ },
+ "SecretValueResourceNameRequiredPathParam": {
+ "name": "secretValueResourceName",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "The name of the secret resource value which is typically the version identifier for the value."
+ },
+ "VolumeResourceDescriptionRequiredBodyParam": {
+ "name": "volumeResourceDescription",
+ "in": "body",
+ "description": "Description for creating a Volume resource.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/VolumeResourceDescription"
+ }
+ },
+ "VolumeResourceNameRequiredPathParam": {
+ "name": "volumeResourceName",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "The identity of the volume."
+ },
+ "NetworkResourceDescriptionRequiredBodyParam": {
+ "name": "networkResourceDescription",
+ "in": "body",
+ "description": "Description for creating a Network resource.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/NetworkResourceDescription"
+ }
+ },
+ "NetworkResourceNameRequiredPathParam": {
+ "name": "networkResourceName",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "The identity of the network."
+ },
+ "ApplicationResourceDescriptionRequiredBodyParam": {
+ "name": "applicationResourceDescription",
+ "in": "body",
+ "description": "Description for creating a Application resource.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/ApplicationResourceDescription"
+ }
+ },
+ "ApplicationResourceNameRequiredPathParam": {
+ "name": "applicationResourceName",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "The identity of the application."
+ },
+ "ServiceResourceNameRequiredPathParam": {
+ "name": "serviceResourceName",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "The identity of the service."
+ },
+ "ReplicaNameRequiredPathParam": {
+ "name": "replicaName",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "Service Fabric replica name."
+ },
+ "GatewayResourceDescriptionRequiredBodyParam": {
+ "name": "gatewayResourceDescription",
+ "in": "body",
+ "description": "Description for creating a Gateway resource.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "schema": {
+ "$ref": "#/definitions/GatewayResourceDescription"
+ }
+ },
+ "GatewayResourceNameRequiredPathParam": {
+ "name": "gatewayResourceName",
+ "in": "path",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true,
+ "type": "string",
+ "required": true,
+ "description": "The identity of the gateway."
+ }
+ }
+}
diff --git a/specification/servicefabric/data-plane/readme.go.md b/specification/servicefabric/data-plane/readme.go.md
index e11163673d21..d59076f5d70e 100644
--- a/specification/servicefabric/data-plane/readme.go.md
+++ b/specification/servicefabric/data-plane/readme.go.md
@@ -18,6 +18,7 @@ batch:
- tag: "6.4"
- tag: "6.5"
- tag: "7.0"
+ - tag: "7.2"
```
### Tag: 6.2 and go
@@ -59,4 +60,12 @@ These settings apply only when `--tag=7.0 --go` is specified on the command line
``` yaml $(tag) == '7.0' && $(go)
output-folder: $(go-sdk-folder)/services/$(namespace)/7.0/$(namespace)
+```
+
+### Tag: 7.2 and go
+
+These settings apply only when `--tag=7.2 --go` is specified on the command line.
+
+``` yaml $(tag) == '7.2' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/7.2/$(namespace)
```
\ No newline at end of file
diff --git a/specification/servicefabric/data-plane/readme.md b/specification/servicefabric/data-plane/readme.md
index 719a8b671916..4e8ddd138a3d 100644
--- a/specification/servicefabric/data-plane/readme.md
+++ b/specification/servicefabric/data-plane/readme.md
@@ -25,7 +25,7 @@ These are the global settings for the ServiceFabricClient API.
``` yaml
openapi-type: data-plane
-tag: '7.1'
+tag: '7.2'
```
### Suppression
@@ -125,6 +125,16 @@ input-file:
```
+### Tag: 7.2
+
+These settings apply only when `--tag=7.2` is specified on the command line.
+
+``` yaml $(tag) == '7.2'
+input-file:
+- Microsoft.ServiceFabric/stable/7.2/servicefabric.json
+
+```
+
---
# Code Generation
@@ -179,7 +189,7 @@ input-file:
- $(this-folder)/Microsoft.ServiceFabric/stable/6.5/servicefabric.json
- $(this-folder)/Microsoft.ServiceFabric/stable/7.0/servicefabric.json
- $(this-folder)/Microsoft.ServiceFabric/stable/7.1/servicefabric.json
-
+ - $(this-folder)/Microsoft.ServiceFabric/stable/7.2/servicefabric.json
```
If there are files that should not be in the `all-api-versions` set,
diff --git a/specification/servicefabric/data-plane/readme.python.md b/specification/servicefabric/data-plane/readme.python.md
index ab41c8694c10..3ada9c5e3aad 100644
--- a/specification/servicefabric/data-plane/readme.python.md
+++ b/specification/servicefabric/data-plane/readme.python.md
@@ -11,7 +11,7 @@ python:
payload-flattening-threshold: 2
namespace: azure.servicefabric
package-name: azure-servicefabric
- package-version: 7.0.0.0
+ package-version: 7.2.0.0
add-credentials: true
clear-output-folder: true
```
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 507c3ad8420a..ea265f583a6f 100644
--- a/specification/sql/resource-manager/readme.md
+++ b/specification/sql/resource-manager/readme.md
@@ -24,13 +24,117 @@ 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
The following packages may be composed from multiple api-versions.
+### Tag: package-composite-v4
+
+These settings apply only when `--tag=package-composite-v4` is specified on the command line.
+
+This section contains the "composite-v4" set of APIs, which is composed from a selection of api-versions that will remain backwards compatible with "v4" clients such as .NET SDK Microsoft.Azure.Management.Sql version 1.44.3.0-preview.
+
+APIs must only be added to this section when the API is publicly available in at least 1 production region and at least 1 generated client has been tested end-to-end.
+
+Differences in v4 (compared to v3):
+
+* Added new API for databases and elastic pools
+
+ * `-2020-08-01/databases.json`
+
+ * `-2020-08-01/elasticPools.json`
+
+* Failover API for elastic pools was integrated into elasticPools
+
+``` yaml $(tag) == 'package-composite-v4'
+input-file:
+- Microsoft.Sql/stable/2014-04-01/backups.json
+- Microsoft.Sql/stable/2014-04-01/connectionPolicies.json
+- Microsoft.Sql/stable/2014-04-01/databaseSecurityAlertPolicies.json
+- Microsoft.Sql/stable/2014-04-01/dataMasking.json
+- Microsoft.Sql/stable/2014-04-01/firewallRules.json
+- Microsoft.Sql/stable/2014-04-01/geoBackupPolicies.json
+- Microsoft.Sql/stable/2014-04-01/metrics.json
+- Microsoft.Sql/stable/2014-04-01/recommendedElasticPoolsDecoupled.json
+- Microsoft.Sql/stable/2014-04-01/replicationLinks.json
+- Microsoft.Sql/stable/2014-04-01/serverCommunicationLinks.json
+- Microsoft.Sql/stable/2014-04-01/serviceObjectives.json
+- Microsoft.Sql/stable/2014-04-01/sql.core.json
+- Microsoft.Sql/stable/2014-04-01/usages.json
+- Microsoft.Sql/preview/2015-05-01-preview/databaseAutomaticTuning.json
+- Microsoft.Sql/preview/2015-05-01-preview/encryptionProtectors.json
+- Microsoft.Sql/preview/2015-05-01-preview/failoverGroups.json
+- Microsoft.Sql/preview/2015-05-01-preview/operations.json
+- Microsoft.Sql/preview/2015-05-01-preview/serverKeys.json
+- Microsoft.Sql/preview/2015-05-01-preview/syncAgents.json
+- Microsoft.Sql/preview/2015-05-01-preview/usages.json
+- Microsoft.Sql/preview/2015-05-01-preview/virtualclusters.json
+- Microsoft.Sql/preview/2015-05-01-preview/virtualNetworkRules.json
+- Microsoft.Sql/preview/2017-03-01-preview/blobAuditing.json
+- Microsoft.Sql/preview/2017-03-01-preview/databaseVulnerabilityAssessmentBaselines.json
+- Microsoft.Sql/preview/2017-03-01-preview/databaseVulnerabilityAssessments.json
+- Microsoft.Sql/preview/2017-03-01-preview/jobs.json
+- Microsoft.Sql/preview/2017-03-01-preview/longTermRetention.json
+- Microsoft.Sql/preview/2017-03-01-preview/ManagedBackupShortTermRetention.json
+- Microsoft.Sql/preview/2017-03-01-preview/ManagedRestorableDroppedDatabaseBackupShortTermRetenion.json
+- Microsoft.Sql/preview/2017-03-01-preview/serverAutomaticTuning.json
+- Microsoft.Sql/preview/2017-03-01-preview/serverDnsAliases.json
+- Microsoft.Sql/preview/2017-03-01-preview/serverSecurityAlertPolicies.json
+- Microsoft.Sql/preview/2017-03-01-preview/restorableDroppedManagedDatabases.json
+- Microsoft.Sql/preview/2017-03-01-preview/restorePoints.json
+- Microsoft.Sql/preview/2017-03-01-preview/ManagedDatabaseSecurityAlertPolicies.json
+- Microsoft.Sql/preview/2017-03-01-preview/ManagedServerSecurityAlertPolicy.json
+- Microsoft.Sql/preview/2017-03-01-preview/SensitivityLabels.json
+- Microsoft.Sql/preview/2017-03-01-preview/managedInstanceAdministrators.json
+- Microsoft.Sql/preview/2017-10-01-preview/cancelOperations.json
+- Microsoft.Sql/preview/2017-10-01-preview/cancelPoolOperations.json
+- Microsoft.Sql/preview/2017-10-01-preview/databaseVulnerabilityAssessmentScans.json
+- Microsoft.Sql/preview/2017-10-01-preview/managedDatabaseVulnerabilityAssesmentRuleBaselines.json
+- Microsoft.Sql/preview/2017-10-01-preview/managedDatabaseVulnerabilityAssessmentScans.json
+- Microsoft.Sql/preview/2017-10-01-preview/managedDatabaseVulnerabilityAssessments.json
+- Microsoft.Sql/preview/2017-10-01-preview/instanceFailoverGroups.json
+- Microsoft.Sql/preview/2017-10-01-preview/TdeCertificates.json
+- Microsoft.Sql/preview/2017-10-01-preview/ManagedInstanceTdeCertificates.json
+- 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
+- Microsoft.Sql/preview/2018-06-01-preview/instancePools.json
+- Microsoft.Sql/preview/2018-06-01-preview/usages.json
+- Microsoft.Sql/preview/2018-06-01-preview/PrivateEndpointConnections.json
+- Microsoft.Sql/preview/2018-06-01-preview/PrivateLinkResources.json
+- Microsoft.Sql/preview/2019-06-01-preview/servers.json
+- Microsoft.Sql/preview/2018-06-01-preview/capabilities.json
+- Microsoft.Sql/preview/2018-06-01-preview/LongTermRetentionManagedInstanceBackups.json
+- Microsoft.Sql/preview/2018-06-01-preview/ManagedInstanceLongTermRetentionPolicies.json
+- Microsoft.Sql/preview/2019-06-01-preview/WorkloadGroups.json
+- Microsoft.Sql/preview/2019-06-01-preview/WorkloadClassifiers.json
+- Microsoft.Sql/preview/2019-06-01-preview/managedInstanceOperations.json
+- Microsoft.Sql/preview/2019-06-01-preview/ServerAzureADAdministrators.json
+- 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/managedDatabases.json
+- Microsoft.Sql/preview/2020-02-02-preview/ServerAzureADOnlyAuthentications.json
+- Microsoft.Sql/preview/2020-02-02-preview/managedInstances.json
+- Microsoft.Sql/preview/2020-02-02-preview/importexport.json
+- Microsoft.Sql/preview/2020-02-02-preview/ManagedInstanceAzureADOnlyAuthentications.json
+- Microsoft.Sql/preview/2020-02-02-preview/ServerTrustGroups.json
+- Microsoft.Sql/preview/2020-08-01-preview/databases.json
+- Microsoft.Sql/preview/2020-08-01-preview/elasticPools.json
+
+
+# Needed when there is more than one input file
+override-info:
+ title: SqlManagementClient
+```
+
### Tag: package-composite-v3
These settings apply only when `--tag=package-composite-v3` is specified on the command line.
@@ -114,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
@@ -134,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/blob.json b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/blob.json
index b07b7afda9ad..bfb8cb862ec7 100644
--- a/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/blob.json
+++ b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/blob.json
@@ -64,6 +64,9 @@
"x-ms-examples": {
"PutBlobServices": {
"$ref": "./examples/BlobServicesPut.json"
+ },
+ "BlobServicesPutLastAccessTimeBasedTracking": {
+ "$ref": "./examples/BlobServicesPutLastAccessTimeBasedTracking.json"
}
},
"description": "Sets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. ",
@@ -1204,6 +1207,10 @@
"containerDeleteRetentionPolicy": {
"$ref": "./common.json#/definitions/DeleteRetentionPolicy",
"description": "The blob service properties for container soft delete."
+ },
+ "lastAccessTimeTrackingPolicy": {
+ "$ref": "#/definitions/LastAccessTimeTrackingPolicy",
+ "description": "The blob service property to configure last access time based tracking policy."
}
},
"x-ms-client-flatten": true,
@@ -1274,6 +1281,41 @@
],
"description": "The blob service properties for blob restore policy"
},
+ "LastAccessTimeTrackingPolicy": {
+ "properties": {
+ "enable": {
+ "type": "boolean",
+ "description": "When set to true last access time based tracking is enabled."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the policy. The valid value is AccessTimeTracking. This field is currently read only",
+ "enum": [
+ "AccessTimeTracking"
+ ],
+ "x-ms-enum": {
+ "name": "name",
+ "modelAsString": true
+ }
+ },
+ "trackingGranularityInDays": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1"
+ },
+ "blobType": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only"
+ }
+ },
+ "required": [
+ "enable"
+ ],
+ "description": "The blob service properties for Last access time based tracking policy."
+ },
"LeaseContainerRequest": {
"properties": {
"action": {
diff --git a/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/BlobServicesPutLastAccessTimeBasedTracking.json b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/BlobServicesPutLastAccessTimeBasedTracking.json
new file mode 100644
index 000000000000..a412fc28b489
--- /dev/null
+++ b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/BlobServicesPutLastAccessTimeBasedTracking.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res4410",
+ "accountName": "sto8607",
+ "BlobServicesName": "default",
+ "api-version": "2020-08-01-preview",
+ "monitor": "true",
+ "parameters": {
+ "properties": {
+ "lastAccessTimeTrackingPolicy": {
+ "enable": true,
+ "name": "AccessTimeTracking",
+ "trackingGranularityInDays": 1,
+ "blobType": [
+ "blockBlob"
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default",
+ "name": "default",
+ "type": "Microsoft.Storage/storageAccounts/blobServices",
+ "properties": {
+ "lastAccessTimeTrackingPolicy": {
+ "enable": true,
+ "name": "AccessTimeTracking",
+ "trackingGranularityInDays": 1,
+ "blobType": [
+ "blockBlob"
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/FileServicesPut_EnableSMBMultichannel.json b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/FileServicesPut_EnableSMBMultichannel.json
new file mode 100644
index 000000000000..4368652b23e3
--- /dev/null
+++ b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/FileServicesPut_EnableSMBMultichannel.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res4410",
+ "accountName": "sto8607",
+ "FileServicesName": "default",
+ "api-version": "2020-08-01-preview",
+ "monitor": "true",
+ "parameters": {
+ "properties": {
+ "protocolSettings": {
+ "smb": {
+ "multichannel": {
+ "enabled": true
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default",
+ "name": "default",
+ "type": "Microsoft.Storage/storageAccounts/fileServices",
+ "properties": {
+ "protocolSettings": {
+ "smb": {
+ "multichannel": {
+ "enabled": true
+ }
+ }
+ }
+ },
+ "sku": {
+ "name": "Premium_LRS",
+ "tier": "Premium"
+ }
+ }
+ }
+ }
+}
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/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json
new file mode 100644
index 000000000000..52c40ceacc81
--- /dev/null
+++ b/specification/storage/resource-manager/Microsoft.Storage/preview/2020-08-01-preview/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json
@@ -0,0 +1,102 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res7687",
+ "accountName": "sto9699",
+ "managementPolicyName": "default",
+ "api-version": "2020-08-01-preview",
+ "monitor": "true",
+ "properties": {
+ "properties": {
+ "policy": {
+ "rules": [
+ {
+ "enabled": true,
+ "name": "olcmtest",
+ "type": "Lifecycle",
+ "definition": {
+ "filters": {
+ "blobTypes": [
+ "blockBlob"
+ ],
+ "prefixMatch": [
+ "olcmtestcontainer"
+ ]
+ },
+ "actions": {
+ "baseBlob": {
+ "tierToCool": {
+ "daysAfterLastAccessTimeGreaterThan": 30
+ },
+ "tierToArchive": {
+ "daysAfterLastAccessTimeGreaterThan": 90
+ },
+ "delete": {
+ "daysAfterLastAccessTimeGreaterThan": 1000
+ },
+ "enableAutoTierToHotFromCool": true
+ },
+ "snapshot": {
+ "delete": {
+ "daysAfterCreationGreaterThan": 30
+ }
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default",
+ "name": "DefaultManagementPolicy",
+ "type": "Microsoft.Storage/storageAccounts/managementPolicies",
+ "properties": {
+ "policy": {
+ "rules": [
+ {
+ "enabled": true,
+ "name": "olcmtest",
+ "type": "Lifecycle",
+ "definition": {
+ "filters": {
+ "blobTypes": [
+ "blockBlob"
+ ],
+ "prefixMatch": [
+ "olcmtestcontainer"
+ ]
+ },
+ "actions": {
+ "baseBlob": {
+ "tierToCool": {
+ "daysAfterLastAccessTimeGreaterThan": 30
+ },
+ "tierToArchive": {
+ "daysAfterLastAccessTimeGreaterThan": 90
+ },
+ "delete": {
+ "daysAfterLastAccessTimeGreaterThan": 1000
+ },
+ "enableAutoTierToHotFromCool": true
+ },
+ "snapshot": {
+ "delete": {
+ "daysAfterCreationGreaterThan": 30
+ }
+ }
+ }
+ }
+ }
+ ]
+ },
+ "lastModifiedTime": "2018-06-08T02: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 2035390ef5ef..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
@@ -67,6 +67,9 @@
"x-ms-examples": {
"PutFileServices": {
"$ref": "./examples/FileServicesPut.json"
+ },
+ "PutFileServices_EnableSMBMultichannel": {
+ "$ref": "./examples/FileServicesPut_EnableSMBMultichannel.json"
}
},
"description": "Sets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules. ",
@@ -167,6 +170,9 @@
},
"ListDeletedShares": {
"$ref": "./examples/DeletedFileSharesList.json"
+ },
+ "ListShareSnapshots": {
+ "$ref": "./examples/FileShareSnapshotsList.json"
}
},
"description": "Lists all shares.",
@@ -201,7 +207,8 @@
"required": false,
"type": "string",
"enum": [
- "deleted"
+ "deleted",
+ "snapshots"
],
"x-ms-enum": {
"name": "ListSharesExpand",
@@ -266,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"
},
@@ -390,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": {
@@ -433,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": {
@@ -526,6 +561,10 @@
"shareDeleteRetentionPolicy": {
"$ref": "./common.json#/definitions/DeleteRetentionPolicy",
"description": "The file service properties for share soft delete."
+ },
+ "protocolSettings": {
+ "$ref": "#/definitions/ProtocolSettings",
+ "description": "Protocol settings for file service"
}
},
"x-ms-client-flatten": true,
@@ -545,6 +584,33 @@
],
"description": "The properties of File services in storage account."
},
+ "ProtocolSettings": {
+ "properties": {
+ "smb": {
+ "$ref": "#/definitions/SmbSetting",
+ "description": "Setting for SMB protocol"
+ }
+ },
+ "description": "Protocol settings for file service"
+ },
+ "SmbSetting": {
+ "properties": {
+ "multichannel": {
+ "$ref": "#/definitions/Multichannel",
+ "description": "Multichannel setting. Applies to Premium FileStorage only."
+ }
+ },
+ "description": "Setting for SMB protocol"
+ },
+ "Multichannel": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Indicates whether multichannel is enabled"
+ }
+ },
+ "description": "Multichannel setting. Applies to Premium FileStorage only."
+ },
"FileShare": {
"properties": {
"properties": {
@@ -712,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 d8a18901b502..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
@@ -825,6 +825,9 @@
"x-ms-examples": {
"StorageAccountSetManagementPolicies": {
"$ref": "./examples/StorageAccountSetManagementPolicy.json"
+ },
+ "StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions": {
+ "$ref": "./examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json"
}
},
"parameters": [
@@ -900,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": [
@@ -3556,6 +3744,10 @@
"delete": {
"$ref": "#/definitions/DateAfterModification",
"description": "The function to delete the blob"
+ },
+ "enableAutoTierToHotFromCool": {
+ "type": "boolean",
+ "description": "This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan."
}
},
"description": "Management policy action for base blob."
@@ -3576,11 +3768,14 @@
"multipleOf": 1.0,
"minimum": 0,
"description": "Value indicating the age in days after last modification"
+ },
+ "daysAfterLastAccessTimeGreaterThan": {
+ "type": "number",
+ "multipleOf": 1.0,
+ "minimum": 0,
+ "description": "Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy"
}
},
- "required": [
- "daysAfterModificationGreaterThan"
- ],
"description": "Object to define the number of days after last modification."
},
"DateAfterCreation": {
@@ -3788,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": {
@@ -3876,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/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/CreateManagedPrivateEndpoint.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateManagedPrivateEndpoint.json
index 546fa6e7fe84..168740ecf1c7 100644
--- a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateManagedPrivateEndpoint.json
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateManagedPrivateEndpoint.json
@@ -1,11 +1,10 @@
{
"parameters": {
- "workspaceName": "myWorkspace",
- "SynapseDnsSuffix": "dev.azuresynapse.net",
+ "endpoint": "exampleWorkspace.dev.azuresynapse.net",
"api-version": "2019-06-01-preview",
"managedVirtualNetworkName": "default",
"managedPrivateEndpointName": "myPrivateEndpoint",
- "parameters": {
+ "managedPrivateEndpoint": {
"properties": {
"privateLinkResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.Storage/accounts/myStorageAccount",
"groupId": "blob"
@@ -13,7 +12,7 @@
}
},
"responses": {
- "202": {
+ "200": {
"body": {
"type": "Microsoft.Synapse/workspaces/managedVirtualNetworks/managedPrivateEndpoints",
"name": "myPrivateEndpoint",
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/DeleteManagedPrivateEndpoint.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteManagedPrivateEndpoint.json
index a82531a7ca46..0dae9a6beee1 100644
--- a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteManagedPrivateEndpoint.json
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteManagedPrivateEndpoint.json
@@ -1,7 +1,6 @@
{
"parameters": {
- "workspaceName": "myWorkspace",
- "SynapseDnsSuffix": "dev.azuresynapse.net",
+ "endpoint": "exampleWorkspace.dev.azuresynapse.net",
"api-version": "2019-06-01-preview",
"managedVirtualNetworkName": "default",
"managedPrivateEndpointName": "myPrivateEndpoint"
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetManagedPrivateEndpoint.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetManagedPrivateEndpoint.json
index cb3551457722..14c2f5029b07 100644
--- a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetManagedPrivateEndpoint.json
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetManagedPrivateEndpoint.json
@@ -1,7 +1,6 @@
{
"parameters": {
- "workspaceName": "myWorkspace",
- "SynapseDnsSuffix": "dev.azuresynapse.net",
+ "endpoint": "exampleWorkspace.dev.azuresynapse.net",
"api-version": "2019-06-01-preview",
"managedVirtualNetworkName": "default",
"managedPrivateEndpointName": "myPrivateEndpoint"
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/ListManagedPrivateEndpoints.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListManagedPrivateEndpoints.json
index 2dfbbc8c6aef..a91826d848a9 100644
--- a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListManagedPrivateEndpoints.json
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListManagedPrivateEndpoints.json
@@ -1,7 +1,6 @@
{
"parameters": {
- "workspaceName": "myWorkspace",
- "SynapseDnsSuffix": "dev.azuresynapse.net",
+ "endpoint": "exampleWorkspace.dev.azuresynapse.net",
"api-version": "2019-06-01-preview",
"managedVirtualNetworkName": "default"
},
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/Microsoft.Synapse/preview/2019-06-01-preview/managedPrivateEndpoints.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/managedPrivateEndpoints.json
index 8322fd96043d..0db302d9eae4 100644
--- a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/managedPrivateEndpoints.json
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/managedPrivateEndpoints.json
@@ -2,21 +2,14 @@
"swagger": "2.0",
"info": {
"version": "2019-06-01-preview",
- "title": "VnetClient"
+ "title": "ManagedPrivateEndpointsClient"
},
"x-ms-parameterized-host": {
- "hostTemplate": "{workspaceName}.{SynapseDnsSuffix}",
+ "hostTemplate": "{endpoint}",
+ "useSchemePrefix": false,
"parameters": [
{
- "name": "workspaceName",
- "description": "The name of the workspace to execute operations on.",
- "required": true,
- "type": "string",
- "in": "path",
- "x-ms-skip-url-encoding": true
- },
- {
- "$ref": "#/parameters/SynapseDnsSuffixInPath"
+ "$ref": "#/parameters/Endpoint"
}
]
},
@@ -79,10 +72,19 @@
},
{
"$ref": "#/parameters/ManagedPrivateEndpointNameParameter"
+ },
+ {
+ "name": "managedPrivateEndpoint",
+ "in": "body",
+ "required": true,
+ "description": "Managed private endpoint properties.",
+ "schema": {
+ "$ref": "#/definitions/ManagedPrivateEndpoint"
+ }
}
],
"responses": {
- "202": {
+ "200": {
"schema": {
"$ref": "#/definitions/ManagedPrivateEndpoint"
},
@@ -262,6 +264,15 @@
}
},
"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",
@@ -269,16 +280,6 @@
"type": "string",
"description": "The Synapse client API Version."
},
- "SynapseDnsSuffixInPath": {
- "name": "SynapseDnsSuffix",
- "in": "path",
- "required": true,
- "type": "string",
- "default": "dev.azuresynapse.net",
- "x-ms-skip-url-encoding": true,
- "description": "Gets the DNS suffix used as the base for all Synapse service requests.",
- "x-ms-parameter-location": "client"
- },
"ManagedVirtualNetworkNameParameter": {
"name": "managedVirtualNetworkName",
"in": "path",
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-11-01-preview/monitoring.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-11-01-preview/monitoring.json
index a41141a84d23..27d62da3934b 100644
--- a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-11-01-preview/monitoring.json
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-11-01-preview/monitoring.json
@@ -162,10 +162,12 @@
}
},
"sparkJobDefinition": {
- "type": "string"
+ "type": "string",
+ "x-nullable": true
},
"pipeline": {
"uniqueItems": false,
+ "x-nullable": true,
"type": "array",
"items": {
"$ref": "#/definitions/SparkJob"
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 2d681d2c020f..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"
@@ -442,7 +459,8 @@
"Medium",
"Large",
"XLarge",
- "XXLarge"
+ "XXLarge",
+ "XXXLarge"
],
"type": "string",
"description": "The level of compute power that each node in the Big Data pool has.",
@@ -502,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/DataMaskingPolicyCreateOrUpdateMax.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingPolicyCreateOrUpdateMax.json
new file mode 100644
index 000000000000..020fcfa56e58
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingPolicyCreateOrUpdateMax.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-331",
+ "dataMaskingPolicyName": "Default",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "dataMaskingState": "Enabled",
+ "exemptPrincipals": "testuser;"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-331/dataMaskingPolicies/Default",
+ "name": "Default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/dataMaskingPolicies",
+ "location": "Central US",
+ "kind": null,
+ "properties": {
+ "dataMaskingState": "Enabled",
+ "applicationPrincipals": "",
+ "exemptPrincipals": "testuser;",
+ "maskingLevel": ""
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingPolicyCreateOrUpdateMin.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingPolicyCreateOrUpdateMin.json
new file mode 100644
index 000000000000..50709215690c
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingPolicyCreateOrUpdateMin.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-331",
+ "dataMaskingPolicyName": "Default",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "dataMaskingState": "Enabled"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-331/dataMaskingPolicies/Default",
+ "name": "Default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/dataMaskingPolicies",
+ "location": "Central US",
+ "kind": null,
+ "properties": {
+ "dataMaskingState": "Enabled",
+ "applicationPrincipals": "",
+ "exemptPrincipals": "",
+ "maskingLevel": ""
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingPolicyGet.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingPolicyGet.json
new file mode 100644
index 000000000000..73551e852dd7
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingPolicyGet.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-331",
+ "dataMaskingPolicyName": "Default",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-2080/sqlPools/sqlcrudtest-331/dataMaskingPolicies/Default",
+ "name": "Default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/dataMaskingPolicies",
+ "location": "Central US",
+ "kind": null,
+ "properties": {
+ "dataMaskingState": "Enabled",
+ "applicationPrincipals": "",
+ "exemptPrincipals": "",
+ "maskingLevel": ""
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleCreateOrUpdateDefaultMax.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleCreateOrUpdateDefaultMax.json
new file mode 100644
index 000000000000..8c7754248ab4
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleCreateOrUpdateDefaultMax.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-331",
+ "dataMaskingPolicyName": "Default",
+ "api-version": "2019-06-01-preview",
+ "dataMaskingRuleName": "rule1",
+ "parameters": {
+ "properties": {
+ "aliasName": "nickname",
+ "schemaName": "dbo",
+ "tableName": "Table_1",
+ "columnName": "test1",
+ "maskingFunction": "Default",
+ "ruleState": "Enabled"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-6852/sqlPools/sqlcrudtest-331/dataMaskingPolicies/Default/rules/",
+ "name": null,
+ "type": "Microsoft.Synapse/workspaces/sqlPools/dataMaskingPolicies/rules",
+ "location": "Central US",
+ "kind": null,
+ "properties": {
+ "id": "dbo_Table_1_test1",
+ "ruleState": "Enabled",
+ "schemaName": "dbo",
+ "tableName": "Table_1",
+ "columnName": "test1",
+ "aliasName": "nickname",
+ "maskingFunction": "Default",
+ "numberFrom": null,
+ "numberTo": null,
+ "prefixSize": null,
+ "suffixSize": null,
+ "replacementString": null
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-6852/sqlPools/sqlcrudtest-331/dataMaskingPolicies/Default/rules/",
+ "name": null,
+ "type": "Microsoft.Synapse/workspaces/sqlPools/dataMaskingPolicies/rules",
+ "location": "Central US",
+ "kind": null,
+ "properties": {
+ "id": "dbo_Table_1_test1",
+ "ruleState": "Enabled",
+ "schemaName": "dbo",
+ "tableName": "Table_1",
+ "columnName": "test1",
+ "aliasName": "nickname",
+ "maskingFunction": "Default",
+ "numberFrom": null,
+ "numberTo": null,
+ "prefixSize": null,
+ "suffixSize": null,
+ "replacementString": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleCreateOrUpdateDefaultMin.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleCreateOrUpdateDefaultMin.json
new file mode 100644
index 000000000000..8db1e3ef3765
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleCreateOrUpdateDefaultMin.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-331",
+ "dataMaskingPolicyName": "Default",
+ "api-version": "2019-06-01-preview",
+ "dataMaskingRuleName": "rule1",
+ "parameters": {
+ "properties": {
+ "schemaName": "dbo",
+ "tableName": "Table_1",
+ "columnName": "test1",
+ "maskingFunction": "Default"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-6852/sqlPools/sqlcrudtest-331/dataMaskingPolicies/Default/rules/",
+ "name": null,
+ "type": "Microsoft.Synapse/workspaces/sqlPools/dataMaskingPolicies/rules",
+ "location": "Central US",
+ "kind": null,
+ "properties": {
+ "id": "dbo_Table_1_test1",
+ "ruleState": "Enabled",
+ "schemaName": "dbo",
+ "tableName": "Table_1",
+ "columnName": "test1",
+ "aliasName": null,
+ "maskingFunction": "Default",
+ "numberFrom": null,
+ "numberTo": null,
+ "prefixSize": null,
+ "suffixSize": null,
+ "replacementString": null
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-6852/sqlPools/sqlcrudtest-331/dataMaskingPolicies/Default/rules/",
+ "name": null,
+ "type": "Microsoft.Synapse/workspaces/sqlPools/dataMaskingPolicies/rules",
+ "location": "Central US",
+ "kind": null,
+ "properties": {
+ "id": "dbo_Table_1_test1",
+ "ruleState": "Enabled",
+ "schemaName": "dbo",
+ "tableName": "Table_1",
+ "columnName": "test1",
+ "aliasName": null,
+ "maskingFunction": "Default",
+ "numberFrom": null,
+ "numberTo": null,
+ "prefixSize": null,
+ "suffixSize": null,
+ "replacementString": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleCreateOrUpdateNumber.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleCreateOrUpdateNumber.json
new file mode 100644
index 000000000000..f442dbd00e10
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleCreateOrUpdateNumber.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-331",
+ "dataMaskingPolicyName": "Default",
+ "api-version": "2019-06-01-preview",
+ "dataMaskingRuleName": "rule1",
+ "parameters": {
+ "properties": {
+ "schemaName": "dbo",
+ "tableName": "Table_1",
+ "columnName": "test1",
+ "maskingFunction": "Number",
+ "numberFrom": "0",
+ "numberTo": "2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-6852/sqlPools/sqlcrudtest-331/dataMaskingPolicies/Default/rules/",
+ "name": null,
+ "type": "Microsoft.Synapse/workspaces/sqlPools/dataMaskingPolicies/rules",
+ "location": "Central US",
+ "kind": null,
+ "properties": {
+ "id": "dbo_Table_1_test1",
+ "ruleState": "Enabled",
+ "schemaName": "dbo",
+ "tableName": "Table_1",
+ "columnName": "test1",
+ "aliasName": null,
+ "maskingFunction": "Number",
+ "numberFrom": "0",
+ "numberTo": "2",
+ "prefixSize": null,
+ "suffixSize": null,
+ "replacementString": null
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-6852/sqlPools/sqlcrudtest-331/dataMaskingPolicies/Default/rules/",
+ "name": null,
+ "type": "Microsoft.Synapse/workspaces/sqlPools/dataMaskingPolicies/rules",
+ "location": "Central US",
+ "kind": null,
+ "properties": {
+ "id": "dbo_Table_1_test1",
+ "ruleState": "Enabled",
+ "schemaName": "dbo",
+ "tableName": "Table_1",
+ "columnName": "test1",
+ "aliasName": null,
+ "maskingFunction": "Number",
+ "numberFrom": "0",
+ "numberTo": "2",
+ "prefixSize": null,
+ "suffixSize": null,
+ "replacementString": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleCreateOrUpdateText.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleCreateOrUpdateText.json
new file mode 100644
index 000000000000..ca68baae606f
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleCreateOrUpdateText.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-331",
+ "dataMaskingPolicyName": "Default",
+ "api-version": "2019-06-01-preview",
+ "dataMaskingRuleName": "rule1",
+ "parameters": {
+ "properties": {
+ "schemaName": "dbo",
+ "tableName": "Table_1",
+ "columnName": "test1",
+ "maskingFunction": "Text",
+ "prefixSize": "1",
+ "suffixSize": "0",
+ "replacementString": "asdf"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-6852/sqlPools/sqlcrudtest-331/dataMaskingPolicies/Default/rules/",
+ "name": null,
+ "type": "Microsoft.Synapse/workspaces/sqlPools/dataMaskingPolicies/rules",
+ "location": "Central US",
+ "kind": null,
+ "properties": {
+ "id": "dbo_Table_1_test1",
+ "ruleState": "Enabled",
+ "schemaName": "dbo",
+ "tableName": "Table_1",
+ "columnName": "test1",
+ "aliasName": null,
+ "maskingFunction": "Text",
+ "numberFrom": null,
+ "numberTo": null,
+ "prefixSize": "1",
+ "suffixSize": "0",
+ "replacementString": "asdf"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-6852/sqlPools/sqlcrudtest-331/dataMaskingPolicies/Default/rules/",
+ "name": null,
+ "type": "Microsoft.Synapse/workspaces/sqlPools/dataMaskingPolicies/rules",
+ "location": "Central US",
+ "kind": null,
+ "properties": {
+ "id": "dbo_Table_1_test1",
+ "ruleState": "Enabled",
+ "schemaName": "dbo",
+ "tableName": "Table_1",
+ "columnName": "test1",
+ "aliasName": null,
+ "maskingFunction": "Text",
+ "numberFrom": null,
+ "numberTo": null,
+ "prefixSize": "1",
+ "suffixSize": "0",
+ "replacementString": "asdf"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleList.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleList.json
new file mode 100644
index 000000000000..72777db7a200
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DataMaskingRuleList.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-6852",
+ "workspaceName": "sqlcrudtest-2080",
+ "sqlPoolName": "sqlcrudtest-331",
+ "dataMaskingPolicyName": "Default",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-6852/sqlPools/sqlcrudtest-331/dataMaskingPolicies/Default/rules/",
+ "name": null,
+ "type": "Microsoft.Synapse/workspaces/sqlPools/dataMaskingPolicies/rules",
+ "location": "Central US",
+ "kind": null,
+ "properties": {
+ "id": "dbo_Table_1_test1",
+ "ruleState": "Enabled",
+ "schemaName": "dbo",
+ "tableName": "Table_1",
+ "columnName": "test1",
+ "aliasName": null,
+ "maskingFunction": "Text",
+ "numberFrom": null,
+ "numberTo": null,
+ "prefixSize": "1",
+ "suffixSize": "0",
+ "replacementString": "asdf"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-6852/providers/Microsoft.Synapse/workspaces/sqlcrudtest-6852/sqlPools/sqlcrudtest-331/dataMaskingPolicies/Default/rules/",
+ "name": null,
+ "type": "Microsoft.Synapse/workspaces/sqlPools/dataMaskingPolicies/rules",
+ "location": "Central US",
+ "kind": null,
+ "properties": {
+ "id": "dbo_Table_1_test1",
+ "ruleState": "Enabled",
+ "schemaName": "dbo",
+ "tableName": "Table_1",
+ "columnName": "test1",
+ "aliasName": null,
+ "maskingFunction": "Number",
+ "numberFrom": "0",
+ "numberTo": "2",
+ "prefixSize": null,
+ "suffixSize": null,
+ "replacementString": null
+ }
+ }
+ ]
+ }
+ }
+ }
+}
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/ExtendedSqlPoolAzureMonitorAuditingCreateMin.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ExtendedSqlPoolAzureMonitorAuditingCreateMin.json
new file mode 100644
index 000000000000..a366921b14e5
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ExtendedSqlPoolAzureMonitorAuditingCreateMin.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "blobauditingtest-4799",
+ "workspaceName": "blobauditingtest-6440",
+ "sqlPoolName": "testdb",
+ "blobAuditingPolicyName": "default",
+ "api-version": "2019-06-01-preview",
+ "parameters": {
+ "properties": {
+ "state": "Enabled",
+ "isAzureMonitorTargetEnabled": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Synapse/workspaces/blobauditingtest-6440/sqlPools/testdb",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/extendedAuditingSettings",
+ "properties": {
+ "state": "Enabled",
+ "isAzureMonitorTargetEnabled": true,
+ "retentionDays": 0,
+ "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "auditActionsAndGroups": [
+ "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
+ "FAILED_DATABASE_AUTHENTICATION_GROUP",
+ "BATCH_COMPLETED_GROUP"
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Synapse/workspaces/blobauditingtest-6440/sqlPools/testdb",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/extendedAuditingSettings",
+ "properties": {
+ "state": "Enabled",
+ "isAzureMonitorTargetEnabled": true,
+ "retentionDays": 0,
+ "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "auditActionsAndGroups": [
+ "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
+ "FAILED_DATABASE_AUTHENTICATION_GROUP",
+ "BATCH_COMPLETED_GROUP"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ExtendedSqlPoolBlobAuditingCreateMax.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ExtendedSqlPoolBlobAuditingCreateMax.json
new file mode 100644
index 000000000000..fb0a9328a552
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ExtendedSqlPoolBlobAuditingCreateMax.json
@@ -0,0 +1,71 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "blobauditingtest-4799",
+ "workspaceName": "blobauditingtest-6440",
+ "sqlPoolName": "testdb",
+ "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": [
+ "DATABASE_LOGOUT_GROUP",
+ "DATABASE_ROLE_MEMBER_CHANGE_GROUP",
+ "UPDATE on database::TestDatabaseName by public"
+ ],
+ "predicateExpression": "statement = 'select 1'",
+ "isAzureMonitorTargetEnabled": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Synapse/workspaces/blobauditingtest-6440/sqlPools/testdb",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/extendedAuditingSettings",
+ "properties": {
+ "state": "Enabled",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net",
+ "retentionDays": 0,
+ "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "auditActionsAndGroups": [
+ "DATABASE_LOGOUT_GROUP",
+ "DATABASE_ROLE_MEMBER_CHANGE_GROUP",
+ "UPDATE on database::TestDatabaseName by public"
+ ],
+ "predicateExpression": "statement = 'select 1'",
+ "isAzureMonitorTargetEnabled": true
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Synapse/workspaces/blobauditingtest-6440/sqlPools/testdb",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/extendedAuditingSettings",
+ "properties": {
+ "state": "Enabled",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net",
+ "retentionDays": 0,
+ "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "auditActionsAndGroups": [
+ "DATABASE_LOGOUT_GROUP",
+ "DATABASE_ROLE_MEMBER_CHANGE_GROUP",
+ "UPDATE on database::TestDatabaseName by public"
+ ],
+ "predicateExpression": "statement = 'select 1'",
+ "isAzureMonitorTargetEnabled": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ExtendedSqlPoolBlobAuditingCreateMin.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ExtendedSqlPoolBlobAuditingCreateMin.json
new file mode 100644
index 000000000000..b57b39b62ac8
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ExtendedSqlPoolBlobAuditingCreateMin.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "blobauditingtest-4799",
+ "workspaceName": "blobauditingtest-6440",
+ "sqlPoolName": "testdb",
+ "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/blobauditingtest-4799/providers/Microsoft.Synapse/workspaces/blobauditingtest-6440/sqlPools/testdb",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/extendedAuditingSettings",
+ "properties": {
+ "state": "Enabled",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net",
+ "retentionDays": 0,
+ "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "auditActionsAndGroups": [
+ "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
+ "FAILED_DATABASE_AUTHENTICATION_GROUP",
+ "BATCH_COMPLETED_GROUP"
+ ],
+ "isAzureMonitorTargetEnabled": false
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Synapse/workspaces/blobauditingtest-6440/sqlPools/testdb",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/extendedAuditingSettings",
+ "properties": {
+ "state": "Enabled",
+ "storageEndpoint": "https://mystorage.blob.core.windows.net",
+ "retentionDays": 0,
+ "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "auditActionsAndGroups": [
+ "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
+ "FAILED_DATABASE_AUTHENTICATION_GROUP",
+ "BATCH_COMPLETED_GROUP"
+ ],
+ "isAzureMonitorTargetEnabled": false
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ExtendedSqlPoolBlobAuditingGet.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ExtendedSqlPoolBlobAuditingGet.json
new file mode 100644
index 000000000000..867aec54f026
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ExtendedSqlPoolBlobAuditingGet.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "blobauditingtest-6852",
+ "workspaceName": "blobauditingtest-2080",
+ "sqlPoolName": "testdb",
+ "blobAuditingPolicyName": "default",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-6852/providers/Microsoft.Synapse/workspaces/blobauditingtest-2080/sqlPools/testdb",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/extendedAuditingSettings",
+ "properties": {
+ "state": "Disabled",
+ "storageEndpoint": "",
+ "retentionDays": 0,
+ "auditActionsAndGroups": [],
+ "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "predicateExpression": "statement = 'select 1'",
+ "isAzureMonitorTargetEnabled": false
+ }
+ }
+ }
+ }
+}
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/GetSqlPoolColumnSensitivityLabelGet.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolColumnSensitivityLabelGet.json
new file mode 100644
index 000000000000..deb5fc3b0953
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolColumnSensitivityLabelGet.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "myRG",
+ "workspaceName": "myServer",
+ "sqlPoolName": "myDatabase",
+ "schemaName": "dbo",
+ "tableName": "myTable",
+ "columnName": "myColumn",
+ "sensitivityLabelSource": "current",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myRG/providers/Microsoft.Synapse/workspaces/myServer/sqlPools/myDatabase/schemas/dbo/tables/myTable/columns/myColumn/sensitivityLabels/current",
+ "name": "current",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/schemas/tables/columns/sensitivityLabels",
+ "properties": {
+ "informationType": "PhoneNumber",
+ "informationTypeId": "d22fa6e9-5ee4-3bde-4c2b-a409604c4646",
+ "labelId": "bf91e08c-f4f0-478a-b016-25164b2a65ff",
+ "labelName": "PII"
+ }
+ }
+ }
+ }
+}
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/SqlPoolAuditingSettingsList.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolAuditingSettingsList.json
new file mode 100644
index 000000000000..87d770c69af9
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolAuditingSettingsList.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "blobauditingtest-6852",
+ "workspaceName": "blobauditingtest-2080",
+ "sqlPoolName": "testdb",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-6852/providers/Microsoft.Synapse/workspaces/blobauditingtest-2080/sqlPools/testdb",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/auditingSettings",
+ "kind": "V12",
+ "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/SqlPoolColumnGet.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolColumnGet.json
new file mode 100644
index 000000000000..a80da2ee5428
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolColumnGet.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "myRG",
+ "workspaceName": "serverName",
+ "sqlPoolName": "myDatabase",
+ "schemaName": "dbo",
+ "tableName": "table1",
+ "columnName": "column1",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myRG/providers/Microsoft.Synapse/workspaces/serverName/sqlPools/myDatabase/schemas/dbo/tables/table1/columns/column1",
+ "name": "column1",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/schemas/tables/columns",
+ "properties": {
+ "columnType": "bit"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolExtendedAuditingSettingsList.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolExtendedAuditingSettingsList.json
new file mode 100644
index 000000000000..80df8e8985e5
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolExtendedAuditingSettingsList.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "blobauditingtest-6852",
+ "workspaceName": "blobauditingtest-2080",
+ "sqlPoolName": "testdb",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-6852/providers/Microsoft.Synapse/workspaces/blobauditingtest-2080/sqlPools/testdb/extendedAuditingSettings/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/extendedAuditingSettings",
+ "properties": {
+ "state": "Disabled",
+ "storageEndpoint": "",
+ "retentionDays": 0,
+ "auditActionsAndGroups": [],
+ "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
+ "isStorageSecondaryKeyInUse": false,
+ "predicateExpression": "statement = 'select 1'",
+ "isAzureMonitorTargetEnabled": false
+ }
+ }
+ ]
+ }
+ }
+ }
+}
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/SqlPoolSchemaGet.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolSchemaGet.json
new file mode 100644
index 000000000000..3ddaa4d2d73e
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolSchemaGet.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "myRG",
+ "workspaceName": "serverName",
+ "sqlPoolName": "myDatabase",
+ "schemaName": "dbo",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myRG/providers/Microsoft.Synapse/workspaces/serverName/sqlPools/myDatabase/schemas/dbo",
+ "name": "dbo",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/schemas"
+ }
+ }
+ }
+}
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/SqlPoolTableGet.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolTableGet.json
new file mode 100644
index 000000000000..e0b78cb45f01
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolTableGet.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "myRG",
+ "workspaceName": "serverName",
+ "sqlPoolName": "myDatabase",
+ "schemaName": "dbo",
+ "tableName": "table1",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myRG/providers/Microsoft.Synapse/workspaces/serverName/sqlPools/myDatabase/schemas/dbo/tables/table1",
+ "name": "table1",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/schemas/tables"
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolVulnerabilityAssessmentRuleBaselineGet.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolVulnerabilityAssessmentRuleBaselineGet.json
new file mode 100644
index 000000000000..106bd5dbf4fc
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolVulnerabilityAssessmentRuleBaselineGet.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "vulnerabilityaseessmenttest-4711",
+ "workspaceName": "vulnerabilityaseessmenttest-6411",
+ "sqlPoolName": "testdb",
+ "vulnerabilityAssessmentName": "default",
+ "ruleId": "VA1001",
+ "baselineName": "master",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/vulnerabilityaseessmenttest-4799/providers/Microsoft.Synapse/workspaces/vulnerabilityaseessmenttest-6440/sqlPools/testdb/vulnerabilityAssessments/default/rules/VA1001/baselines/default",
+ "name": "default",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/vulnerabilityAssessments/rules/baselines",
+ "properties": {
+ "baselineResults": [
+ {
+ "result": [
+ "userA",
+ "SELECT"
+ ]
+ },
+ {
+ "result": [
+ "userB",
+ "SELECT"
+ ]
+ },
+ {
+ "result": [
+ "userC",
+ "SELECT",
+ "tableId_4"
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolVulnerabilityAssessmentScanRecordsGet.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolVulnerabilityAssessmentScanRecordsGet.json
new file mode 100644
index 000000000000..322b7e04bcbc
--- /dev/null
+++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/SqlPoolVulnerabilityAssessmentScanRecordsGet.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "vulnerabilityassessmenttest-4711",
+ "workspaceName": "vulnerabilityassessmenttest-6411",
+ "sqlPoolName": "testdb",
+ "vulnerabilityAssessmentName": "default",
+ "scanId": "scan001",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/vulnerabilityassessmenttest-4799/providers/Microsoft.Synapse/workspaces/vulnerabilityassessmenttest-6440/sqlPools/testdb/vulnerabilityAssessments/default/scans/scan001",
+ "name": "scan001",
+ "type": "Microsoft.Synapse/workspaces/sqlPools/vulnerabilityAssessments/scans",
+ "properties": {
+ "scanId": "scan001",
+ "triggerType": "OnDemand",
+ "state": "Passed",
+ "startTime": "2017-12-12T17:45:06Z",
+ "endTime": "2017-12-12T17:47:06Z",
+ "errors": [],
+ "storageContainerPath": "https://myaccount.blob.core.windows.net/vulnerability-assessment",
+ "numberOfFailedSecurityChecks": 9
+ }
+ }
+ }
+ }
+}
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 554a90fdbe1f..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"
}
@@ -1665,15 +1922,13 @@
"$ref": "./examples/DeleteSqlPoolColumnSensitivityLabel.json"
}
}
- }
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/schemas/{schemaName}/tables/{tableName}/columns/{columnName}/sensitivityLabels/{sensitivityLabelSource}/enable": {
- "post": {
+ },
+ "get": {
"tags": [
- "SensitivityLabels"
+ "SqlPools, SensitivityLabels"
],
- "description": "Enables sensitivity recommendations on a given column (recommendations are enabled by default on all columns)",
- "operationId": "SqlPoolSensitivityLabels_EnableRecommendation",
+ "description": "Gets the sensitivity label of a given column",
+ "operationId": "SqlPoolSensitivityLabels_Get",
"parameters": [
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
@@ -1722,36 +1977,44 @@
"required": true,
"type": "string",
"enum": [
+ "current",
"recommended"
],
"x-ms-enum": {
- "name": "WritableSensitivityLabelSource",
+ "name": "SensitivityLabelSource",
"modelAsString": false
}
}
],
"responses": {
"200": {
- "description": "Successfully enabled the sensitivity recommendations on the given column."
+ "description": "Successfully retrieved the sensitivity label.",
+ "schema": {
+ "$ref": "#/definitions/SensitivityLabel"
+ }
},
"default": {
- "description": "*** Error Responses: ***\n\n * 400 DatawarehouseDatabaseIsDeactivated - Could not execute Data Classification operation because the database is paused. Please resume it.\n\n * 404 SensitivityLabelsColumnNotFound - The specified 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."
+ "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"
}
},
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
"x-ms-examples": {
- "Enables sensitivity recommendations on a given column": {
- "$ref": "./examples/RecommendedColumnSensitivityLabelEnable.json"
+ "Gets the sensitivity label of a given column": {
+ "$ref": "./examples/GetSqlPoolColumnSensitivityLabelGet.json"
}
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/schemas/{schemaName}/tables/{tableName}/columns/{columnName}/sensitivityLabels/{sensitivityLabelSource}/disable": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/schemas/{schemaName}/tables/{tableName}/columns/{columnName}/sensitivityLabels/{sensitivityLabelSource}/enable": {
"post": {
"tags": [
"SensitivityLabels"
],
- "description": "Disables sensitivity recommendations on a given column",
- "operationId": "SqlPoolSensitivityLabels_DisableRecommendation",
+ "description": "Enables sensitivity recommendations on a given column (recommendations are enabled by default on all columns)",
+ "operationId": "SqlPoolSensitivityLabels_EnableRecommendation",
"parameters": [
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
@@ -1810,16 +2073,94 @@
],
"responses": {
"200": {
- "description": "Successfully disabled the sensitivity recommendation on the given column."
+ "description": "Successfully enabled the sensitivity recommendations on the given column."
},
"default": {
"description": "*** Error Responses: ***\n\n * 400 DatawarehouseDatabaseIsDeactivated - Could not execute Data Classification operation because the database is paused. Please resume it.\n\n * 404 SensitivityLabelsColumnNotFound - The specified 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."
}
},
"x-ms-examples": {
- "Disables sensitivity recommendations on a given column": {
- "$ref": "./examples/RecommendedColumnSensitivityLabelDisable.json"
- }
+ "Enables sensitivity recommendations on a given column": {
+ "$ref": "./examples/RecommendedColumnSensitivityLabelEnable.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/schemas/{schemaName}/tables/{tableName}/columns/{columnName}/sensitivityLabels/{sensitivityLabelSource}/disable": {
+ "post": {
+ "tags": [
+ "SensitivityLabels"
+ ],
+ "description": "Disables sensitivity recommendations on a given column",
+ "operationId": "SqlPoolSensitivityLabels_DisableRecommendation",
+ "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": "schemaName",
+ "in": "path",
+ "description": "The name of the schema.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "tableName",
+ "in": "path",
+ "description": "The name of the table.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "columnName",
+ "in": "path",
+ "description": "The name of the column.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "sensitivityLabelSource",
+ "in": "path",
+ "description": "The source of the sensitivity label.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "recommended"
+ ],
+ "x-ms-enum": {
+ "name": "WritableSensitivityLabelSource",
+ "modelAsString": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully disabled the sensitivity recommendation on the given column."
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 DatawarehouseDatabaseIsDeactivated - Could not execute Data Classification operation because the database is paused. Please resume it.\n\n * 404 SensitivityLabelsColumnNotFound - The specified 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."
+ }
+ },
+ "x-ms-examples": {
+ "Disables sensitivity recommendations on a given column": {
+ "$ref": "./examples/RecommendedColumnSensitivityLabelDisable.json"
+ }
}
}
},
@@ -2081,6 +2422,12 @@
"schema": {
"$ref": "#/definitions/SqlPoolConnectionPolicy"
}
+ },
+ "default": {
+ "schema": {
+ "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract"
+ },
+ "description": ""
}
},
"consumes": [],
@@ -2361,6 +2708,60 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/securityAlertPolicies": {
+ "get": {
+ "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"
+ ],
+ "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/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 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/SqlPoolSecurityAlertPolicies_List.json"
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/securityAlertPolicies/{securityAlertPolicyName}": {
"get": {
"operationId": "SqlPoolSecurityAlertPolicies_Get",
@@ -2668,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."
}
@@ -2677,6 +3081,90 @@
"$ref": "./examples/DeleteSqlPoolVulnerabilityAssessmentRuleBaseline.json"
}
}
+ },
+ "get": {
+ "tags": [
+ "SqlPools, SqlPoolVulnerabilityAssesmentRuleBaselines"
+ ],
+ "description": "Gets a SqlPool's vulnerability assessment rule baseline.",
+ "operationId": "SqlPoolVulnerabilityAssessmentRuleBaselines_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": "vulnerabilityAssessmentName",
+ "in": "path",
+ "description": "The name of the vulnerability assessment.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "VulnerabilityAssessmentName",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "ruleId",
+ "in": "path",
+ "description": "The vulnerability assessment rule ID.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "baselineName",
+ "in": "path",
+ "description": "The name of the vulnerability assessment rule baseline (default implies a baseline on a Sql pool level rule and master for server level rule).",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "master",
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "VulnerabilityAssessmentPolicyBaselineName",
+ "modelAsString": false
+ }
+ }
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully got the vulnerability assessment rule baseline.",
+ "schema": {
+ "$ref": "#/definitions/SqlPoolVulnerabilityAssessmentRuleBaseline"
+ }
+ },
+ "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."
+ }
+ },
+ "x-ms-examples": {
+ "Gets a Sql pool's vulnerability assessment rule baseline.": {
+ "$ref": "./examples/SqlPoolVulnerabilityAssessmentRuleBaselineGet.json"
+ }
+ }
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/vulnerabilityAssessments/{vulnerabilityAssessmentName}": {
@@ -2873,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."
}
@@ -2887,408 +3378,2417 @@
}
}
}
- }
- },
- "definitions": {
- "SqlPoolInfoListResult": {
- "type": "object",
- "title": "SQL pool collection",
- "description": "List of SQL pools",
- "properties": {
- "nextLink": {
- "type": "string",
- "description": "Link to the next page of results"
- },
- "value": {
- "type": "array",
- "description": "List of SQL pools",
- "items": {
- "$ref": "#/definitions/SqlPool"
- }
- }
- }
- },
- "SqlPool": {
- "type": "object",
- "title": "SQL pool",
- "description": "A SQL Analytics pool",
- "allOf": [
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
- }
- ],
- "properties": {
- "sku": {
- "$ref": "#/definitions/Sku",
- "description": "SQL pool SKU"
- },
- "properties": {
- "$ref": "#/definitions/SqlPoolResourceProperties",
- "description": "SQL pool properties",
- "x-ms-client-flatten": true
- }
- }
},
- "SqlPoolPatchInfo": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/extendedAuditingSettings/{blobAuditingPolicyName}": {
+ "get": {
+ "tags": [
+ "SqlPools, BlobAuditing"
+ ],
+ "description": "Gets an extended Sql pool's blob auditing policy.",
+ "operationId": "ExtendedSqlPoolBlobAuditingPolicies_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": "blobAuditingPolicyName",
+ "in": "path",
+ "description": "The name of the blob auditing policy.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "default"
+ ],
+ "x-ms-parameter-location": "method"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the extended Sql pool blob auditing policy.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedSqlPoolBlobAuditingPolicy"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 BlobAuditingIsNotSupportedOnResourceType - Blob Auditing is currently not supported for this resource type.\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."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get an extended database's blob auditing policy": {
+ "$ref": "./examples/ExtendedSqlPoolBlobAuditingGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "SqlPools, BlobAuditing"
+ ],
+ "description": "Creates or updates an extended Sql pool's blob auditing policy.",
+ "operationId": "ExtendedSqlPoolBlobAuditingPolicies_CreateOrUpdate",
+ "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": "blobAuditingPolicyName",
+ "in": "path",
+ "description": "The name of the blob auditing policy.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "default"
+ ],
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The extended Sql pool blob auditing policy.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExtendedSqlPoolBlobAuditingPolicy"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully set the extended Sql pool blob auditing policy.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedSqlPoolBlobAuditingPolicy"
+ }
+ },
+ "201": {
+ "description": "Successfully created the extended database blob auditing policy.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedSqlPoolBlobAuditingPolicy"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 BlobAuditingIsNotSupportedOnResourceType - Blob Auditing is currently not supported for this resource type.\n\n * 400 BlobAuditingPredicateExpressionSyntaxError - Invalid value of parameter 'predicateExpression'.\n\n * 400 InvalidDatabaseBlobAuditingPolicyCreateRequest - The create database 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 BlobAuditingInvalidStorageAccountName - The provided storage account is not valid or does not exist.\n\n * 400 UpdateNotAllowedOnPausedDatabase - User attempted to perform an update on a paused database.\n\n * 400 BlobAuditingInvalidStorageAccountCredentials - The provided storage account or access key is not valid.\n\n * 400 BlobAuditingIsNotSupportedOnGeoDr - Blob auditing can be configured on primary databases only.\n\n * 400 BlobAuditingNoServerIdentity - The server identity is not correctly configured.\n\n * 400 InvalidBlobAuditActionsAndGroupsForDW - Unsupported audit actions or action groups for DW.\n\n * 400 BlobAuditingInsufficientStorageAccountPermissions - Insufficient read or write permissions on the provided storage account.\n\n * 400 BlobAuditingStorageAccountIsDisabled - The provided storage account is disabled.\n\n * 400 InsufficientDiskSpaceForAuditing - Insufficient disk space to save auditing metadata in the database\n\n * 400 InvalidBlobAuditActions - Invalid audit action\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."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Create or update an extended Sql pool's blob auditing policy with minimal parameters": {
+ "$ref": "./examples/ExtendedSqlPoolBlobAuditingCreateMin.json"
+ },
+ "Create or update an extended Sql pool's blob auditing policy with all parameters": {
+ "$ref": "./examples/ExtendedSqlPoolBlobAuditingCreateMax.json"
+ },
+ "Create or update an extended SQL pool's azure monitor auditing policy with minimal parameters": {
+ "$ref": "./examples/ExtendedSqlPoolAzureMonitorAuditingCreateMin.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/extendedAuditingSettings": {
+ "get": {
+ "tags": [
+ "SqlPools,BlobAuditing"
+ ],
+ "description": "Lists extended auditing settings of a Sql pool.",
+ "operationId": "ExtendedSqlPoolBlobAuditingPolicies_ListBySqlPool",
+ "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 database extended auditing settings.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedSqlPoolBlobAuditingPolicyListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 BlobAuditingIsNotSupportedOnResourceType - Blob Auditing is currently not supported for this resource type.\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."
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List extended auditing settings of a database": {
+ "$ref": "./examples/SqlPoolExtendedAuditingSettingsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/dataMaskingPolicies/{dataMaskingPolicyName}": {
+ "put": {
+ "tags": [
+ "SqlPools, DataMaskingPolicies"
+ ],
+ "operationId": "DataMaskingPolicies_CreateOrUpdate",
+ "description": "Creates or updates a Sql pool data masking policy",
+ "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
+ },
+ {
+ "$ref": "#/parameters/DataMaskingPolicyNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DataMaskingPolicy"
+ },
+ "description": "Parameters for creating or updating a data masking policy."
+ }
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Create or update data masking policy max": {
+ "$ref": "./examples/DataMaskingPolicyCreateOrUpdateMax.json"
+ },
+ "Create or update data masking policy min": {
+ "$ref": "./examples/DataMaskingPolicyCreateOrUpdateMin.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DataMaskingPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "SqlPools, DataMaskingPolicies"
+ ],
+ "operationId": "DataMaskingPolicies_Get",
+ "description": "Gets a Sql pool data masking policy.",
+ "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
+ },
+ {
+ "$ref": "#/parameters/DataMaskingPolicyNameParameter"
+ }
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get data masking policy": {
+ "$ref": "./examples/DataMaskingPolicyGet.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DataMaskingPolicy"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/dataMaskingPolicies/{dataMaskingPolicyName}/rules/{dataMaskingRuleName}": {
+ "put": {
+ "tags": [
+ "SqlPools, DataMaskingRules"
+ ],
+ "operationId": "DataMaskingRules_CreateOrUpdate",
+ "description": "Creates or updates a Sql pool data masking rule.",
+ "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
+ },
+ {
+ "$ref": "#/parameters/DataMaskingPolicyNameParameter"
+ },
+ {
+ "name": "dataMaskingRuleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the data masking rule."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DataMaskingRule"
+ },
+ "description": "The required parameters for creating or updating a data masking rule."
+ }
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Create/Update data masking rule for text": {
+ "$ref": "./examples/DataMaskingRuleCreateOrUpdateText.json"
+ },
+ "Create/Update data masking rule for numbers": {
+ "$ref": "./examples/DataMaskingRuleCreateOrUpdateNumber.json"
+ },
+ "Create/Update data masking rule for default min": {
+ "$ref": "./examples/DataMaskingRuleCreateOrUpdateDefaultMin.json"
+ },
+ "Create/Update data masking rule for default max": {
+ "$ref": "./examples/DataMaskingRuleCreateOrUpdateDefaultMax.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DataMaskingRule"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/DataMaskingRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/dataMaskingPolicies/{dataMaskingPolicyName}/rules": {
+ "get": {
+ "tags": [
+ "SqlPools, DataMaskingRules"
+ ],
+ "operationId": "DataMaskingRules_ListBySqlPool",
+ "description": "Gets a list of Sql pool data masking rules.",
+ "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
+ },
+ {
+ "$ref": "#/parameters/DataMaskingPolicyNameParameter"
+ }
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "List data masking rules": {
+ "$ref": "./examples/DataMaskingRuleList.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DataMaskingRuleListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/auditingSettings": {
+ "get": {
+ "tags": [
+ "SqlPools, BlobAuditing"
+ ],
+ "description": "Lists auditing settings of a Sql pool.",
+ "operationId": "SqlPoolBlobAuditingPolicies_ListBySqlPool",
+ "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
+ }
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved Sql pool auditing settings.",
+ "schema": {
+ "$ref": "#/definitions/SqlPoolBlobAuditingPolicyListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 BlobAuditingIsNotSupportedOnResourceType - Blob Auditing is currently not supported for this resource type.\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."
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List audit settings of a database": {
+ "$ref": "./examples/SqlPoolAuditingSettingsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/schemas/{schemaName}": {
+ "get": {
+ "tags": [
+ "SqlPools, SqlPoolSchemas"
+ ],
+ "description": "Get Sql Pool schema",
+ "operationId": "SqlPoolSchemas_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": "schemaName",
+ "in": "path",
+ "description": "The name of the schema.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved Sql Pool schema.",
+ "schema": {
+ "$ref": "#/definitions/SqlPoolSchema"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\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 InvalidDatabaseSchema - Schema is missing in database.\n\n * 404 InvalidDatabaseTable - Table is missing in database.\n\n * 404 InvalidDatabaseColumn - Column is missing in table."
+ }
+ },
+ "x-ms-examples": {
+ "Get database schema": {
+ "$ref": "./examples/SqlPoolSchemaGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/schemas/{schemaName}/tables/{tableName}": {
+ "get": {
+ "tags": [
+ "SqlPools, SqlPoolTables"
+ ],
+ "description": "Get Sql pool table",
+ "operationId": "SqlPoolTables_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": "schemaName",
+ "in": "path",
+ "description": "The name of the schema.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "tableName",
+ "in": "path",
+ "description": "The name of the table.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved Sql pool's table.",
+ "schema": {
+ "$ref": "#/definitions/SqlPoolTable"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\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 InvalidDatabaseSchema - Schema is missing in database.\n\n * 404 InvalidDatabaseTable - Table is missing in database.\n\n * 404 InvalidDatabaseColumn - Column is missing in table."
+ }
+ },
+ "x-ms-examples": {
+ "Get database table": {
+ "$ref": "./examples/SqlPoolTableGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/schemas/{schemaName}/tables/{tableName}/columns/{columnName}": {
+ "get": {
+ "tags": [
+ "SqlPools, SqlPoolColumns"
+ ],
+ "description": "Get Sql pool column",
+ "operationId": "SqlPoolColumns_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": "schemaName",
+ "in": "path",
+ "description": "The name of the schema.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "tableName",
+ "in": "path",
+ "description": "The name of the table.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "columnName",
+ "in": "path",
+ "description": "The name of the column.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved Sql pool column.",
+ "schema": {
+ "$ref": "#/definitions/SqlPoolColumn"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\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 InvalidDatabaseSchema - Schema is missing in database.\n\n * 404 InvalidDatabaseTable - Table is missing in database.\n\n * 404 InvalidDatabaseColumn - Column is missing in table."
+ }
+ },
+ "x-ms-examples": {
+ "Get database column": {
+ "$ref": "./examples/SqlPoolColumnGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/vulnerabilityAssessments/{vulnerabilityAssessmentName}/scans/{scanId}": {
+ "get": {
+ "tags": [
+ "SqlPools,SqlPoolVulnerabilityAssessmentScans"
+ ],
+ "description": "Gets a vulnerability assessment scan record of a Sql pool.",
+ "operationId": "SqlPoolVulnerabilityAssessmentScans_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": "vulnerabilityAssessmentName",
+ "in": "path",
+ "description": "The name of the vulnerability assessment.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "VulnerabilityAssessmentName",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "scanId",
+ "in": "path",
+ "description": "The vulnerability assessment scan Id of the scan to retrieve.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the Sql pool vulnerability assessment scan record.",
+ "schema": {
+ "$ref": "#/definitions/VulnerabilityAssessmentScanRecord"
+ }
+ },
+ "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 VulnerabilityAssessmentInvalidPolicy - Vulnerability Assessment settings don't exist or invalid storage specified in settings. \n\n * 400 DatabaseVulnerabilityAssessmentMissingStorageContainerPath - Storage container path must be provided if it isn't set in server level policy\n\n * 400 VulnerabilityAssessmentDatawarehouseDatabaseIsDeactivated - Could not execute Vulnerability Assessment operation because the database is paused. Please resume it.\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 * 409 DatabaseVulnerabilityAssessmentScanIsAlreadyInProgress - Vulnerability Assessment scan is already in progress.\n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later."
+ }
+ },
+ "x-ms-examples": {
+ "Gets a database vulnerability assessment scan record by scan ID": {
+ "$ref": "./examples/SqlPoolVulnerabilityAssessmentScanRecordsGet.json"
+ }
+ }
+ }
+ },
+ "/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": {
+ "SqlPoolInfoListResult": {
+ "type": "object",
+ "title": "SQL pool collection",
+ "description": "List of SQL pools",
+ "properties": {
+ "nextLink": {
+ "type": "string",
+ "description": "Link to the next page of results"
+ },
+ "value": {
+ "type": "array",
+ "description": "List of SQL pools",
+ "items": {
+ "$ref": "#/definitions/SqlPool"
+ }
+ }
+ }
+ },
+ "SqlPool": {
+ "type": "object",
+ "title": "SQL pool",
+ "description": "A SQL Analytics pool",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "SQL pool SKU"
+ },
+ "properties": {
+ "$ref": "#/definitions/SqlPoolResourceProperties",
+ "description": "SQL pool properties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "SqlPoolPatchInfo": {
+ "type": "object",
+ "title": "SQL pool patch info",
+ "description": "A SQL Analytics pool patch info",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ },
+ "location": {
+ "type": "string",
+ "description": "The geo-location where the resource lives"
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "SQL pool SKU"
+ },
+ "properties": {
+ "$ref": "#/definitions/SqlPoolResourceProperties",
+ "description": "SQL pool properties",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "Sku": {
+ "type": "object",
+ "title": "Sku",
+ "description": "SQL pool SKU",
+ "properties": {
+ "tier": {
+ "type": "string",
+ "description": "The service tier"
+ },
+ "name": {
+ "type": "string",
+ "description": "The SKU name"
+ },
+ "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."
+ }
+ }
+ },
+ "SqlPoolResourceProperties": {
+ "type": "object",
+ "title": "SQL pool properties",
+ "description": "Properties of a SQL Analytics pool",
+ "properties": {
+ "maxSizeBytes": {
+ "type": "integer",
+ "description": "Maximum size in bytes",
+ "format": "int64"
+ },
+ "collation": {
+ "type": "string",
+ "description": "Collation mode"
+ },
+ "sourceDatabaseId": {
+ "type": "string",
+ "description": "Source database to create from"
+ },
+ "recoverableDatabaseId": {
+ "type": "string",
+ "description": "Backup database to restore from"
+ },
+ "provisioningState": {
+ "type": "string",
+ "description": "Resource state"
+ },
+ "status": {
+ "type": "string",
+ "description": "Resource status"
+ },
+ "restorePointInTime": {
+ "type": "string",
+ "description": "Snapshot time to restore",
+ "format": "date-time"
+ },
+ "createMode": {
+ "type": "string",
+ "description": "What is this?"
+ },
+ "creationDate": {
+ "type": "string",
+ "description": "Date the SQL pool was created",
+ "format": "date-time"
+ }
+ }
+ },
+ "MetadataSyncConfig": {
+ "type": "object",
+ "title": "Metadata sync configuration",
+ "description": "Configuration for metadata sync",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "title": "Metadata Sync Config properties",
+ "description": "Metadata Sync Config properties",
+ "properties": {
+ "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
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "GeoBackupPolicyProperties": {
+ "properties": {
+ "state": {
+ "type": "string",
+ "description": "The state of the geo backup policy.",
+ "enum": [
+ "Disabled",
+ "Enabled"
+ ],
+ "x-ms-enum": {
+ "modelAsString": false,
+ "name": "GeoBackupPolicyState"
+ }
+ },
+ "storageType": {
+ "type": "string",
+ "description": "The storage type of the geo backup policy.",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "state"
+ ],
+ "description": "The properties of the geo backup policy."
+ },
+ "GeoBackupPolicy": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/GeoBackupPolicyProperties",
+ "description": "The properties of the geo backup policy.",
+ "x-ms-client-flatten": true
+ },
+ "kind": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Kind of geo backup policy. This is metadata used for the Azure portal experience."
+ },
+ "location": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Backup policy location."
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "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": {
+ "description": "The function that is used to aggregate each query's metrics.",
+ "type": "string",
+ "enum": [
+ "min",
+ "max",
+ "avg",
+ "sum"
+ ],
+ "x-ms-enum": {
+ "name": "QueryAggregationFunction",
+ "modelAsString": false
+ },
+ "readOnly": true
+ },
+ "executionType": {
+ "description": "The execution type that is used to filter the query instances that are returned.",
+ "type": "string",
+ "enum": [
+ "any",
+ "regular",
+ "irregular",
+ "aborted",
+ "exception"
+ ],
+ "x-ms-enum": {
+ "name": "QueryExecutionType",
+ "modelAsString": false
+ },
+ "readOnly": true
+ },
+ "intervalType": {
+ "description": "The duration of the interval (ISO8601 duration format).",
+ "type": "string",
+ "readOnly": true
+ },
+ "numberOfTopQueries": {
+ "description": "The number of requested queries.",
+ "type": "number",
+ "format": "int32",
+ "readOnly": true
+ },
+ "observationStartTime": {
+ "description": "The start time for queries that are returned (ISO8601 format)",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "observationEndTime": {
+ "description": "The end time for queries that are returned (ISO8601 format)",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "observedMetric": {
+ "description": "The type of metric to use for ordering the top metrics.",
+ "type": "string",
+ "enum": [
+ "cpu",
+ "io",
+ "logio",
+ "duration",
+ "executionCount"
+ ],
+ "x-ms-enum": {
+ "name": "QueryObservedMetricType",
+ "modelAsString": false
+ },
+ "readOnly": true
+ },
+ "queries": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QueryStatistic"
+ },
+ "description": "The list of queries.",
+ "readOnly": true
+ }
+ },
+ "description": "A database query."
+ },
+ "QueryStatistic": {
+ "properties": {
+ "queryId": {
+ "description": "The id of the query",
+ "type": "string",
+ "readOnly": true
+ },
+ "intervals": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QueryInterval"
+ },
+ "description": "The list of query intervals.",
+ "readOnly": true
+ }
+ },
+ "description": "A database query."
+ },
+ "QueryInterval": {
+ "properties": {
+ "intervalStartTime": {
+ "description": "The start time of the measurement interval (ISO8601 format).",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionCount": {
+ "description": "The number of times the query was executed during this interval.",
+ "type": "number",
+ "format": "int32",
+ "readOnly": true
+ },
+ "metrics": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QueryMetric"
+ },
+ "description": "The list of query metrics during this interval.",
+ "readOnly": true
+ }
+ },
+ "description": "A database query."
+ },
+ "QueryMetric": {
+ "properties": {
+ "name": {
+ "description": "The name of the metric",
+ "type": "string",
+ "readOnly": true
+ },
+ "displayName": {
+ "description": "The name of the metric for display in user interface",
+ "type": "string",
+ "readOnly": true
+ },
+ "unit": {
+ "description": "The unit of measurement",
+ "type": "string",
+ "enum": [
+ "percentage",
+ "KB",
+ "microseconds"
+ ],
+ "x-ms-enum": {
+ "name": "QueryMetricUnit",
+ "modelAsString": false
+ },
+ "readOnly": true
+ },
+ "value": {
+ "description": "The measured value",
+ "type": "number",
+ "format": "double",
+ "readOnly": true
+ }
+ },
+ "description": "A database query."
+ },
+ "TopQueriesListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TopQueries"
+ },
+ "description": "The list of top queries."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "Represents the response to a get top queries request."
+ },
+ "DataWarehouseUserActivitiesProperties": {
+ "description": "User activities of a data warehouse. This currently includes the count of running or suspended queries. For more information, please view the sys.dm_pdw_exec_requests dynamic management view (DMV).",
+ "type": "object",
+ "properties": {
+ "activeQueriesCount": {
+ "format": "int32",
+ "description": "Count of running and suspended queries.",
+ "type": "integer",
+ "readOnly": true
+ }
+ }
+ },
+ "DataWarehouseUserActivities": {
+ "description": "User activities of a data warehouse",
"type": "object",
- "title": "SQL pool patch info",
- "description": "A SQL Analytics pool patch info",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
"properties": {
- "tags": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
+ "properties": {
+ "$ref": "#/definitions/DataWarehouseUserActivitiesProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "RestorePointListResult": {
+ "description": "A list of long term retention backups.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RestorePoint"
},
- "description": "Resource tags."
+ "readOnly": true
},
- "location": {
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
"type": "string",
- "description": "The geo-location where the resource lives"
+ "readOnly": true
+ }
+ }
+ },
+ "RestorePointProperties": {
+ "description": "Properties of a database restore point",
+ "type": "object",
+ "properties": {
+ "restorePointType": {
+ "description": "The type of restore point",
+ "enum": [
+ "CONTINUOUS",
+ "DISCRETE"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "RestorePointType",
+ "modelAsString": false
+ }
},
- "sku": {
- "$ref": "#/definitions/Sku",
- "description": "SQL pool SKU"
+ "earliestRestoreDate": {
+ "format": "date-time",
+ "description": "The earliest time to which this database can be restored",
+ "type": "string",
+ "readOnly": true
+ },
+ "restorePointCreationDate": {
+ "format": "date-time",
+ "description": "The time the backup was taken",
+ "type": "string",
+ "readOnly": true
+ },
+ "restorePointLabel": {
+ "description": "The label of restore point for backup request by user",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "RestorePoint": {
+ "description": "Database restore points.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "location": {
+ "description": "Resource location.",
+ "type": "string",
+ "readOnly": true
},
"properties": {
- "$ref": "#/definitions/SqlPoolResourceProperties",
- "description": "SQL pool properties",
+ "$ref": "#/definitions/RestorePointProperties",
+ "description": "Resource properties.",
"x-ms-client-flatten": true
}
- }
+ }
+ },
+ "ReplicationLinkProperties": {
+ "properties": {
+ "isTerminationAllowed": {
+ "readOnly": true,
+ "type": "boolean",
+ "description": "Legacy value indicating whether termination is allowed. Currently always returns true."
+ },
+ "replicationMode": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Replication mode of this replication link."
+ },
+ "partnerServer": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the workspace hosting the partner Sql pool."
+ },
+ "partnerDatabase": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the partner Sql pool."
+ },
+ "partnerLocation": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The Azure Region of the partner Sql pool."
+ },
+ "role": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The role of the Sql pool in the replication link.",
+ "enum": [
+ "Primary",
+ "Secondary",
+ "NonReadableSecondary",
+ "Source",
+ "Copy"
+ ],
+ "x-ms-enum": {
+ "name": "ReplicationRole"
+ }
+ },
+ "partnerRole": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The role of the partner Sql pool in the replication link.",
+ "enum": [
+ "Primary",
+ "Secondary",
+ "NonReadableSecondary",
+ "Source",
+ "Copy"
+ ],
+ "x-ms-enum": {
+ "name": "ReplicationRole"
+ }
+ },
+ "startTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The start time for the replication link."
+ },
+ "percentComplete": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "The percentage of seeding complete for the replication link."
+ },
+ "replicationState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The replication state for the replication link.",
+ "enum": [
+ "PENDING",
+ "SEEDING",
+ "CATCH_UP",
+ "SUSPENDED"
+ ],
+ "x-ms-enum": {
+ "name": "ReplicationState",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Represents the properties of a Sql pool replication link."
+ },
+ "ReplicationLink": {
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Location of the workspace that contains this firewall rule.",
+ "readOnly": true
+ },
+ "type": {
+ "type": "string",
+ "description": "Type of resource this is.",
+ "readOnly": true
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ReplicationLinkProperties",
+ "description": "The properties representing the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Represents a Sql pool replication link."
+ },
+ "ReplicationLinkListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReplicationLink"
+ },
+ "description": "The list of Sql pool replication links housed in the Sql pool."
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "description": "Represents the response to a List Sql pool replication link request."
+ },
+ "TransparentDataEncryptionProperties": {
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "The status of the database transparent data encryption.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "TransparentDataEncryptionStatus"
+ }
+ }
+ },
+ "description": "Represents the properties of a database transparent data encryption."
+ },
+ "TransparentDataEncryption": {
+ "properties": {
+ "location": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource location."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/TransparentDataEncryptionProperties",
+ "description": "Represents the properties of the resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Represents a Sql pool transparent data encryption configuration."
},
- "Sku": {
+ "TransparentDataEncryptionListResult": {
+ "description": "A list of transparent data encryption configurations.",
"type": "object",
- "title": "Sku",
- "description": "SQL pool SKU",
"properties": {
- "tier": {
- "type": "string",
- "description": "The service tier"
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TransparentDataEncryption"
+ },
+ "readOnly": true
},
- "name": {
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
"type": "string",
- "description": "The SKU name"
- },
- "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."
+ "readOnly": true
}
}
},
- "SqlPoolResourceProperties": {
+ "SqlPoolBlobAuditingPolicyProperties": {
+ "description": "Properties of a Sql pool blob auditing policy.",
+ "required": [
+ "state"
+ ],
"type": "object",
- "title": "SQL pool properties",
- "description": "Properties of a SQL Analytics pool",
"properties": {
- "maxSizeBytes": {
- "type": "integer",
- "description": "Maximum size in bytes",
- "format": "int64"
- },
- "collation": {
+ "state": {
+ "description": "Specifies the state of the policy. If state is Enabled, storageEndpoint or isAzureMonitorTargetEnabled are required.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
"type": "string",
- "description": "Collation mode"
+ "x-ms-enum": {
+ "name": "BlobAuditingPolicyState",
+ "modelAsString": false
+ }
},
- "sourceDatabaseId": {
- "type": "string",
- "description": "Source database to create from"
+ "storageEndpoint": {
+ "description": "Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). If state is Enabled, storageEndpoint is required.",
+ "type": "string"
},
- "recoverableDatabaseId": {
+ "storageAccountAccessKey": {
+ "description": "Specifies the identifier key of the auditing storage account. If state is Enabled and storageEndpoint is specified, storageAccountAccessKey is required.",
"type": "string",
- "description": "Backup database to restore from"
+ "x-ms-mutability": [
+ "create",
+ "update"
+ ]
},
- "provisioningState": {
- "type": "string",
- "description": "Resource state"
+ "retentionDays": {
+ "format": "int32",
+ "description": "Specifies the number of days to keep in the audit logs in the storage account.",
+ "type": "integer"
},
- "status": {
- "type": "string",
- "description": "Resource status"
+ "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