diff --git a/.github/sla.yml b/.github/sla.yml
index f0ce3592d482..005dfda9139a 100644
--- a/.github/sla.yml
+++ b/.github/sla.yml
@@ -84,3 +84,18 @@
subject: "Action Required: Please respond to issue ${URL}"
to: ${ASSIGNEE}
cc: vscswagger@microsoft.com
+
+- scheduleTask:
+ action: sendEmail
+ scope: pull_request
+ name: "send email given path change"
+ trigger:
+ - path
+ args:
+ message: '
You have just completed the first step towards onboarding your API change to the Compute Management library.
We (the CPlatSDK/PowerShell team) manage the Compute library's API and SDK for the following clients: Swagger (REST api), .NET SDK, and Azure PowerShell.
You've just opened a PR making changes in the Compute Management Library's path of the Azure REST Api Specs repository.
What's next?
- Your api specs need to be reviewed and approved by us and the ARM team
- Make sure you that can generate the .NET SDK from your API specs using the Autorest tool (NET SDK autogeneration)
- While your specs are getting reviewed, you should be working on the .NET SDK. (SDK repo)
- Once you generate the .NET SDK, you need to create the SDK tests and perform recordings and playbacks. (NET SDK testing)
- With the newly generated SDK with tests, you can make a pull request to the SDK repository.
Make sure to add a reference to your Swagger pull request in the comments.
- [If applicable] At this stage, you can get started on the Azure PowerShell part.
- All you need to do is send a design doc of any change/new Azure PowerShell cmdlet related to your api by creating an issue with your design here.
Then, send an email to azdevxpsdr@microsoft.com with the issue number and cc our dl (cplatsdkdev@microsoft.com) on the email, so we can leave comments on your design doc as well. - Once your PowerShell cmdlet design has been approved, send an email to our team
We will implement and test the PowerShell cmdlet following the approved design. We will then make a pull request to the appropriate repository
- [If applicable] You can also get started on any Azure CLI module or extension for your API change. Find more information about next steps on that process here.
- To view the full CPlat SDK PowerShell API onboarding wiki, please visit aka.ms/cplatsdk
This email was automatically sent. Please send an email to cplatsdkdev@microsoft.com if you have any questions.
'
+ targetPaths:
+ - "specification/compute/resource-manager/Microsoft.Compute/**"
+ subject: "[Action Required] CPlat Swagger Pull Request opened: Next steps"
+ to: ${AUTHOR}
+ cc:
+ - cplatsdkdev@microsoft.com
diff --git a/documentation/code-gen/configure-typescript-sdk.md b/documentation/code-gen/configure-typescript-sdk.md
new file mode 100644
index 000000000000..881578aa402f
--- /dev/null
+++ b/documentation/code-gen/configure-typescript-sdk.md
@@ -0,0 +1,235 @@
+# Readme Configuration Guide for Azure SDK for Javascript (Typescript)
+This file describe how to configure readme files to make it available for Azure SDK for Javascript (Typescript) code generation.
+
+## Common Configuration
+Configure basic package information.
+
+### Basic Information
+Configure package title/description/tag.
+~~~~
+// file: readme.md
+
+``` yaml
+title: xxxxConfigurationClient
+description: xxxx Configuration Client
+openapi-type: arm
+tag: package-xxxx-xx-xx
+```
+~~~~
+
+### tag
+Tags are used to define what swagger files are used in specific client SDK. In Single-API client, only one tag can be used to generate SDK client.
+A tag can contains a bunch of swagger files which are used to generate the SDK.
+
+The name of a tag should be in form of package-yyyy-mm-dd[-xxx], for example below tag names are available:
+- package-2020-02-03
+- package-2020-03-22-preview
+- package-2020-05-03-only
+
+while the below tag names are invalid names:
+- 2020-03-04
+- package-preview-2020-03-04
+
+A tag can be configured like below:
+~~~~
+// file: readme.md
+
+
+### Tag: package-2019-12-01
+
+These settings apply only when `--tag=package-2019-12-01` is specified on the command line.
+
+``` yaml $(tag) == 'package-2019-12-01'
+input-file:
+- Microsoft.Compute/stable/2019-12-01/compute.json
+- Microsoft.Compute/stable/2019-12-01/runCommands.json
+- Microsoft.Compute/stable/2019-12-01/gallery.json
+```
+~~~~
+
+
+## Swagger to SDK
+To make Azure SDK for Javascript (Typescript) can be generated from the tag, swagger-to-sdk need to be configured:
+
+~~~
+// file: readme.md
+
+## 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-js
+ - ...
+
+
+## Typescript
+
+See configuration in [readme.typescript.md](./readme.typescript.md)
+~~~
+
+## Typescript Configuration
+Typescript dedicated configurations are configured in readme.typescript.md.
+the typical package-name is usually like `@azure/arm-xxx` where the xxx is related with the service name.
+and the typical output-folder in the azure-sdk-for-js is like `$(typescript-sdks-folder)/sdk/xxx/arm-xxx` where the xxx is related with the service name.
+A typical readme.typescript.md is like this:
+~~~
+// file: readme.typescript.md
+
+## 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-apimanagement"
+ output-folder: "$(typescript-sdks-folder)/sdk/apimanagement/arm-apimanagement"
+ clear-output-folder: true
+ generate-metadata: true
+```
+
+~~~
+
+## Multi-api
+Currently the Azure SDK for Javascript (Typescript) doesn't support multi-api which means each operation contained in one package should only contains one api-version's. and Azure SDK for Javascript (Typescript) only supports single api package.
+
+## Multi-packages
+The batch is a tag list which are used in the one RP has multi-package scenarios. For example,
+the Resources RP has several independent packages like features, lock, policy.
+First of all, you need to have different yaml block for each package to define the default tag for that specific package.
+~~~
+// file: readme.md
+## Configuration
+
+### Basic Information
+
+These are the global settings for the Resource API.
+
+``` yaml
+openapi-type: arm
+```
+
+``` yaml $(package-features)
+tag: package-features-2015-12
+```
+
+``` yaml $(package-locks)
+tag: package-locks-2016-09
+```
+
+``` yaml $(package-policy)
+tag: package-policy-2019-09
+```
+
+``` yaml $(package-resources)
+tag: package-resources-2020-06
+```
+
+~~~
+Then for each default tag, you can define the input swagger like normal tag.
+~~~
+
+### Tag: package-features-2015-12
+
+These settings apply only when `--tag=package-features-2015-12` is specified on the command line.
+
+``` yaml $(tag) == 'package-features-2015-12'
+input-file:
+- Microsoft.Features/stable/2015-12-01/features.json
+```
+
+### Tag: package-locks-2016-09
+
+These settings apply only when `--tag=package-locks-2016-09` is specified on the command line.
+
+``` yaml $(tag) == 'package-locks-2016-09'
+input-file:
+- Microsoft.Authorization/stable/2016-09-01/locks.json
+```
+
+### Tag: package-policy-2019-09
+
+These settings apply only when `--tag=package-policy-2019-09` is specified on the command line.
+
+``` yaml $(tag) == 'package-policy-2019-09'
+input-file:
+- Microsoft.Authorization/stable/2019-09-01/policyAssignments.json
+- Microsoft.Authorization/stable/2019-09-01/policyDefinitions.json
+- Microsoft.Authorization/stable/2019-09-01/policySetDefinitions.json
+
+# Needed when there is more than one input file
+override-info:
+ title: PolicyClient
+```
+
+### Tag: package-resources-2020-06
+
+These settings apply only when `--tag=package-resources-2020-06` is specified on the command line.
+
+``` yaml $(tag) == 'package-resources-2020-06'
+input-file:
+- Microsoft.Resources/stable/2020-06-01/resources.json
+```
+~~~
+
+Finally, in your readme.typescript.md you should include what packages you want to include in the Azure SDK for Javascript (Typescript).
+And in each package's section define the default package name output folder in azure-sdk-for-js repo etc.
+
+~~~
+## TypeScript
+
+These settings apply only when `--typescript` is specified on the command line.
+Please also specify `--typescript-sdks-folder=`.
+
+```yaml $(typescript) && !$(profile)
+typescript:
+ azure-arm: true
+ batch: true
+ generate-metadata: true
+batch:
+ - package-features: true
+ - package-locks: true
+ - package-policy: true
+ - package-resources: true
+```
+
+```yaml $(typescript) && $(package-features) && !$(profile)
+typescript:
+ package-name: "@azure/arm-features"
+ output-folder: "$(typescript-sdks-folder)/sdk/features/arm-features"
+ clear-output-folder: true
+```
+
+```yaml $(typescript) && $(package-locks) && !$(profile)
+typescript:
+ package-name: "@azure/arm-locks"
+ output-folder: "$(typescript-sdks-folder)/sdk/locks/arm-locks"
+ clear-output-folder: true
+```
+
+```yaml $(typescript) && $(package-policy) && !$(profile)
+typescript:
+ package-name: "@azure/arm-policy"
+ output-folder: "$(typescript-sdks-folder)/sdk/policy/arm-policy"
+ clear-output-folder: true
+```
+
+```yaml $(typescript) && $(package-resources) && !$(profile)
+typescript:
+ package-name: "@azure/arm-resources"
+ output-folder: "$(typescript-sdks-folder)/sdk/resources/arm-resources"
+ clear-output-folder: true
+```
+
+~~~
+
+
+## Run codegen
+After configure all the readme files, autorest can be used to generate SDK.
+~~~
+autorest --typescript --typescript-sdks-folder=/home/qiaozha/code/azure-sdk-for-js --license-header=MICROSOFT_MIT_NO_VERSION /home/qiaozha/code/azure-rest-api-specs/specification/storage/resource-manager/readme.md --use=@microsoft.azure/autorest.typescript@4.2.2
+~~~
diff --git a/specification/advisor/resource-manager/readme.md b/specification/advisor/resource-manager/readme.md
index dc0924b739df..1ac722c6bee0 100644
--- a/specification/advisor/resource-manager/readme.md
+++ b/specification/advisor/resource-manager/readme.md
@@ -29,6 +29,14 @@ openapi-type: arm
tag: package-2020-01
```
+### Tag: package-2020-07-preview
+
+These settings apply only when `--tag=package-2020-07-preview` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-07-preview'
+input-file:
+ - Microsoft.Advisor/preview/2020-07-01-preview/advisor.json
+```
### Tag: package-2020-01
@@ -149,11 +157,11 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.Advisor/preview/2020-07-01-preview/advisor.json
- $(this-folder)/Microsoft.Advisor/stable/2020-01-01/advisor.json
- $(this-folder)/Microsoft.Advisor/stable/2017-04-19/advisor.json
- $(this-folder)/Microsoft.Advisor/stable/2017-03-31/advisor.json
- $(this-folder)/Microsoft.Advisor/preview/2016-07-12-preview/advisor.json
- - $(this-folder)/Microsoft.Advisor/preview/2020-07-01-preview/advisor.json
```
diff --git a/specification/apimanagement/control-plane/Microsoft.ApiManagement/preview/2017-03-01/apimproducts.json b/specification/apimanagement/control-plane/Microsoft.ApiManagement/preview/2017-03-01/apimproducts.json
index c295c362002e..7818c4d06ba6 100644
--- a/specification/apimanagement/control-plane/Microsoft.ApiManagement/preview/2017-03-01/apimproducts.json
+++ b/specification/apimanagement/control-plane/Microsoft.ApiManagement/preview/2017-03-01/apimproducts.json
@@ -861,13 +861,13 @@
"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.",
+ "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 true.",
"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."
+ "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 true."
},
"state": {
"type": "string",
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2018-06-01-preview/definitions.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2018-06-01-preview/definitions.json
index 5a2330092a28..f15c144c4120 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2018-06-01-preview/definitions.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2018-06-01-preview/definitions.json
@@ -3330,13 +3330,13 @@
"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.",
+ "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 true.",
"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."
+ "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 true."
},
"state": {
"type": "string",
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2019-12-01-preview/definitions.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2019-12-01-preview/definitions.json
index 3ce3a7c7b67b..87b45aa20ad4 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2019-12-01-preview/definitions.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2019-12-01-preview/definitions.json
@@ -3545,13 +3545,13 @@
"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.",
+ "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 true.",
"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."
+ "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 true."
},
"state": {
"type": "string",
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2016-07-07/apimanagement.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2016-07-07/apimanagement.json
index 95d7789cdb07..801e3c890ddc 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2016-07-07/apimanagement.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2016-07-07/apimanagement.json
@@ -5344,12 +5344,12 @@
},
"approvalRequired": {
"type": "boolean",
- "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."
+ "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 true."
},
"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."
+ "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 true."
},
"state": {
"type": "string",
@@ -5624,12 +5624,12 @@
},
"approvalRequired": {
"type": "boolean",
- "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."
+ "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 true."
},
"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."
+ "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 true."
},
"state": {
"type": "string",
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2016-10-10/apimproducts.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2016-10-10/apimproducts.json
index 24a54f3eba94..f2eade375f3a 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2016-10-10/apimproducts.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2016-10-10/apimproducts.json
@@ -826,12 +826,12 @@
},
"approvalRequired": {
"type": "boolean",
- "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."
+ "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 true."
},
"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."
+ "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 true."
},
"state": {
"type": "string",
@@ -876,12 +876,12 @@
},
"approvalRequired": {
"type": "boolean",
- "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."
+ "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 true."
},
"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."
+ "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 true."
},
"state": {
"type": "string",
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2017-03-01/apimproducts.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2017-03-01/apimproducts.json
index 6ce08fc02df5..b5db2b8d860e 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2017-03-01/apimproducts.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2017-03-01/apimproducts.json
@@ -1126,13 +1126,13 @@
"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.",
+ "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 true.",
"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."
+ "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 true."
},
"state": {
"type": "string",
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2018-01-01/apimproducts.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2018-01-01/apimproducts.json
index d2106e08cd2f..e341239d3b07 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2018-01-01/apimproducts.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2018-01-01/apimproducts.json
@@ -1177,13 +1177,13 @@
"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.",
+ "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 true.",
"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."
+ "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 true."
},
"state": {
"type": "string",
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-01-01/definitions.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-01-01/definitions.json
index abe436b4031f..79a0c9320a0d 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-01-01/definitions.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-01-01/definitions.json
@@ -3485,13 +3485,13 @@
"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.",
+ "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 true.",
"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."
+ "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 true."
},
"state": {
"type": "string",
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/definitions.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/definitions.json
index 76b03b69548c..f4361ca41aab 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/definitions.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/definitions.json
@@ -3545,13 +3545,13 @@
"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.",
+ "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 true.",
"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."
+ "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 true."
},
"state": {
"type": "string",
diff --git a/specification/apimanagement/resource-manager/readme.md b/specification/apimanagement/resource-manager/readme.md
index 42e087ac4594..c9c4710e178d 100644
--- a/specification/apimanagement/resource-manager/readme.md
+++ b/specification/apimanagement/resource-manager/readme.md
@@ -46,6 +46,7 @@ input-file:
- Microsoft.ApiManagement/stable/2019-12-01/apimbackends.json
- Microsoft.ApiManagement/stable/2019-12-01/apimcaches.json
- Microsoft.ApiManagement/stable/2019-12-01/apimcertificates.json
+ - Microsoft.ApiManagement/stable/2019-12-01/apimcontenttypes.json
- Microsoft.ApiManagement/stable/2019-12-01/apimdeployment.json
- Microsoft.ApiManagement/stable/2019-12-01/apimdiagnostics.json
- Microsoft.ApiManagement/stable/2019-12-01/apimemailtemplates.json
@@ -392,6 +393,7 @@ input-file:
- $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimbackends.json
- $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimcaches.json
- $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimcertificates.json
+ - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimcontenttypes.json
- $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimdeployment.json
- $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimdiagnostics.json
- $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimemailtemplates.json
@@ -417,7 +419,6 @@ input-file:
- $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimtags.json
- $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimtenant.json
- $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimusers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimcontenttypes.json
- $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/definitions.json
- $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimanagement.json
- $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimapis.json
diff --git a/specification/appconfiguration/resource-manager/readme.md b/specification/appconfiguration/resource-manager/readme.md
index fcc2df72d21d..1368cb987b57 100644
--- a/specification/appconfiguration/resource-manager/readme.md
+++ b/specification/appconfiguration/resource-manager/readme.md
@@ -141,10 +141,10 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.AppConfiguration/stable/2020-06-01/appconfiguration.json
- $(this-folder)/Microsoft.AppConfiguration/preview/2019-11-01-preview/appconfiguration.json
- $(this-folder)/Microsoft.AppConfiguration/preview/2019-02-01-preview/appconfiguration.json
- $(this-folder)/Microsoft.AppConfiguration/stable/2019-10-01/appconfiguration.json
- - $(this-folder)/Microsoft.AppConfiguration/stable/2020-06-01/appconfiguration.json
```
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json
index 7edd5795db3b..85fd1577f11b 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json
@@ -34,7 +34,7 @@
}
},
"paths": {
- "/subscriptions/{subscriptionId}/resourceGroup/{resourceGroupName}/providers/microsoft.insights/workbooks": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/workbooks": {
"get": {
"description": "Get all Workbooks defined within a specified resource group and category.",
"operationId": "Workbooks_ListByResourceGroup",
@@ -85,7 +85,7 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroup/{resourceGroupName}/providers/microsoft.insights/workbooks/{resourceName}": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/workbooks/{resourceName}": {
"get": {
"description": "Get a single workbook by its resourceName.",
"operationId": "Workbooks_Get",
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/workbookTemplates_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/workbookTemplates_API.json
index d1c3fab2538e..6bc485e75fd9 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/workbookTemplates_API.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-10-17-preview/workbookTemplates_API.json
@@ -34,7 +34,7 @@
}
},
"paths": {
- "/subscriptions/{subscriptionId}/resourceGroup/{resourceGroupName}/providers/microsoft.insights/workbooktemplates": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/workbooktemplates": {
"get": {
"description": "Get all Workbook templates defined within a specified resource group.",
"operationId": "WorkbookTemplates_ListByResourceGroup",
@@ -73,7 +73,7 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroup/{resourceGroupName}/providers/microsoft.insights/workbooktemplates/{resourceName}": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/workbooktemplates/{resourceName}": {
"get": {
"description": "Get a single workbook template by its resourceName.",
"operationId": "WorkbookTemplates_Get",
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/workbooks_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/workbooks_API.json
index 3586ec6c86b1..f3fb7bdc4e2d 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/workbooks_API.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/workbooks_API.json
@@ -34,7 +34,7 @@
}
},
"paths": {
- "/subscriptions/{subscriptionId}/resourceGroup/{resourceGroupName}/providers/microsoft.insights/workbooks": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/workbooks": {
"get": {
"description": "Get all Workbooks defined within a specified resource group and category.",
"operationId": "Workbooks_ListByResourceGroup",
@@ -82,7 +82,7 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroup/{resourceGroupName}/providers/microsoft.insights/workbooks/{resourceName}": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/workbooks/{resourceName}": {
"get": {
"description": "Get a single workbook by its resourceName.",
"operationId": "Workbooks_Get",
diff --git a/specification/applicationinsights/resource-manager/readme.md b/specification/applicationinsights/resource-manager/readme.md
index 3e00e6366502..eeeb91d57b0e 100644
--- a/specification/applicationinsights/resource-manager/readme.md
+++ b/specification/applicationinsights/resource-manager/readme.md
@@ -37,212 +37,73 @@ tag: package-preview-2020-06
directive:
- suppress: LongRunningOperationsWithLongRunningExtension
where:
- - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}/purge"].post
+ - '$.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}/purge"].post'
reason: Original creation of the service did not comply with current ARM schema standards. The team is aware of it and any future updates should rectify the issue.
-
- suppress: TrackedResourceListByImmediateParent
where:
- $.definitions
reason:
- we do have list operations available for our operations on individual instances of objects returned. False positives.
-
- suppress: PutRequestResponseScheme
- reason: This api was existing there from 2015, it will break existing client if we change the request/response format
- #where:
- # - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}/exportconfiguration/{exportId}"].put
-
+ reason: 'This api was existing there from 2015, it will break existing client if we change the request/response format'
- suppress: ListInOperationName
- reason: The return value is an object, not an array. Looks like a false positive of the validation tool.
- #where:
- # - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}/currentbillingfeatures"].get.operationId
-
+ reason: 'The return value is an object, not an array. Looks like a false positive of the validation tool.'
- suppress: PutInOperationName
- reason: We are not doing create on this api, it is only doing update in this PUT api call.
- #where:
- # - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}/exportconfiguration/{exportId}"].put.operationId
- # - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}/currentbillingfeatures"].put.operationId
-
+ reason: 'We are not doing create on this api, it is only doing update in this PUT api call.'
- suppress: XmsResourceInPutResponse
- reason: This api was existing there from 2015, it will break existing client if we change the request/response format
- #where:
- # - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}/exportconfiguration/{exportId}"].put
- # - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}/currentbillingfeatures"].put
-
+ reason: 'This api was existing there from 2015, it will break existing client if we change the request/response format'
- suppress: RequiredPropertiesMissingInResourceModel
- reason: This api was existing there from 2015, it will break existing client if we change the response format
- #where:
- # - $.definitions.ApplicationInsightsComponentExportConfiguration
- # - $.definitions.ApplicationInsightsComponentBillingFeatures
-
+ reason: 'This api was existing there from 2015, it will break existing client if we change the response format'
- suppress: BodyTopLevelProperties
- reason: This api was existing there from 2015, it will break existing client if we change the response format
- #where:
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties
- # - $.definitions.ApplicationInsightsComponentBillingFeatures.properties
-
+ reason: 'This api was existing there from 2015, it will break existing client if we change the response format'
- suppress: EnumInsteadOfBoolean
- reason: This api was existing there from 2015, it will break existing client if we change the type
- #where:
- # - $.definitions.WebTestProperties.properties.Enabled
- # - $.definitions.WebTestProperties.properties.RetryEnabled
- # - $.definitions.ApplicationInsightsComponentDataVolumeCap.properties.StopSendNotificationWhenHitThreshold
- # - $.definitions.ApplicationInsightsComponentDataVolumeCap.properties.StopSendNotificationWhenHitCap
- # - $.definitions.ApplicationInsightsComponentQuotaStatus.properties.ShouldBeThrottled
-
+ reason: 'This api was existing there from 2015, it will break existing client if we change the type'
- suppress: DescriptionAndTitleMissing
reason: Error addresses missing description/title in inner reference. Referenced model contains title and description. Redundant.
from: componentAnnotations_API.json
where:
- $.definitions.AnnotationError.properties.innererror
-
- suppress: DescriptionAndTitleMissing
reason: Error addresses missing description/title in inner reference. Referenced model contains title and description. Redundant.
from: componentWorkItemConfigs_API.json
where:
- $.definitions.WorkItemConfigurationError.properties.innererror
-
- suppress: LROStatusCodesReturnTypeSchema
reason: The response for 200 does define a schema in place. The test likely expects a 'ref' member. False failure.
from: componentAnnotations_API.json
where:
- - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}/Annotations"].put.responses["200"]
-
+ - '$.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}/Annotations"].put.responses["200"]'
- suppress: DefinitionsPropertiesNamesCamelCase
- reason: This api was existing there from 2015, it will break existing client if we change the name
- # where:
- # - $.definitions.ApplicationInsightsComponentProperties.properties.ApplicationId
- # - $.definitions.ApplicationInsightsComponentProperties.properties.AppId
- # - $.definitions.ApplicationInsightsComponentProperties.properties.Application_Type
- # - $.definitions.ApplicationInsightsComponentProperties.properties.Flow_Type
- # - $.definitions.ApplicationInsightsComponentProperties.properties.Request_Source
- # - $.definitions.ApplicationInsightsComponentProperties.properties.InstrumentationKey
- # - $.definitions.ApplicationInsightsComponentProperties.properties.CreationDate
- # - $.definitions.ApplicationInsightsComponentProperties.properties.TenantId
- # - $.definitions.ApplicationInsightsComponentProperties.properties.HockeyAppId
- # - $.definitions.ApplicationInsightsComponentProperties.properties.HockeyAppToken
- # - $.definitions.ApplicationInsightsComponentProperties.properties.SamplingPercentage
- # - $.definitions.WebTestProperties.properties.SyntheticMonitorId
- # - $.definitions.WebTestProperties.properties.Name
- # - $.definitions.WebTestProperties.properties.Description
- # - $.definitions.WebTestProperties.properties.Enabled
- # - $.definitions.WebTestProperties.properties.Frequency
- # - $.definitions.WebTestProperties.properties.Timeout
- # - $.definitions.WebTestProperties.properties.Kind
- # - $.definitions.WebTestProperties.properties.RetryEnabled
- # - $.definitions.WebTestProperties.properties.Locations
- # - $.definitions.WebTestProperties.properties.Configuration
- # - $.definitions.WebTestGeolocation.properties.Id
- # - $.definitions.ApplicationInsightsComponentExportRequest.properties.RecordTypes
- # - $.definitions.ApplicationInsightsComponentExportRequest.properties.DestinationType
- # - $.definitions.ApplicationInsightsComponentExportRequest.properties.DestinationAddress
- # - $.definitions.ApplicationInsightsComponentExportRequest.properties.IsEnabled
- # - $.definitions.ApplicationInsightsComponentExportRequest.properties.NotificationQueueEnabled
- # - $.definitions.ApplicationInsightsComponentExportRequest.properties.NotificationQueueUri
- # - $.definitions.ApplicationInsightsComponentExportRequest.properties.DestinationStorageSubscriptionId
- # - $.definitions.ApplicationInsightsComponentExportRequest.properties.DestinationStorageLocationId
- # - $.definitions.ApplicationInsightsComponentExportRequest.properties.DestinationAccountId
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.ExportId
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.InstrumentationKey
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.RecordTypes
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.ApplicationName
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.SubscriptionId
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.ResourceGroup
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.DestinationStorageSubscriptionId
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.DestinationStorageLocationId
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.DestinationAccountId
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.DestinationType
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.IsUserEnabled
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.LastUserUpdate
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.NotificationQueueEnabled
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.ExportStatus
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.LastSuccessTime
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.LastGapTime
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.PermanentErrorReason
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.StorageName
- # - $.definitions.ApplicationInsightsComponentExportConfiguration.properties.ContainerName
- # - $.definitions.ApplicationInsightsComponentBillingFeatures.properties.DataVolumeCap
- # - $.definitions.ApplicationInsightsComponentBillingFeatures.properties.CurrentBillingFeatures
- # - $.definitions.ApplicationInsightsComponentDataVolumeCap.properties.Cap
- # - $.definitions.ApplicationInsightsComponentDataVolumeCap.properties.ResetTime
- # - $.definitions.ApplicationInsightsComponentDataVolumeCap.properties.WarningThreshold
- # - $.definitions.ApplicationInsightsComponentDataVolumeCap.properties.StopSendNotificationWhenHitThreshold
- # - $.definitions.ApplicationInsightsComponentDataVolumeCap.properties.StopSendNotificationWhenHitCap
- # - $.definitions.ApplicationInsightsComponentDataVolumeCap.properties.MaxHistoryCap
- # - $.definitions.ApplicationInsightsComponentQuotaStatus.properties.AppId
- # - $.definitions.ApplicationInsightsComponentQuotaStatus.properties.ShouldBeThrottled
- # - $.definitions.ApplicationInsightsComponentQuotaStatus.properties.ExpirationTime
- # - $.definitions.ApplicationInsightsComponentProactiveDetectionConfiguration.properties.Name
- # - $.definitions.ApplicationInsightsComponentProactiveDetectionConfiguration.properties.Enabled
- # - $.definitions.ApplicationInsightsComponentProactiveDetectionConfiguration.properties.SendEmailsToSubscriptionOwners
- # - $.definitions.ApplicationInsightsComponentProactiveDetectionConfiguration.properties.CustomEmails
- # - $.definitions.ApplicationInsightsComponentProactiveDetectionConfiguration.properties.LastUpdatedTime
- # - $.definitions.ApplicationInsightsComponentProactiveDetectionConfiguration.properties.RuleDefinitions
- # - $.definitions.ApplicationInsightsComponentProactiveDetectionConfiguration.properties.Name
- # - $.definitions.ApplicationInsightsComponentProactiveDetectionConfiguration.properties.Name
- # - $.definitions.ApplicationInsightsComponentWebTestLocation.properties.Tag
- # - $.definitions.ApplicationInsightsComponentWebTestLocation.properties.DisplayName
- # - $.definitions.ApplicationInsightsComponentFavorite.properties.UserId
- # - $.definitions.ApplicationInsightsComponentFavorite.properties.IsGeneratedFromTemplate
- # - $.definitions.ApplicationInsightsComponentFavorite.properties.Category
- # - $.definitions.ApplicationInsightsComponentFavorite.properties.Tags
- # - $.definitions.ApplicationInsightsComponentFavorite.properties.TimeModified
- # - $.definitions.ApplicationInsightsComponentFavorite.properties.SourceType
- # - $.definitions.ApplicationInsightsComponentFavorite.properties.FavoriteType
- # - $.definitions.ApplicationInsightsComponentFavorite.properties.FavoriteId
- # - $.definitions.ApplicationInsightsComponentFavorite.properties.Version
- # - $.definitions.ApplicationInsightsComponentFavorite.properties.Config
- # - $.definitions.ApplicationInsightsComponentFavorite.properties.Name
- # - $.definitions.ApplicationInsightsComponentFeatureCapability.properties.MeterRateFrequency
- # - $.definitions.ApplicationInsightsComponentFeatureCapability.properties.MeterId
- # - $.definitions.ApplicationInsightsComponentFeatureCapability.properties.Unit
- # - $.definitions.ApplicationInsightsComponentFeatureCapability.properties.Value
- # - $.definitions.ApplicationInsightsComponentFeatureCapability.properties.Description
- # - $.definitions.ApplicationInsightsComponentFeatureCapability.properties.Name
- # - $.definitions.ApplicationInsightsComponentFeature.properties.SupportedAddonFeatures
- # - $.definitions.ApplicationInsightsComponentFeature.properties.IsMainFeature
- # - $.definitions.ApplicationInsightsComponentFeature.properties.Title
- # - $.definitions.ApplicationInsightsComponentFeature.properties.Capabilities
- # - $.definitions.ApplicationInsightsComponentFeature.properties.IsHidden
- # - $.definitions.ApplicationInsightsComponentFeature.properties.ResouceId
- # - $.definitions.ApplicationInsightsComponentFeature.properties.MeterRateFrequency
- # - $.definitions.ApplicationInsightsComponentFeature.properties.MeterId
- # - $.definitions.ApplicationInsightsComponentFeature.properties.FeatureName
- # - $.definitions.ApplicationInsightsComponentAvailableFeatures.properties.Result
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.ThrottleRate
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.DailyCapResetTime
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.DailyCap
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.TrackingType
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.ApiAccessLevel
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.SupportExportData
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.BurstThrottlePolicy
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.MetadataClass
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.LiveStreamMetrics
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.ApplicationMap
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.WorkItemIntegration
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.PowerBIIntegration
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.OpenSchema
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.ProactiveDetection
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.AnalyticsIntegration
- # - $.definitions.ApplicationInsightsComponentFeatureCapabilities.properties.MultipleStepWebTest
- # - $.definitions.ApplicationInsightsComponentAnalyticsItem.properties.Id
- # - $.definitions.ApplicationInsightsComponentAnalyticsItem.properties.Name
- # - $.definitions.ApplicationInsightsComponentAnalyticsItem.properties.Content
- # - $.definitions.ApplicationInsightsComponentAnalyticsItem.properties.Version
- # - $.definitions.ApplicationInsightsComponentAnalyticsItem.properties.Scope
- # - $.definitions.ApplicationInsightsComponentAnalyticsItem.properties.Type
- # - $.definitions.ApplicationInsightsComponentAnalyticsItem.properties.TimeCreated
- # - $.definitions.ApplicationInsightsComponentAnalyticsItem.properties.TimeModified
- # - $.definitions.ApplicationInsightsComponentAnalyticsItem.properties.Properties
-
+ reason: 'This api was existing there from 2015, it will break existing client if we change the name'
- suppress: R2066
reason: There are a bug in this rule. "ExportConfigurations_Create" is a valid operation id.
+ - suppress: OBJECT_ADDITIONAL_PROPERTIES
+ where: $.definitions.Workbook
+ from: workbooks_API.json
+ reason: 'This property is already a part of our API, so we cannot remove it'
+ - suppress: READONLY_PROPERTY_NOT_ALLOWED_IN_REQUEST
+ where: $.definitions.Resource.properties.name
+ from: types.json
+ reason: 'This property is already a part of our API, cannot remove it'
+ - suppress: READONLY_PROPERTY_NOT_ALLOWED_IN_REQUEST
+ where: $.definitions.Resource.properties.id
+ from: types.json
+ reason: 'This property is already a part of our API, cannot remove it'
+ - suppress: READONLY_PROPERTY_NOT_ALLOWED_IN_REQUEST
+ where: $.definitions.WorkbookResource.properties.id
+ from: workbooks_API.json
+ reason: 'This property is already a part of our API, cannot remove it'
+ - suppress: READONLY_PROPERTY_NOT_ALLOWED_IN_REQUEST
+ where: $.definitions.WorkbookResource.properties.name
+ from: workbooks_API.json
+ reason: 'This property is already a part of our API, cannot remove it'
```
### Tag: package-preview-2020-06-only
These settings apply only when `--tag=package-preview-2020-06-only` is specified on the command line.
-```yaml $(tag) == 'package-preview-2020-06-only'
+``` yaml $(tag) == 'package-preview-2020-06-only'
input-file:
- Microsoft.Insights/preview/2020-06-02-preview/livetoken_API.json
```
@@ -251,7 +112,7 @@ input-file:
These settings apply only when `--tag=package-preview-2020-06` is specified on the command line.
-```yaml $(tag) == 'package-preview-2020-06'
+``` yaml $(tag) == 'package-preview-2020-06'
input-file:
- Microsoft.Insights/stable/2015-05-01/aiOperations_API.json
- Microsoft.Insights/stable/2015-05-01/componentAnnotations_API.json
@@ -274,10 +135,11 @@ input-file:
These settings apply only when `--tag=package-preview-2020-02` is specified on the command line.
-```yaml $(tag) == 'package-preview-2020-02'
+``` yaml $(tag) == 'package-preview-2020-02'
input-file:
- Microsoft.Insights/preview/2020-02-10-preview/WebTestResults_API.json
```
+
### Tag: package-2015-05
These settings apply only when `--tag=package-2015-05` is specified on the command line.
@@ -486,31 +348,32 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
- - $(this-folder)/Microsoft.Insights/preview/2020-02-10-preview/WebTestResults_API.json
+ - $(this-folder)/Microsoft.Insights/preview/2020-06-02-preview/livetoken_API.json
- $(this-folder)/Microsoft.Insights/stable/2015-05-01/aiOperations_API.json
- $(this-folder)/Microsoft.Insights/stable/2015-05-01/componentAnnotations_API.json
- $(this-folder)/Microsoft.Insights/stable/2015-05-01/componentApiKeys_API.json
- $(this-folder)/Microsoft.Insights/stable/2015-05-01/componentContinuousExport_API.json
- $(this-folder)/Microsoft.Insights/stable/2015-05-01/componentFeaturesAndPricing_API.json
- $(this-folder)/Microsoft.Insights/stable/2015-05-01/componentProactiveDetection_API.json
- - $(this-folder)/Microsoft.Insights/stable/2015-05-01/components_API.json
- $(this-folder)/Microsoft.Insights/stable/2015-05-01/componentWorkItemConfigs_API.json
- $(this-folder)/Microsoft.Insights/stable/2015-05-01/favorites_API.json
- $(this-folder)/Microsoft.Insights/stable/2015-05-01/webTestLocations_API.json
- $(this-folder)/Microsoft.Insights/stable/2015-05-01/webTests_API.json
- $(this-folder)/Microsoft.Insights/stable/2015-05-01/analyticsItems_API.json
- $(this-folder)/Microsoft.Insights/stable/2015-05-01/workbooks_API.json
+ - $(this-folder)/Microsoft.Insights/preview/2018-05-01-preview/components_API.json
+ - $(this-folder)/Microsoft.Insights/preview/2020-03-01-preview/componentLinkedStorageAccounts_API.json
+ - $(this-folder)/Microsoft.Insights/preview/2020-02-10-preview/WebTestResults_API.json
+ - $(this-folder)/Microsoft.Insights/stable/2015-05-01/components_API.json
- $(this-folder)/Microsoft.Insights/preview/2017-10-01/eaSubscriptionMigration_API.json
- $(this-folder)/Microsoft.Insights/preview/2017-10-01/componentFeaturesAndPricing_API.json
- $(this-folder)/Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json
- $(this-folder)/Microsoft.Insights/preview/2019-10-17-preview/workbookTemplates_API.json
- $(this-folder)/Microsoft.Insights/preview/2018-05-01-preview/componentProactiveDetection_API.json
- - $(this-folder)/Microsoft.Insights/preview/2018-05-01-preview/components_API.json
- $(this-folder)/Microsoft.Insights/preview/2019-09-01-preview/QueryPackQueries_API.json
- $(this-folder)/Microsoft.Insights/preview/2019-09-01-preview/QueryPacks_API.json
- $(this-folder)/Microsoft.Insights/preview/2020-02-02-preview/components_API.json
- - $(this-folder)/Microsoft.Insights/preview/2020-03-01-preview/componentLinkedStorageAccounts_API.json
- - $(this-folder)/Microsoft.Insights/preview/2020-06-02-preview/livetoken_API.json
+
```
If there are files that should not be in the `all-api-versions` set,
diff --git a/specification/authorization/resource-manager/readme.md b/specification/authorization/resource-manager/readme.md
index f87f85d6af53..575b2c656dde 100644
--- a/specification/authorization/resource-manager/readme.md
+++ b/specification/authorization/resource-manager/readme.md
@@ -254,17 +254,18 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.Authorization/preview/2015-06-01/authorization-ClassicAdminCalls.json
+ - $(this-folder)/Microsoft.Authorization/stable/2015-07-01/authorization-ElevateAccessCalls.json
+ - $(this-folder)/Microsoft.Authorization/preview/2018-01-01-preview/authorization-ProviderOperationsCalls.json
+ - $(this-folder)/Microsoft.Authorization/preview/2018-01-01-preview/authorization-RoleDefinitionsCalls.json
+ - $(this-folder)/Microsoft.Authorization/preview/2018-07-01-preview/authorization-DenyAssignmentGetCalls.json
+ - $(this-folder)/Microsoft.Authorization/preview/2020-04-01-preview/authorization-RoleAssignmentsCalls.json
- $(this-folder)/Microsoft.Authorization/stable/2015-07-01/authorization-RoleDefinitionsCalls.json
- $(this-folder)/Microsoft.Authorization/stable/2015-07-01/authorization-ProviderOperationsCalls.json
- - $(this-folder)/Microsoft.Authorization/stable/2015-07-01/authorization-ElevateAccessCalls.json
- $(this-folder)/Microsoft.Authorization/stable/2015-07-01/authorization-RoleAssignmentsCalls.json
- $(this-folder)/Microsoft.Authorization/stable/2015-07-01/authorization-ClassicAdminCalls.json
- - $(this-folder)/Microsoft.Authorization/preview/2015-06-01/authorization-ClassicAdminCalls.json
- $(this-folder)/Microsoft.Authorization/preview/2017-10-01-preview/authorization-RoleAssignmentsCalls.json
- - $(this-folder)/Microsoft.Authorization/preview/2018-01-01-preview/authorization-ProviderOperationsCalls.json
- $(this-folder)/Microsoft.Authorization/preview/2018-01-01-preview/authorization-RoleAssignmentsCalls.json
- - $(this-folder)/Microsoft.Authorization/preview/2018-01-01-preview/authorization-RoleDefinitionsCalls.json
- - $(this-folder)/Microsoft.Authorization/preview/2018-07-01-preview/authorization-DenyAssignmentGetCalls.json
- $(this-folder)/Microsoft.Authorization/preview/2018-09-01-preview/authorization-RoleAssignmentsCalls.json
```
diff --git a/specification/azsadmin/resource-manager/compute/readme.md b/specification/azsadmin/resource-manager/compute/readme.md
index 2bed47d25cc2..6e2d95dd3738 100644
--- a/specification/azsadmin/resource-manager/compute/readme.md
+++ b/specification/azsadmin/resource-manager/compute/readme.md
@@ -69,3 +69,33 @@ input-file:
- Microsoft.Compute.Admin/preview/2018-07-30-preview/Disks.json
- Microsoft.Compute.Admin/preview/2018-07-30-preview/DiskMigrationJobs.json
```
+
+## 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.Compute.Admin/preview/2015-12-01-preview/Compute.json
+ - $(this-folder)/Microsoft.Compute.Admin/preview/2015-12-01-preview/PlatformImages.json
+ - $(this-folder)/Microsoft.Compute.Admin/preview/2018-02-09/Quotas.json
+ - $(this-folder)/Microsoft.Compute.Admin/preview/2015-12-01-preview/VMExtensions.json
+ - $(this-folder)/Microsoft.Compute.Admin/preview/2018-07-30-preview/Disks.json
+ - $(this-folder)/Microsoft.Compute.Admin/preview/2018-07-30-preview/DiskMigrationJobs.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
+```
+
diff --git a/specification/azsadmin/resource-manager/deployment/readme.md b/specification/azsadmin/resource-manager/deployment/readme.md
index 1f31ebeadde9..3de0982996e6 100644
--- a/specification/azsadmin/resource-manager/deployment/readme.md
+++ b/specification/azsadmin/resource-manager/deployment/readme.md
@@ -36,7 +36,10 @@ input-file:
- Microsoft.Deployment.Admin/preview/2019-01-01/Deployment.json
- Microsoft.Deployment.Admin/preview/2019-01-01/ActionPlan.json
- Microsoft.Deployment.Admin/preview/2019-01-01/ActionPlanOperation.json
+ - Microsoft.Deployment.Admin/preview/2019-01-01/ActionPlanOperationAttempt.json
- Microsoft.Deployment.Admin/preview/2019-01-01/FileContainer.json
+ - Microsoft.Deployment.Admin/preview/2019-01-01/Locations.json
+ - Microsoft.Deployment.Admin/preview/2019-01-01/OperationResults.json
- Microsoft.Deployment.Admin/preview/2019-01-01/ProductDeployment.json
- Microsoft.Deployment.Admin/preview/2019-01-01/ProductPackage.json
- Microsoft.Deployment.Admin/preview/2019-01-01/ProductSecret.json
@@ -83,10 +86,12 @@ input-file:
- $(this-folder)/Microsoft.Deployment.Admin/preview/2019-01-01/ActionPlanOperationAttempt.json
- $(this-folder)/Microsoft.Deployment.Admin/preview/2019-01-01/FileContainer.json
- $(this-folder)/Microsoft.Deployment.Admin/preview/2019-01-01/Locations.json
+ - $(this-folder)/Microsoft.Deployment.Admin/preview/2019-01-01/OperationResults.json
- $(this-folder)/Microsoft.Deployment.Admin/preview/2019-01-01/ProductDeployment.json
- $(this-folder)/Microsoft.Deployment.Admin/preview/2019-01-01/ProductPackage.json
- $(this-folder)/Microsoft.Deployment.Admin/preview/2019-01-01/ProductSecret.json
- - $(this-folder)/Microsoft.Deployment.Admin/preview/2019-01-01/OperationResults.json
+ - $(this-folder)/Microsoft.Deployment.Admin/preview/2018-07-01/FileContainer.json
+ - $(this-folder)/Microsoft.Deployment.Admin/preview/2018-07-01/ProductPackage.json
```
diff --git a/specification/azureactivedirectory/resource-manager/readme.md b/specification/azureactivedirectory/resource-manager/readme.md
index 46fe420e432e..a280ce576d65 100644
--- a/specification/azureactivedirectory/resource-manager/readme.md
+++ b/specification/azureactivedirectory/resource-manager/readme.md
@@ -129,11 +129,10 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
- - $(this-folder)/Microsoft.Aadiam/stable/2017-04-01/azureactivedirectory.json
- $(this-folder)/Microsoft.Aadiam/preview/2020-07-01-preview/azureADMetrics.json
- $(this-folder)/Microsoft.Aadiam/preview/2020-03-01-preview/privateLinkForAzureAD.json
- $(this-folder)/Microsoft.Aadiam/preview/2020-03-01-preview/privateLinkResources.json
-
+ - $(this-folder)/Microsoft.Aadiam/stable/2017-04-01/azureactivedirectory.json
```
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/azuredata.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/azuredata.json
index 306176fe6c91..7f52976db6c8 100644
--- a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/azuredata.json
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/azuredata.json
@@ -1518,6 +1518,15 @@
{
"$ref": "#/parameters/resourceGroupName"
},
+ {
+ "name": "dataControllerResource",
+ "description": "desc",
+ "required": true,
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/DataControllerResource"
+ }
+ },
{
"name": "dataControllerName",
"in": "path",
@@ -2290,10 +2299,11 @@
}
},
"DataControllerProperties": {
+ "description": "The data controller properties.",
"type": "object",
"properties": {
- "dataController": {
- "$ref": "#/definitions/DataController"
+ "onPremiseProperty": {
+ "$ref": "#/definitions/OnPremiseProperty"
},
"requestType": {
"$ref": "#/definitions/RequestType"
@@ -2312,28 +2322,22 @@
}
}
},
- "DataController": {
+ "OnPremiseProperty": {
+ "description": "Properties from the on premise data controller",
"type": "object",
"properties": {
"id": {
"type": "string",
- "format": "uuid"
- },
- "name": {
- "type": "string"
- },
- "azureResourceType": {
- "type": "string"
+ "format": "uuid",
+ "description": "A globally unique ID identifying the associated on premise cluster"
},
- "subscription": {
+ "publicSigningKey": {
"type": "string",
- "format": "uuid"
- },
- "resourceGroup": {
- "type": "string"
+ "description": "Certificate that contains the on premise cluster public key used to verify signing"
},
- "location": {
- "type": "string"
+ "signingCertificateThumbprint": {
+ "type": "string",
+ "description": "Unique thumbprint returned to customer to verify the certificate being uploaded"
}
}
},
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/CreateOrUpdateDataController.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/CreateOrUpdateDataController.json
index 2977f808ef85..74731c2ddcff 100644
--- a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/CreateOrUpdateDataController.json
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/CreateOrUpdateDataController.json
@@ -4,18 +4,29 @@
"resourceGroupName": "testrg",
"dataControllerName": "testdataController",
"api-version": "2017-07-24",
- "parameters": {
+ "dataControllerResource": {
"location": "northeurope",
"tags": {
"mytag": "myval"
},
- "properties": {}
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey"
+ }
+ }
}
},
"responses": {
"200": {
"body": {
- "properties": {},
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate being uploaded"
+ }
+ },
"systemData": {
"createdBy": "user1",
"createdByType": "user",
@@ -35,7 +46,13 @@
},
"201": {
"body": {
- "properties": {},
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate being uploaded"
+ }
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
diff --git a/specification/azurestackhci/resource-manager/readme.md b/specification/azurestackhci/resource-manager/readme.md
index 8f80f0887e92..d30f27d90903 100644
--- a/specification/azurestackhci/resource-manager/readme.md
+++ b/specification/azurestackhci/resource-manager/readme.md
@@ -88,3 +88,28 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
## CSharp
See configuration in [readme.csharp.md](./readme.csharp.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.AzureStackHCI/preview/2020-03-01-preview/azurestackhci.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
+```
+
diff --git a/specification/billing/resource-manager/readme.md b/specification/billing/resource-manager/readme.md
index d7dd48f19501..f2031f4bbc94 100644
--- a/specification/billing/resource-manager/readme.md
+++ b/specification/billing/resource-manager/readme.md
@@ -244,6 +244,7 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
- $(this-folder)/Microsoft.Billing/stable/2020-05-01/billing.json
+ - $(this-folder)/Microsoft.Billing/preview/2018-03-01-preview/billingV2.json
- $(this-folder)/Microsoft.Billing/preview/2019-10-01-preview/billing.json
- $(this-folder)/Microsoft.Billing/preview/2018-11-01-preview/billing.json
- $(this-folder)/Microsoft.Billing/preview/2018-03-01-preview/billing.json
diff --git a/specification/botservice/resource-manager/readme.md b/specification/botservice/resource-manager/readme.md
index 16c01f946217..de1dff1bfa0b 100644
--- a/specification/botservice/resource-manager/readme.md
+++ b/specification/botservice/resource-manager/readme.md
@@ -136,6 +136,7 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.BotService/stable/2020-06-02/botservice.json
- $(this-folder)/Microsoft.BotService/preview/2018-07-12/botservice.json
- $(this-folder)/Microsoft.BotService/preview/2017-12-01/botservice.json
diff --git a/specification/cloudshell/resource-manager/readme.md b/specification/cloudshell/resource-manager/readme.md
index 383773dcd1ce..76ac94994ab1 100644
--- a/specification/cloudshell/resource-manager/readme.md
+++ b/specification/cloudshell/resource-manager/readme.md
@@ -145,4 +145,28 @@ csharp:
client-side-validation: false
namespace: Microsoft.CloudShell
output-folder: $(csharp-sdks-folder)/CloudShell/management/Microsoft.CloudShell/GeneratedProtocol
-```
\ No newline at end of file
+```
+## 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.Portal/stable/2018-10-01/CloudShell.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
+```
+
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Prediction/readme.md b/specification/cognitiveservices/data-plane/CustomVision/Prediction/readme.md
index 1441a4a7fcad..3bfd212871ea 100644
--- a/specification/cognitiveservices/data-plane/CustomVision/Prediction/readme.md
+++ b/specification/cognitiveservices/data-plane/CustomVision/Prediction/readme.md
@@ -138,6 +138,7 @@ require: $(this-folder)/../../../../../profiles/readme.md
input-file:
- $(this-folder)/stable/v2.0/Prediction.json
- $(this-folder)/stable/v3.0/Prediction.json
+ - $(this-folder)/stable/v3.1/Prediction.json
```
diff --git a/specification/cognitiveservices/data-plane/CustomVision/Training/readme.md b/specification/cognitiveservices/data-plane/CustomVision/Training/readme.md
index c24589d79dc3..4941afe9c847 100644
--- a/specification/cognitiveservices/data-plane/CustomVision/Training/readme.md
+++ b/specification/cognitiveservices/data-plane/CustomVision/Training/readme.md
@@ -172,6 +172,7 @@ input-file:
- $(this-folder)/stable/v3.1/Training.json
- $(this-folder)/stable/v3.2/Training.json
- $(this-folder)/stable/v3.3/Training.json
+
```
If there are files that should not be in the `all-api-versions` set,
diff --git a/specification/cognitiveservices/data-plane/TranslatorText/readme.md b/specification/cognitiveservices/data-plane/TranslatorText/readme.md
index f6b28b8d49fe..5a735afe3c26 100644
--- a/specification/cognitiveservices/data-plane/TranslatorText/readme.md
+++ b/specification/cognitiveservices/data-plane/TranslatorText/readme.md
@@ -180,8 +180,8 @@ require: $(this-folder)/../../../../profiles/readme.md
# all the input files across all versions
input-file:
- - $(this-folder)/stable/v3.0/TranslatorText.json
- $(this-folder)/preview/v1.0-preview.1/TranslatorBatch.json
+ - $(this-folder)/stable/v3.0/TranslatorText.json
```
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 bf776693fce8..0640865e3b27 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
@@ -7260,6 +7260,10 @@
"type": "boolean",
"description": "Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true."
},
+ "enableAutomaticUpgrade": {
+ "type": "boolean",
+ "description": "Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available."
+ },
"settings": {
"type": "object",
"description": "Json formatted public settings for the extension."
@@ -7302,6 +7306,10 @@
"type": "boolean",
"description": "Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true."
},
+ "enableAutomaticUpgrade": {
+ "type": "boolean",
+ "description": "Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available."
+ },
"settings": {
"type": "object",
"description": "Json formatted public settings for the extension."
@@ -10109,6 +10117,10 @@
"type": "boolean",
"description": "Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true."
},
+ "enableAutomaticUpgrade": {
+ "type": "boolean",
+ "description": "Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available."
+ },
"settings": {
"type": "object",
"description": "Json formatted public settings for the extension."
diff --git a/specification/compute/resource-manager/readme.md b/specification/compute/resource-manager/readme.md
index a22faa6abe1f..ffe6a70bb98a 100644
--- a/specification/compute/resource-manager/readme.md
+++ b/specification/compute/resource-manager/readme.md
@@ -817,13 +817,15 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.Compute/stable/2020-06-01/compute.json
+ - $(this-folder)/Microsoft.Compute/stable/2020-06-01/runCommands.json
+ - $(this-folder)/Microsoft.Compute/stable/2019-04-01/skus.json
- $(this-folder)/Microsoft.Compute/stable/2020-05-01/disk.json
+ - $(this-folder)/Microsoft.Compute/stable/2019-12-01/gallery.json
+ - $(this-folder)/Microsoft.ContainerService/stable/2017-01-31/containerService.json
- $(this-folder)/Microsoft.Compute/stable/2019-12-01/compute.json
- $(this-folder)/Microsoft.Compute/stable/2019-12-01/runCommands.json
- - $(this-folder)/Microsoft.Compute/stable/2019-04-01/skus.json
- $(this-folder)/Microsoft.Compute/stable/2019-11-01/disk.json
- - $(this-folder)/Microsoft.Compute/stable/2019-12-01/gallery.json
- - $(this-folder)/Microsoft.ContainerService/stable/2017-01-31/containerService.json
- $(this-folder)/Microsoft.Compute/stable/2019-07-01/compute.json
- $(this-folder)/Microsoft.Compute/stable/2019-07-01/runCommands.json
- $(this-folder)/Microsoft.Compute/stable/2019-07-01/gallery.json
diff --git a/specification/containerinstance/resource-manager/readme.md b/specification/containerinstance/resource-manager/readme.md
index 14839315995e..0aa15d6d6fee 100644
--- a/specification/containerinstance/resource-manager/readme.md
+++ b/specification/containerinstance/resource-manager/readme.md
@@ -183,6 +183,7 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.ContainerInstance/stable/2019-12-01/containerInstance.json
- $(this-folder)/Microsoft.ContainerInstance/stable/2018-10-01/containerInstance.json
- $(this-folder)/Microsoft.ContainerInstance/stable/2018-09-01/containerInstance.json
- $(this-folder)/Microsoft.ContainerInstance/stable/2018-06-01/containerInstance.json
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/containerregistry_build.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/containerregistry_build.json
index 2174cc1e0e84..8f4a653587c2 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/containerregistry_build.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/containerregistry_build.json
@@ -721,11 +721,7 @@
"$ref": "#/parameters/ApiVersionParameter"
},
{
- "name": "taskRunName",
- "in": "path",
- "description": "The run request name.",
- "required": true,
- "type": "string"
+ "$ref": "#/parameters/TaskRunNameParameter"
}
],
"responses": {
@@ -768,11 +764,7 @@
"$ref": "#/parameters/ApiVersionParameter"
},
{
- "name": "taskRunName",
- "in": "path",
- "description": "The name of task run.",
- "required": true,
- "type": "string"
+ "$ref": "#/parameters/TaskRunNameParameter"
},
{
"name": "taskRun",
@@ -831,11 +823,7 @@
"$ref": "#/parameters/ApiVersionParameter"
},
{
- "name": "taskRunName",
- "in": "path",
- "description": "The task run name.",
- "required": true,
- "type": "string"
+ "$ref": "#/parameters/TaskRunNameParameter"
}
],
"responses": {
@@ -882,11 +870,7 @@
"$ref": "#/parameters/ApiVersionParameter"
},
{
- "name": "taskRunName",
- "in": "path",
- "description": "The task run name.",
- "required": true,
- "type": "string"
+ "$ref": "#/parameters/TaskRunNameParameter"
},
{
"name": "updateParameters",
@@ -947,11 +931,7 @@
"$ref": "#/parameters/ApiVersionParameter"
},
{
- "name": "taskRunName",
- "in": "path",
- "description": "The run request name.",
- "required": true,
- "type": "string"
+ "$ref": "#/parameters/TaskRunNameParameter"
}
],
"responses": {
@@ -1916,7 +1896,7 @@
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/Resource"
+ "$ref": "#/definitions/ProxyResource"
}
],
"properties": {
@@ -1928,6 +1908,10 @@
"$ref": "#/definitions/TaskRunProperties",
"description": "The properties associated with the task run, i.e., request and result of the run",
"x-ms-client-flatten": true
+ },
+ "location": {
+ "description": "The location of the resource",
+ "type": "string"
}
}
},
@@ -2028,6 +2012,10 @@
"description": "The properties for updating a task run.",
"x-ms-client-flatten": true
},
+ "location": {
+ "description": "The location of the resource",
+ "type": "string"
+ },
"tags": {
"description": "The ARM resource tags.",
"type": "object",
@@ -3602,6 +3590,17 @@
"minLength": 3,
"pattern": "^[a-zA-Z0-9-]*$",
"x-ms-parameter-location": "method"
+ },
+ "TaskRunNameParameter": {
+ "name": "taskRunName",
+ "in": "path",
+ "description": "The name of the task run.",
+ "required": true,
+ "type": "string",
+ "maxLength": 50,
+ "minLength": 5,
+ "pattern": "^[a-zA-Z0-9-]*$",
+ "x-ms-parameter-location": "method"
}
},
"securityDefinitions": {
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsCreate.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsCreate.json
index d3df479742b5..1b95e805388d 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsCreate.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsCreate.json
@@ -6,10 +6,6 @@
"api-version": "2019-06-01-preview",
"taskRunName": "myRun",
"taskRun": {
- "location": "westus",
- "tags": {
- "key": "value"
- },
"properties": {
"forceUpdateTag": "test",
"runRequest": {
@@ -67,11 +63,7 @@
}
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/taskRuns/myRun",
- "name": "myrun",
- "tags": {
- "key": "value"
- },
- "location": "WESTUS"
+ "name": "myrun"
}
},
"201": {
@@ -114,11 +106,7 @@
}
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/taskRuns/myRun",
- "name": "myrun",
- "tags": {
- "key": "value"
- },
- "location": "WESTUS"
+ "name": "myrun"
}
}
}
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsGet.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsGet.json
index 756b24ef7dcd..bf58544d51da 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsGet.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsGet.json
@@ -49,11 +49,7 @@
}
},
"id": "/subscriptions/3647315e-0c5b-4ce4-8739-b071e144b2c9/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/taskRuns/myRun",
- "name": "myRun",
- "tags": {
- "key": "value"
- },
- "location": "WESTUS"
+ "name": "myRun"
}
}
}
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsGetDetails.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsGetDetails.json
index 756b24ef7dcd..bf58544d51da 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsGetDetails.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsGetDetails.json
@@ -49,11 +49,7 @@
}
},
"id": "/subscriptions/3647315e-0c5b-4ce4-8739-b071e144b2c9/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/taskRuns/myRun",
- "name": "myRun",
- "tags": {
- "key": "value"
- },
- "location": "WESTUS"
+ "name": "myRun"
}
}
}
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsList.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsList.json
index d573ca7e39b4..2a9eee17142a 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsList.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsList.json
@@ -50,11 +50,7 @@
}
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/taskRuns/myRun",
- "name": "mytestrun",
- "tags": {
- "key": "value"
- },
- "location": "WESTUS"
+ "name": "mytestrun"
}
]
}
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsUpdate.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsUpdate.json
index a629bff26d79..2b6760729d81 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsUpdate.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TaskRunsUpdate.json
@@ -64,11 +64,7 @@
}
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/taskRuns/myRun",
- "name": "mytestrun",
- "tags": {
- "key": "value"
- },
- "location": "WESTUS"
+ "name": "mytestrun"
}
},
"201": {
@@ -111,11 +107,7 @@
}
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/taskRuns/myRun",
- "name": "mytestrun",
- "tags": {
- "key": "value"
- },
- "location": "WESTUS"
+ "name": "mytestrun"
}
}
}
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/containerregistry.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/containerregistry.json
index 6f70e0e72c62..ca69618c4db8 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/containerregistry.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/containerregistry.json
@@ -1805,6 +1805,10 @@
}
],
"properties": {
+ "location": {
+ "description": "The location of the export pipeline.",
+ "type": "string"
+ },
"identity": {
"$ref": "#/definitions/IdentityProperties",
"description": "The identity of the export pipeline."
@@ -2037,6 +2041,10 @@
}
],
"properties": {
+ "location": {
+ "description": "The location of the import pipeline.",
+ "type": "string"
+ },
"identity": {
"$ref": "#/definitions/IdentityProperties",
"description": "The identity of the import pipeline."
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ExportPipelineCreate.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ExportPipelineCreate.json
index 9c71dc64f11c..3d394884853c 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ExportPipelineCreate.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ExportPipelineCreate.json
@@ -6,6 +6,7 @@
"registryName": "myRegistry",
"exportPipelineName": "myExportPipeline",
"exportPipelineCreateParameters": {
+ "location": "westus",
"identity": {
"type": "SystemAssigned"
},
@@ -38,6 +39,7 @@
],
"provisioningState": "Succeeded"
},
+ "location": "westus",
"identity": {
"principalId": "fa153151-b9fd-46f4-9088-5e6600f2689v",
"tenantId": "f686d426-8d16-42db-81b7-abu4gm510ccd",
@@ -61,6 +63,7 @@
],
"provisioningState": "Succeeded"
},
+ "location": "westus",
"identity": {
"principalId": "fa153151-b9fd-46f4-9088-5e6600f2689v",
"tenantId": "f686d426-8d16-42db-81b7-abu4gm510ccd",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ExportPipelineGet.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ExportPipelineGet.json
index 6ff81e8d607a..55b55c604b91 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ExportPipelineGet.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ExportPipelineGet.json
@@ -23,6 +23,7 @@
],
"provisioningState": "Succeeded"
},
+ "location": "westus",
"identity": {
"principalId": "fa153151-b9fd-46f4-9088-5e6600f2689v",
"tenantId": "f686d426-8d16-42db-81b7-abu4gm510ccd",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ExportPipelineList.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ExportPipelineList.json
index cff4002faea4..e03aa6c5702d 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ExportPipelineList.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ExportPipelineList.json
@@ -24,6 +24,7 @@
],
"provisioningState": "Succeeded"
},
+ "location": "westus",
"identity": {
"principalId": "fa153151-b9fd-46f4-9088-5e6600f2689v",
"tenantId": "f686d426-8d16-42db-81b7-abu4gm510ccd",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ImportPipelineCreate.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ImportPipelineCreate.json
index d348a3e20632..fd0a22d01966 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ImportPipelineCreate.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ImportPipelineCreate.json
@@ -6,6 +6,7 @@
"registryName": "myRegistry",
"importPipelineName": "myImportPipeline",
"importPipelineCreateParameters": {
+ "location": "westus",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
@@ -50,6 +51,7 @@
],
"provisioningState": "Succeeded"
},
+ "location": "westus",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
@@ -84,6 +86,7 @@
],
"provisioningState": "Succeeded"
},
+ "location": "westus",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ImportPipelineGet.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ImportPipelineGet.json
index f0d7d584162f..eb62462be762 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ImportPipelineGet.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ImportPipelineGet.json
@@ -30,6 +30,7 @@
],
"provisioningState": "Succeeded"
},
+ "location": "westus",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ImportPipelineList.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ImportPipelineList.json
index 70b5b1c3fd11..f704423f9a2a 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ImportPipelineList.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-12-01-preview/examples/ImportPipelineList.json
@@ -31,6 +31,7 @@
],
"provisioningState": "Succeeded"
},
+ "location": "westus",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
diff --git a/specification/cosmos-db/data-plane/readme.go.md b/specification/cosmos-db/data-plane/readme.go.md
index e8b63caff258..610b160a3ccf 100644
--- a/specification/cosmos-db/data-plane/readme.go.md
+++ b/specification/cosmos-db/data-plane/readme.go.md
@@ -22,5 +22,5 @@ These settings apply only when `--tag=package-2019-02 --go` is specified on the
Please also specify `--go-sdk-folder=`.
``` yaml $(tag) == 'package-2019-02' && $(go)
-output-folder: $(go-sdk-folder)/services/storage/tables/2019-02-02/$(namespace)
+output-folder: $(go-sdk-folder)/services/preview/storage/tables/2019-02-02-preview/$(namespace)
```
\ No newline at end of file
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/cosmos-db.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/cosmos-db.json
index e648003dc480..8e42d573e5d8 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/cosmos-db.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/cosmos-db.json
@@ -1680,6 +1680,86 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "SqlResources_MigrateSqlDatabaseToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBSqlDatabaseMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBSqlDatabaseMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB SQL database from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The SQL database migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The SQL database migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "SqlResources_MigrateSqlDatabaseToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBSqlDatabaseMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBSqlDatabaseMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB SQL database from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The SQL database migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The SQL database migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers": {
"get": {
"operationId": "SqlResources_ListSqlContainers",
@@ -1935,6 +2015,92 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "SqlResources_MigrateSqlContainerToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBSqlContainerMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBSqlContainerMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB SQL container from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/containerNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The SQL container migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The SQL container migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "SqlResources_MigrateSqlContainerToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBSqlContainerMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBSqlContainerMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB SQL container from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/containerNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The SQL container migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The SQL container migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/storedProcedures": {
"get": {
"operationId": "SqlResources_ListSqlStoredProcedures",
@@ -2706,6 +2872,86 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/mongodbDatabases/{databaseName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "MongoDBResources_MigrateMongoDBDatabaseToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBMongoDBDatabaseMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBMongoDBDatabaseMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB MongoDB database from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The MongoDB database migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The MongoDB database migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/mongodbDatabases/{databaseName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "MongoDBResources_MigrateMongoDBDatabaseToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBMongoDBDatabaseMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBMongoDBDatabaseMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB MongoDB database from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The MongoDB database migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The MongoDB database migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/mongodbDatabases/{databaseName}/collections": {
"get": {
"operationId": "MongoDBResources_ListMongoDBCollections",
@@ -2961,15 +3207,16 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/tables": {
- "get": {
- "operationId": "TableResources_ListTables",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/mongodbDatabases/{databaseName}/collections/{collectionName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "MongoDBResources_MigrateMongoDBCollectionToAutoscale",
"x-ms-examples": {
- "CosmosDBTableList": {
- "$ref": "./examples/CosmosDBTableList.json"
+ "CosmosDBMongoDBCollectionMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBMongoDBCollectionMigrateToAutoscale.json"
}
},
- "description": "Lists the Tables under an existing Azure Cosmos DB database account.",
+ "description": "Migrate an Azure Cosmos DB MongoDB collection from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
"parameters": [
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
@@ -2980,32 +3227,39 @@
{
"$ref": "#/parameters/accountNameParameter"
},
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/collectionNameParameter"
+ },
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
}
],
"responses": {
+ "202": {
+ "description": "The MongoDB collection migrate operation will complete asynchronously."
+ },
"200": {
- "description": "The Table properties were retrieved successfully.",
+ "description": "The MongoDB collection migrate operation was completed successfully.",
"schema": {
- "$ref": "#/definitions/TableListResult"
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
}
}
- },
- "x-ms-pageable": {
- "nextLinkName": null
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/tables/{tableName}": {
- "get": {
- "operationId": "TableResources_GetTable",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/mongodbDatabases/{databaseName}/collections/{collectionName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "MongoDBResources_MigrateMongoDBCollectionToManualThroughput",
"x-ms-examples": {
- "CosmosDBTableGet": {
- "$ref": "./examples/CosmosDBTableGet.json"
+ "CosmosDBMongoDBCollectionMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBMongoDBCollectionMigrateToManualThroughput.json"
}
},
- "description": "Gets the Tables under an existing Azure Cosmos DB database account with the provided name.",
+ "description": "Migrate an Azure Cosmos DB MongoDB collection from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
"parameters": [
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
@@ -3017,26 +3271,104 @@
"$ref": "#/parameters/accountNameParameter"
},
{
- "$ref": "#/parameters/tableNameParameter"
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/collectionNameParameter"
},
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
}
],
"responses": {
+ "202": {
+ "description": "The MongoDB collection migrate operation will complete asynchronously."
+ },
"200": {
- "description": "The Table property was retrieved successfully.",
+ "description": "The MongoDB collection migrate operation was completed successfully.",
"schema": {
- "$ref": "#/definitions/TableGetResults"
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
}
}
}
- },
- "put": {
- "operationId": "TableResources_CreateUpdateTable",
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/tables": {
+ "get": {
+ "operationId": "TableResources_ListTables",
"x-ms-examples": {
- "CosmosDBTableReplace": {
- "$ref": "./examples/CosmosDBTableCreateUpdate.json"
+ "CosmosDBTableList": {
+ "$ref": "./examples/CosmosDBTableList.json"
+ }
+ },
+ "description": "Lists the Tables under an existing Azure Cosmos DB database account.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Table properties were retrieved successfully.",
+ "schema": {
+ "$ref": "#/definitions/TableListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/tables/{tableName}": {
+ "get": {
+ "operationId": "TableResources_GetTable",
+ "x-ms-examples": {
+ "CosmosDBTableGet": {
+ "$ref": "./examples/CosmosDBTableGet.json"
+ }
+ },
+ "description": "Gets the Tables under an existing Azure Cosmos DB database account with the provided name.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/tableNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Table property was retrieved successfully.",
+ "schema": {
+ "$ref": "#/definitions/TableGetResults"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "TableResources_CreateUpdateTable",
+ "x-ms-examples": {
+ "CosmosDBTableReplace": {
+ "$ref": "./examples/CosmosDBTableCreateUpdate.json"
}
},
"description": "Create or update an Azure Cosmos DB Table",
@@ -3198,6 +3530,86 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/tables/{tableName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "TableResources_MigrateTableToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBTableMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBTableMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Table from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/tableNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Table migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Table migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/tables/{tableName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "TableResources_MigrateTableToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBTableMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBTableMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Table from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/tableNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Table migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Table migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/cassandraKeyspaces": {
"get": {
"operationId": "CassandraResources_ListCassandraKeyspaces",
@@ -3435,6 +3847,86 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/cassandraKeyspaces/{keyspaceName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "CassandraResources_MigrateCassandraKeyspaceToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBCassandraKeyspaceMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBCassandraKeyspaceMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Cassandra Keyspace from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/keyspaceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Cassandra Keyspace migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Cassandra Keyspace migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/cassandraKeyspaces/{keyspaceName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "CassandraResources_MigrateCassandraKeyspaceToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBCassandraKeyspaceMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBCassandraKeyspaceMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Cassandra Keyspace from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/keyspaceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Cassandra Keyspace migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Cassandra Keyspace migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/cassandraKeyspaces/{keyspaceName}/tables": {
"get": {
"operationId": "CassandraResources_ListCassandraTables",
@@ -3690,6 +4182,92 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/cassandraKeyspaces/{keyspaceName}/tables/{tableName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "CassandraResources_MigrateCassandraTableToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBCassandraTableMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBCassandraTableMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Cassandra table from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/keyspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/tableNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Cassandra table migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Cassandra table migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/cassandraKeyspaces/{keyspaceName}/tables/{tableName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "CassandraResources_MigrateCassandraTableToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBCassandraTableMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBCassandraTableMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Cassandra table from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/keyspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/tableNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Cassandra table migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Cassandra table migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/gremlinDatabases": {
"get": {
"operationId": "GremlinResources_ListGremlinDatabases",
@@ -3927,6 +4505,86 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/gremlinDatabases/{databaseName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "GremlinResources_MigrateGremlinDatabaseToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBGremlinDatabaseMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBGremlinDatabaseMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Gremlin database from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Gremlin database migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Gremlin database migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/gremlinDatabases/{databaseName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "GremlinResources_MigrateGremlinDatabaseToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBGremlinDatabaseMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBGremlinDatabaseMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Gremlin database from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Gremlin database migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Gremlin database migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/gremlinDatabases/{databaseName}/graphs": {
"get": {
"operationId": "GremlinResources_ListGremlinGraphs",
@@ -4181,6 +4839,92 @@
}
}
}
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/gremlinDatabases/{databaseName}/graphs/{graphName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "GremlinResources_MigrateGremlinGraphToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBGremlinGraphMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBGremlinGraphMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Gremlin graph from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/graphNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Gremlin graph migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Gremlin graph migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/gremlinDatabases/{databaseName}/graphs/{graphName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "GremlinResources_MigrateGremlinGraphToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBGremlinGraphMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBGremlinGraphMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Gremlin graph from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/graphNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Gremlin graph migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Gremlin graph migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
}
},
"definitions": {
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBCassandraKeyspaceMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBCassandraKeyspaceMigrateToAutoscale.json
new file mode 100644
index 000000000000..866e06dd99c2
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBCassandraKeyspaceMigrateToAutoscale.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "keyspaceName": "keyspaceName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "provisionedThroughputSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBCassandraKeyspaceMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBCassandraKeyspaceMigrateToManualThroughput.json
new file mode 100644
index 000000000000..ddd5b858f647
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBCassandraKeyspaceMigrateToManualThroughput.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "keyspaceName": "keyspaceName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBCassandraTableMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBCassandraTableMigrateToAutoscale.json
new file mode 100644
index 000000000000..8f57f7e942ac
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBCassandraTableMigrateToAutoscale.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "keyspaceName": "keyspaceName",
+ "tableName": "tableName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "provisionedThroughputSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBCassandraTableMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBCassandraTableMigrateToManualThroughput.json
new file mode 100644
index 000000000000..f901199a4d11
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBCassandraTableMigrateToManualThroughput.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "keyspaceName": "keyspaceName",
+ "tableName": "tableName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBGremlinDatabaseMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBGremlinDatabaseMigrateToAutoscale.json
new file mode 100644
index 000000000000..c8fada5aa737
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBGremlinDatabaseMigrateToAutoscale.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "provisionedThroughputSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBGremlinDatabaseMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBGremlinDatabaseMigrateToManualThroughput.json
new file mode 100644
index 000000000000..9daa31f2fa84
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBGremlinDatabaseMigrateToManualThroughput.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "true",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBGremlinGraphMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBGremlinGraphMigrateToAutoscale.json
new file mode 100644
index 000000000000..0c9f21ef808a
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBGremlinGraphMigrateToAutoscale.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName",
+ "graphName": "graphName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "provisionedThroughputSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBGremlinGraphMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBGremlinGraphMigrateToManualThroughput.json
new file mode 100644
index 000000000000..7ebda5fed28d
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBGremlinGraphMigrateToManualThroughput.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName",
+ "graphName": "graphName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "true",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBMongoDBCollectionMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBMongoDBCollectionMigrateToAutoscale.json
new file mode 100644
index 000000000000..61cce1fbda6f
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBMongoDBCollectionMigrateToAutoscale.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName",
+ "collectionName": "collectionName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "provisionedThroughputSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBMongoDBCollectionMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBMongoDBCollectionMigrateToManualThroughput.json
new file mode 100644
index 000000000000..ea8fd74be2f5
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBMongoDBCollectionMigrateToManualThroughput.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName",
+ "collectionName": "collectionName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "true",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBMongoDBDatabaseMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBMongoDBDatabaseMigrateToAutoscale.json
new file mode 100644
index 000000000000..c8fada5aa737
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBMongoDBDatabaseMigrateToAutoscale.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "provisionedThroughputSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBMongoDBDatabaseMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBMongoDBDatabaseMigrateToManualThroughput.json
new file mode 100644
index 000000000000..9daa31f2fa84
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBMongoDBDatabaseMigrateToManualThroughput.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "true",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBSqlContainerMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBSqlContainerMigrateToAutoscale.json
new file mode 100644
index 000000000000..847f6a543506
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBSqlContainerMigrateToAutoscale.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName",
+ "containerName": "containerName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "provisionedThroughputSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBSqlContainerMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBSqlContainerMigrateToManualThroughput.json
new file mode 100644
index 000000000000..51092efb4b2f
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBSqlContainerMigrateToManualThroughput.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName",
+ "containerName": "containerName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "true",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBSqlDatabaseMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBSqlDatabaseMigrateToAutoscale.json
new file mode 100644
index 000000000000..c8fada5aa737
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBSqlDatabaseMigrateToAutoscale.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "provisionedThroughputSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBSqlDatabaseMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBSqlDatabaseMigrateToManualThroughput.json
new file mode 100644
index 000000000000..9daa31f2fa84
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBSqlDatabaseMigrateToManualThroughput.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "true",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBTableMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBTableMigrateToAutoscale.json
new file mode 100644
index 000000000000..ac94982bfade
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBTableMigrateToAutoscale.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "tableName": "tableName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "provisionedThroughputSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBTableMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBTableMigrateToManualThroughput.json
new file mode 100644
index 000000000000..8fd6d3a8313f
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-03-01/examples/CosmosDBTableMigrateToManualThroughput.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-01",
+ "subscriptionId": "subid",
+ "tableName": "tableName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "true",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/cosmos-db.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/cosmos-db.json
index 6e73ccd40325..d42b4c445ae0 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/cosmos-db.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/cosmos-db.json
@@ -1680,6 +1680,86 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "SqlResources_MigrateSqlDatabaseToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBSqlDatabaseMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBSqlDatabaseMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB SQL database from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The SQL database migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The SQL database migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "SqlResources_MigrateSqlDatabaseToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBSqlDatabaseMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBSqlDatabaseMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB SQL database from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The SQL database migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The SQL database migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers": {
"get": {
"operationId": "SqlResources_ListSqlContainers",
@@ -1935,6 +2015,92 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "SqlResources_MigrateSqlContainerToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBSqlContainerMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBSqlContainerMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB SQL container from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/containerNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The SQL container migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The SQL container migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "SqlResources_MigrateSqlContainerToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBSqlContainerMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBSqlContainerMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB SQL container from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/containerNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The SQL container migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The SQL container migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/storedProcedures": {
"get": {
"operationId": "SqlResources_ListSqlStoredProcedures",
@@ -2706,6 +2872,86 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/mongodbDatabases/{databaseName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "MongoDBResources_MigrateMongoDBDatabaseToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBMongoDBDatabaseMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBMongoDBDatabaseMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB MongoDB database from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The MongoDB database migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The MongoDB database migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/mongodbDatabases/{databaseName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "MongoDBResources_MigrateMongoDBDatabaseToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBMongoDBDatabaseMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBMongoDBDatabaseMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB MongoDB database from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The MongoDB database migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The MongoDB database migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/mongodbDatabases/{databaseName}/collections": {
"get": {
"operationId": "MongoDBResources_ListMongoDBCollections",
@@ -2961,15 +3207,16 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/tables": {
- "get": {
- "operationId": "TableResources_ListTables",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/mongodbDatabases/{databaseName}/collections/{collectionName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "MongoDBResources_MigrateMongoDBCollectionToAutoscale",
"x-ms-examples": {
- "CosmosDBTableList": {
- "$ref": "./examples/CosmosDBTableList.json"
+ "CosmosDBMongoDBCollectionMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBMongoDBCollectionMigrateToAutoscale.json"
}
},
- "description": "Lists the Tables under an existing Azure Cosmos DB database account.",
+ "description": "Migrate an Azure Cosmos DB MongoDB collection from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
"parameters": [
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
@@ -2980,32 +3227,39 @@
{
"$ref": "#/parameters/accountNameParameter"
},
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/collectionNameParameter"
+ },
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
}
],
"responses": {
+ "202": {
+ "description": "The MongoDB collection migrate operation will complete asynchronously."
+ },
"200": {
- "description": "The Table properties were retrieved successfully.",
+ "description": "The MongoDB collection migrate operation was completed successfully.",
"schema": {
- "$ref": "#/definitions/TableListResult"
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
}
}
- },
- "x-ms-pageable": {
- "nextLinkName": null
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/tables/{tableName}": {
- "get": {
- "operationId": "TableResources_GetTable",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/mongodbDatabases/{databaseName}/collections/{collectionName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "MongoDBResources_MigrateMongoDBCollectionToManualThroughput",
"x-ms-examples": {
- "CosmosDBTableGet": {
- "$ref": "./examples/CosmosDBTableGet.json"
+ "CosmosDBMongoDBCollectionMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBMongoDBCollectionMigrateToManualThroughput.json"
}
},
- "description": "Gets the Tables under an existing Azure Cosmos DB database account with the provided name.",
+ "description": "Migrate an Azure Cosmos DB MongoDB collection from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
"parameters": [
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
@@ -3017,26 +3271,104 @@
"$ref": "#/parameters/accountNameParameter"
},
{
- "$ref": "#/parameters/tableNameParameter"
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/collectionNameParameter"
},
{
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
}
],
"responses": {
+ "202": {
+ "description": "The MongoDB collection migrate operation will complete asynchronously."
+ },
"200": {
- "description": "The Table property was retrieved successfully.",
+ "description": "The MongoDB collection migrate operation was completed successfully.",
"schema": {
- "$ref": "#/definitions/TableGetResults"
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
}
}
}
- },
- "put": {
- "operationId": "TableResources_CreateUpdateTable",
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/tables": {
+ "get": {
+ "operationId": "TableResources_ListTables",
"x-ms-examples": {
- "CosmosDBTableReplace": {
- "$ref": "./examples/CosmosDBTableCreateUpdate.json"
+ "CosmosDBTableList": {
+ "$ref": "./examples/CosmosDBTableList.json"
+ }
+ },
+ "description": "Lists the Tables under an existing Azure Cosmos DB database account.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Table properties were retrieved successfully.",
+ "schema": {
+ "$ref": "#/definitions/TableListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/tables/{tableName}": {
+ "get": {
+ "operationId": "TableResources_GetTable",
+ "x-ms-examples": {
+ "CosmosDBTableGet": {
+ "$ref": "./examples/CosmosDBTableGet.json"
+ }
+ },
+ "description": "Gets the Tables under an existing Azure Cosmos DB database account with the provided name.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/tableNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Table property was retrieved successfully.",
+ "schema": {
+ "$ref": "#/definitions/TableGetResults"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "TableResources_CreateUpdateTable",
+ "x-ms-examples": {
+ "CosmosDBTableReplace": {
+ "$ref": "./examples/CosmosDBTableCreateUpdate.json"
}
},
"description": "Create or update an Azure Cosmos DB Table",
@@ -3198,6 +3530,86 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/tables/{tableName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "TableResources_MigrateTableToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBTableMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBTableMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Table from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/tableNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Table migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Table migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/tables/{tableName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "TableResources_MigrateTableToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBTableMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBTableMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Table from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/tableNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Table migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Table migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/cassandraKeyspaces": {
"get": {
"operationId": "CassandraResources_ListCassandraKeyspaces",
@@ -3435,6 +3847,86 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/cassandraKeyspaces/{keyspaceName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "CassandraResources_MigrateCassandraKeyspaceToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBCassandraKeyspaceMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBCassandraKeyspaceMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Cassandra Keyspace from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/keyspaceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Cassandra Keyspace migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Cassandra Keyspace migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/cassandraKeyspaces/{keyspaceName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "CassandraResources_MigrateCassandraKeyspaceToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBCassandraKeyspaceMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBCassandraKeyspaceMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Cassandra Keyspace from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/keyspaceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Cassandra Keyspace migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Cassandra Keyspace migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/cassandraKeyspaces/{keyspaceName}/tables": {
"get": {
"operationId": "CassandraResources_ListCassandraTables",
@@ -3690,6 +4182,92 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/cassandraKeyspaces/{keyspaceName}/tables/{tableName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "CassandraResources_MigrateCassandraTableToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBCassandraTableMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBCassandraTableMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Cassandra table from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/keyspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/tableNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Cassandra table migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Cassandra table migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/cassandraKeyspaces/{keyspaceName}/tables/{tableName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "CassandraResources_MigrateCassandraTableToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBCassandraTableMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBCassandraTableMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Cassandra table from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/keyspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/tableNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Cassandra table migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Cassandra table migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/gremlinDatabases": {
"get": {
"operationId": "GremlinResources_ListGremlinDatabases",
@@ -3927,6 +4505,86 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/gremlinDatabases/{databaseName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "GremlinResources_MigrateGremlinDatabaseToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBGremlinDatabaseMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBGremlinDatabaseMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Gremlin database from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Gremlin database migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Gremlin database migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/gremlinDatabases/{databaseName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "GremlinResources_MigrateGremlinDatabaseToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBGremlinDatabaseMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBGremlinDatabaseMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Gremlin database from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Gremlin database migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Gremlin database migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/gremlinDatabases/{databaseName}/graphs": {
"get": {
"operationId": "GremlinResources_ListGremlinGraphs",
@@ -4181,6 +4839,92 @@
}
}
}
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/gremlinDatabases/{databaseName}/graphs/{graphName}/throughputSettings/default/migrateToAutoscale": {
+ "post": {
+ "operationId": "GremlinResources_MigrateGremlinGraphToAutoscale",
+ "x-ms-examples": {
+ "CosmosDBGremlinGraphMigrateToAutoscale": {
+ "$ref": "./examples/CosmosDBGremlinGraphMigrateToAutoscale.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Gremlin graph from manual throughput to autoscale",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/graphNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Gremlin graph migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Gremlin graph migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/gremlinDatabases/{databaseName}/graphs/{graphName}/throughputSettings/default/migrateToManualThroughput": {
+ "post": {
+ "operationId": "GremlinResources_MigrateGremlinGraphToManualThroughput",
+ "x-ms-examples": {
+ "CosmosDBGremlinGraphMigrateToManualThroughput": {
+ "$ref": "./examples/CosmosDBGremlinGraphMigrateToManualThroughput.json"
+ }
+ },
+ "description": "Migrate an Azure Cosmos DB Gremlin graph from autoscale to manual throughput",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/databaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/graphNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Gremlin graph migrate operation will complete asynchronously."
+ },
+ "200": {
+ "description": "The Gremlin graph migrate operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/ThroughputSettingsGetResults"
+ }
+ }
+ }
+ }
}
},
"definitions": {
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBCassandraKeyspaceMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBCassandraKeyspaceMigrateToAutoscale.json
new file mode 100644
index 000000000000..7014132ba922
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBCassandraKeyspaceMigrateToAutoscale.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "keyspaceName": "keyspaceName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "autoscaleSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBCassandraKeyspaceMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBCassandraKeyspaceMigrateToManualThroughput.json
new file mode 100644
index 000000000000..c1d7adb55be3
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBCassandraKeyspaceMigrateToManualThroughput.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "keyspaceName": "keyspaceName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBCassandraTableMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBCassandraTableMigrateToAutoscale.json
new file mode 100644
index 000000000000..268bb531bda3
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBCassandraTableMigrateToAutoscale.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "keyspaceName": "keyspaceName",
+ "tableName": "tableName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "autoscaleSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBCassandraTableMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBCassandraTableMigrateToManualThroughput.json
new file mode 100644
index 000000000000..a61aa9159b8f
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBCassandraTableMigrateToManualThroughput.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "keyspaceName": "keyspaceName",
+ "tableName": "tableName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBGremlinDatabaseMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBGremlinDatabaseMigrateToAutoscale.json
new file mode 100644
index 000000000000..92b77f53e656
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBGremlinDatabaseMigrateToAutoscale.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "autoscaleSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBGremlinDatabaseMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBGremlinDatabaseMigrateToManualThroughput.json
new file mode 100644
index 000000000000..fe3611022024
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBGremlinDatabaseMigrateToManualThroughput.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "true",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBGremlinGraphMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBGremlinGraphMigrateToAutoscale.json
new file mode 100644
index 000000000000..3548d0c0e8d7
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBGremlinGraphMigrateToAutoscale.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName",
+ "graphName": "graphName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "autoscaleSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBGremlinGraphMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBGremlinGraphMigrateToManualThroughput.json
new file mode 100644
index 000000000000..d604a817c552
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBGremlinGraphMigrateToManualThroughput.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName",
+ "graphName": "graphName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "true",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBMongoDBCollectionMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBMongoDBCollectionMigrateToAutoscale.json
new file mode 100644
index 000000000000..dff0916f8388
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBMongoDBCollectionMigrateToAutoscale.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName",
+ "collectionName": "collectionName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "autoscaleSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBMongoDBCollectionMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBMongoDBCollectionMigrateToManualThroughput.json
new file mode 100644
index 000000000000..a6a1b7fea40d
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBMongoDBCollectionMigrateToManualThroughput.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName",
+ "collectionName": "collectionName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "true",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBMongoDBDatabaseMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBMongoDBDatabaseMigrateToAutoscale.json
new file mode 100644
index 000000000000..92b77f53e656
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBMongoDBDatabaseMigrateToAutoscale.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "autoscaleSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBMongoDBDatabaseMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBMongoDBDatabaseMigrateToManualThroughput.json
new file mode 100644
index 000000000000..fe3611022024
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBMongoDBDatabaseMigrateToManualThroughput.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "true",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBSqlContainerMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBSqlContainerMigrateToAutoscale.json
new file mode 100644
index 000000000000..5d5362d1f905
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBSqlContainerMigrateToAutoscale.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName",
+ "containerName": "containerName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "autoscaleSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBSqlContainerMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBSqlContainerMigrateToManualThroughput.json
new file mode 100644
index 000000000000..014d732eb7e0
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBSqlContainerMigrateToManualThroughput.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName",
+ "containerName": "containerName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "true",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBSqlDatabaseMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBSqlDatabaseMigrateToAutoscale.json
new file mode 100644
index 000000000000..92b77f53e656
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBSqlDatabaseMigrateToAutoscale.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "autoscaleSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBSqlDatabaseMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBSqlDatabaseMigrateToManualThroughput.json
new file mode 100644
index 000000000000..fe3611022024
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBSqlDatabaseMigrateToManualThroughput.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "databaseName": "databaseName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "true",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBTableMigrateToAutoscale.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBTableMigrateToAutoscale.json
new file mode 100644
index 000000000000..c8b8a1a9f94a
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBTableMigrateToAutoscale.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "tableName": "tableName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "autoscaleSettings": {
+ "maxThroughput": 4000
+ },
+ "minimumThroughput": "4000",
+ "offerReplacePending": "false",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBTableMigrateToManualThroughput.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBTableMigrateToManualThroughput.json
new file mode 100644
index 000000000000..8d8dd974645f
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBTableMigrateToManualThroughput.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "accountName": "ddb1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-04-01",
+ "subscriptionId": "subid",
+ "tableName": "tableName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resource": {
+ "throughput": 400,
+ "minimumThroughput": "400",
+ "offerReplacePending": "true",
+ "_rid": "PD5DALigDgw=",
+ "_ts": 1459200611,
+ "_etag": "\"00005900-0000-0000-0000-56f9a2630000\""
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/readme.md b/specification/cosmos-db/resource-manager/readme.md
index 4d1ab2248832..3319ea5bcd1a 100644
--- a/specification/cosmos-db/resource-manager/readme.md
+++ b/specification/cosmos-db/resource-manager/readme.md
@@ -280,10 +280,10 @@ require: $(this-folder)/../../../profiles/readme.md
input-file:
- $(this-folder)/Microsoft.DocumentDB/preview/2020-06-01-preview/cosmos-db.json
- $(this-folder)/Microsoft.DocumentDB/preview/2020-06-01-preview/notebook.json
- - $(this-folder)/Microsoft.DocumentDB/stable/2020-04-01/cosmos-db.json
- - $(this-folder)/Microsoft.DocumentDB/stable/2020-04-01/notebook.json
- $(this-folder)/Microsoft.DocumentDB/preview/2019-08-01-preview/privateLinkResources.json
- $(this-folder)/Microsoft.DocumentDB/preview/2019-08-01-preview/privateEndpointConnection.json
+ - $(this-folder)/Microsoft.DocumentDB/stable/2020-04-01/cosmos-db.json
+ - $(this-folder)/Microsoft.DocumentDB/stable/2020-04-01/notebook.json
- $(this-folder)/Microsoft.DocumentDB/stable/2020-03-01/cosmos-db.json
- $(this-folder)/Microsoft.DocumentDB/stable/2020-03-01/notebook.json
- $(this-folder)/Microsoft.DocumentDB/stable/2019-12-12/cosmos-db.json
diff --git a/specification/databoxedge/resource-manager/readme.md b/specification/databoxedge/resource-manager/readme.md
index beec4161964b..525e9e046a23 100644
--- a/specification/databoxedge/resource-manager/readme.md
+++ b/specification/databoxedge/resource-manager/readme.md
@@ -208,6 +208,7 @@ input-file:
- $(this-folder)/Microsoft.DataBoxEdge/stable/2019-08-01/databoxedge.json
- $(this-folder)/Microsoft.DataBoxEdge/stable/2019-07-01/databoxedge.json
- $(this-folder)/Microsoft.DataBoxEdge/stable/2019-03-01/databoxedge.json
+
```
If there are files that should not be in the `all-api-versions` set,
diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/stable/2018-04-01/databricks.json b/specification/databricks/resource-manager/Microsoft.Databricks/stable/2018-04-01/databricks.json
index 3c76405d3f4f..348cc61d5dfa 100644
--- a/specification/databricks/resource-manager/Microsoft.Databricks/stable/2018-04-01/databricks.json
+++ b/specification/databricks/resource-manager/Microsoft.Databricks/stable/2018-04-01/databricks.json
@@ -835,6 +835,10 @@
},
"WorkspaceCustomParameters": {
"properties": {
+ "amlWorkspaceId": {
+ "$ref": "#/definitions/WorkspaceCustomStringParameter",
+ "description": "The ID of a Azure Machine Learning workspace to link with Databricks workspace"
+ },
"customVirtualNetworkId": {
"$ref": "#/definitions/WorkspaceCustomStringParameter",
"description": "The ID of a Virtual Network where this Databricks Cluster should be created"
@@ -858,6 +862,10 @@
"encryption": {
"$ref": "#/definitions/WorkspaceEncryptionParameter",
"description": "Contains the encryption details for Customer-Managed Key (CMK) enabled workspace."
+ },
+ "requireInfrastructureEncryption": {
+ "$ref": "#/definitions/WorkspaceCustomBooleanParameter",
+ "description": "A boolean indicating whether or not the DBFS root file system will be enabled with secondary layer of encryption with platform managed keys for data at rest."
}
},
"description": "Custom Parameters used for Cluster Creation."
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/datafactory.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/datafactory.json
index e46d6181e288..8ac8e38601ed 100644
--- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/datafactory.json
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/datafactory.json
@@ -3098,6 +3098,51 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/triggers/{triggerName}/triggerRuns/{runId}/cancel": {
+ "post": {
+ "tags": [
+ "triggerruns"
+ ],
+ "operationId": "TriggerRuns_Cancel",
+ "x-ms-examples": {
+ "Triggers_Rerun": {
+ "$ref": "./examples/TriggerRuns_Cancel.json"
+ }
+ },
+ "description": "Cancel a single trigger instance by runId.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/factoryName"
+ },
+ {
+ "$ref": "#/parameters/triggerName"
+ },
+ {
+ "$ref": "#/parameters/runId"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "TriggerRun has been cancelled."
+ },
+ "default": {
+ "description": "An error response received from the Azure Data Factory service.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/queryTriggerRuns": {
"post": {
"tags": [
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/LinkedService.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/LinkedService.json
index ceff9b5698d1..a25553b01b00 100644
--- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/LinkedService.json
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/LinkedService.json
@@ -162,6 +162,10 @@
"type": "object",
"description": "The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string)."
},
+ "azureCloudType": {
+ "type": "object",
+ "description": "Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string)."
+ },
"encryptedCredential": {
"type": "string",
"description": "The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string)."
@@ -211,6 +215,10 @@
"type": "object",
"description": "The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string)."
},
+ "azureCloudType": {
+ "type": "object",
+ "description": "Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string)."
+ },
"encryptedCredential": {
"type": "object",
"description": "The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string)."
@@ -307,6 +315,10 @@
"type": "object",
"description": "The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string)."
},
+ "azureCloudType": {
+ "type": "object",
+ "description": "Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string)."
+ },
"encryptedCredential": {
"type": "object",
"description": "The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string)."
@@ -359,6 +371,10 @@
"type": "object",
"description": "The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string)."
},
+ "azureCloudType": {
+ "type": "object",
+ "description": "Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string)."
+ },
"encryptedCredential": {
"type": "object",
"description": "The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string)."
@@ -965,6 +981,10 @@
"description": "The azure file share name. It is required when auth with accountKey/sasToken. Type: string (or Expression with resultType string).",
"type": "object"
},
+ "snapshot": {
+ "description": "The azure file share snapshot version. Type: string (or Expression with resultType string).",
+ "type": "object"
+ },
"encryptedCredential": {
"type": "object",
"description": "The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string)."
@@ -1739,6 +1759,10 @@
"type": "object",
"description": "Specify the application id of your application registered in Azure Active Directory. Type: string (or Expression with resultType string)."
},
+ "azureCloudType": {
+ "type": "object",
+ "description": "Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string)."
+ },
"aadResourceId": {
"type": "object",
"description": "Specify the resource you are requesting authorization to use Directory. Type: string (or Expression with resultType string)."
@@ -2120,6 +2144,10 @@
"type": "object",
"description": "The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string)."
},
+ "azureCloudType": {
+ "type": "object",
+ "description": "Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string)."
+ },
"accountName": {
"type": "object",
"description": "Data Lake Store account name. Type: string (or Expression with resultType string)."
@@ -2184,6 +2212,10 @@
"type": "object",
"description": "The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string)."
},
+ "azureCloudType": {
+ "type": "object",
+ "description": "Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string)."
+ },
"encryptedCredential": {
"type": "object",
"description": "The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string)."
@@ -2568,6 +2600,10 @@
"description": "The tenant information (domain name or tenant ID) used in AadServicePrincipal authentication type under which your application resides.",
"type": "object"
},
+ "azureCloudType": {
+ "type": "object",
+ "description": "Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string)."
+ },
"aadResourceId": {
"description": "The resource you are requesting authorization to use.",
"type": "object"
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json
index 8403e4ac0fcb..e7963bb5c123 100644
--- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json
@@ -1962,6 +1962,14 @@
"baseRequestId": {
"type": "object",
"description": "The ID of request for delta loading. Once it is set, only data with requestId larger than the value of this property will be retrieved. The default value is 0. Type: integer (or Expression with resultType integer )."
+ },
+ "customRfcReadTableFunctionModule": {
+ "type": "object",
+ "description": "Specifies the custom RFC function module that will be used to read data from SAP Table. Type: string (or Expression with resultType string)."
+ },
+ "sapDataColumnDelimiter": {
+ "type": "object",
+ "description": "The single character that will be used as delimiter passed to SAP RFC as well as splitting the output data retrieved. Type: string (or Expression with resultType string)."
}
}
},
@@ -1998,6 +2006,10 @@
"type": "object",
"description": "Specifies the custom RFC function module that will be used to read data from SAP Table. Type: string (or Expression with resultType string)."
},
+ "sapDataColumnDelimiter": {
+ "type": "object",
+ "description": "The single character that will be used as delimiter passed to SAP RFC as well as splitting the output data retrieved. Type: string (or Expression with resultType string)."
+ },
"partitionOption": {
"description": "The partition mechanism that will be used for SAP table read in parallel.",
"type": "string",
@@ -6574,7 +6586,7 @@
},
"reportStatusOnCallBack": {
"type": "object",
- "description": "When set to true, statusCode, output and error in callback request body will be consumed by activity. The activity can be marked as failed by setting statusCode >= 400 in callback request. Default is false. Type: boolean (or Expression with resultType boolean)."
+ "description": "When set to true, statusCode, output and error in callback request body will be consumed by activity. The activity can be marked as failed by setting statusCode >= 400 in callback request. Default is false. Type: boolean (or Expression with resultType boolean)."
}
},
"required": [
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/TriggerRuns_Cancel.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/TriggerRuns_Cancel.json
new file mode 100644
index 000000000000..b06046f294f8
--- /dev/null
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/TriggerRuns_Cancel.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-12345678abc",
+ "resourceGroupName": "exampleResourceGroup",
+ "factoryName": "exampleFactoryName",
+ "triggerName": "exampleTrigger",
+ "runId": "2f7fdb90-5df1-4b8e-ac2f-064cfa58202b",
+ "api-version": "2018-06-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "Date": "Sat, 16 Jun 2018 00:46:24 GMT",
+ "X-Content-Type-Options": "nosniff",
+ "x-ms-ratelimit-remaining-subscription-writes": "1198",
+ "x-ms-request-id": "5aa854a5-7ac0-4c7e-9356-79c657f4e231",
+ "x-ms-correlation-request-id": "5aa854a5-7ac0-4c7e-9356-79c657f4e231"
+ }
+ }
+ }
+}
diff --git a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/DataShare.json b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/DataShare.json
index 07c0de6b472b..734c0df12808 100644
--- a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/DataShare.json
+++ b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/DataShare.json
@@ -16,6 +16,53 @@
"application/json"
],
"paths": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DataShare/accounts": {
+ "get": {
+ "tags": [
+ "Account"
+ ],
+ "summary": "List Accounts in a subscription",
+ "description": "List Accounts in Subscription",
+ "operationId": "Accounts_ListBySubscription",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "Continuation token",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AccountList"
+ }
+ },
+ "default": {
+ "description": "An error response received from the Microsoft.DataShare resource provider.",
+ "schema": {
+ "$ref": "#/definitions/DataShareError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Accounts_ListBySubscription": {
+ "$ref": "./examples/Accounts_ListBySubscription.json"
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}": {
"get": {
"tags": [
@@ -214,53 +261,6 @@
}
}
},
- "/subscriptions/{subscriptionId}/providers/Microsoft.DataShare/accounts": {
- "get": {
- "tags": [
- "Account"
- ],
- "summary": "List Accounts in a subscription",
- "description": "List Accounts in Subscription",
- "operationId": "Accounts_ListBySubscription",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/api-version"
- },
- {
- "name": "$skipToken",
- "in": "query",
- "description": "Continuation token",
- "required": false,
- "type": "string"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/AccountList"
- }
- },
- "default": {
- "description": "An error response received from the Microsoft.DataShare resource provider.",
- "schema": {
- "$ref": "#/definitions/DataShareError"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
- },
- "x-ms-examples": {
- "Accounts_ListBySubscription": {
- "$ref": "./examples/Accounts_ListBySubscription.json"
- }
- }
- }
- },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts": {
"get": {
"tags": [
@@ -311,40 +311,31 @@
}
}
},
- "/providers/Microsoft.DataShare/locations/{location}/RejectInvitation": {
- "post": {
+ "/providers/Microsoft.DataShare/ListInvitations": {
+ "get": {
"tags": [
"ConsumerInvitation"
],
- "summary": "Rejects the invitation identified by invitationId",
- "description": "Reject an invitation",
- "operationId": "ConsumerInvitations_RejectInvitation",
+ "summary": "List the invitations",
+ "description": "Lists invitations",
+ "operationId": "ConsumerInvitations_ListInvitations",
"parameters": [
{
- "name": "location",
- "in": "path",
- "description": "Location of the invitation",
- "required": true,
- "type": "string"
- },
- {
- "name": "invitation",
- "in": "body",
- "description": "An invitation payload",
- "required": true,
- "schema": {
- "$ref": "#/definitions/ConsumerInvitation"
- }
+ "$ref": "#/parameters/api-version"
},
{
- "$ref": "#/parameters/api-version"
+ "name": "$skipToken",
+ "in": "query",
+ "description": "The continuation token",
+ "required": false,
+ "type": "string"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
- "$ref": "#/definitions/ConsumerInvitation"
+ "$ref": "#/definitions/ConsumerInvitationList"
}
},
"default": {
@@ -354,9 +345,12 @@
}
}
},
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
"x-ms-examples": {
- "ConsumerInvitations_RejectInvitation": {
- "$ref": "./examples/ConsumerInvitations_RejectInvitation.json"
+ "ConsumerInvitations_ListInvitations": {
+ "$ref": "./examples/ConsumerInvitations_ListInvitations.json"
}
}
}
@@ -409,31 +403,40 @@
}
}
},
- "/providers/Microsoft.DataShare/ListInvitations": {
- "get": {
+ "/providers/Microsoft.DataShare/locations/{location}/RejectInvitation": {
+ "post": {
"tags": [
"ConsumerInvitation"
],
- "summary": "List the invitations",
- "description": "Lists invitations",
- "operationId": "ConsumerInvitations_ListInvitations",
+ "summary": "Rejects the invitation identified by invitationId",
+ "description": "Reject an invitation",
+ "operationId": "ConsumerInvitations_RejectInvitation",
"parameters": [
{
- "$ref": "#/parameters/api-version"
+ "name": "location",
+ "in": "path",
+ "description": "Location of the invitation",
+ "required": true,
+ "type": "string"
},
{
- "name": "$skipToken",
- "in": "query",
- "description": "The continuation token",
- "required": false,
- "type": "string"
+ "name": "invitation",
+ "in": "body",
+ "description": "An invitation payload",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConsumerInvitation"
+ }
+ },
+ {
+ "$ref": "#/parameters/api-version"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
- "$ref": "#/definitions/ConsumerInvitationList"
+ "$ref": "#/definitions/ConsumerInvitation"
}
},
"default": {
@@ -443,12 +446,9 @@
}
}
},
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
- },
"x-ms-examples": {
- "ConsumerInvitations_ListInvitations": {
- "$ref": "./examples/ConsumerInvitations_ListInvitations.json"
+ "ConsumerInvitations_RejectInvitation": {
+ "$ref": "./examples/ConsumerInvitations_RejectInvitation.json"
}
}
}
@@ -685,6 +685,20 @@
"description": "continuation token",
"required": false,
"type": "string"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "description": "Filters the results using OData syntax.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "description": "Sorts the results using OData syntax.",
+ "required": false,
+ "type": "string"
}
],
"responses": {
@@ -936,6 +950,20 @@
"description": "Continuation token",
"required": false,
"type": "string"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "description": "Filters the results using OData syntax.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "description": "Sorts the results using OData syntax.",
+ "required": false,
+ "type": "string"
}
],
"responses": {
@@ -1178,6 +1206,20 @@
"description": "The continuation token",
"required": false,
"type": "string"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "description": "Filters the results using OData syntax.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "description": "Sorts the results using OData syntax.",
+ "required": false,
+ "type": "string"
}
],
"responses": {
@@ -1241,14 +1283,14 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shares/{shareName}": {
- "get": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shares/{shareName}/listSynchronizationDetails": {
+ "post": {
"tags": [
"Share"
],
- "summary": "Get a specified share",
- "description": "Get a share ",
- "operationId": "Shares_Get",
+ "summary": "List data set level details for a share synchronization",
+ "description": "List synchronization details",
+ "operationId": "Shares_ListSynchronizationDetails",
"parameters": [
{
"$ref": "#/parameters/subscriptionId"
@@ -1262,19 +1304,49 @@
{
"name": "shareName",
"in": "path",
- "description": "The name of the share to retrieve.",
+ "description": "The name of the share.",
"required": true,
"type": "string"
},
+ {
+ "name": "shareSynchronization",
+ "in": "body",
+ "description": "Share Synchronization payload.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ShareSynchronization"
+ }
+ },
{
"$ref": "#/parameters/api-version"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "Continuation token",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "description": "Filters the results using OData syntax.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "description": "Sorts the results using OData syntax.",
+ "required": false,
+ "type": "string"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
- "$ref": "#/definitions/Share"
+ "$ref": "#/definitions/SynchronizationDetailsList"
}
},
"default": {
@@ -1284,82 +1356,24 @@
}
}
},
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
"x-ms-examples": {
- "Shares_Get": {
- "$ref": "./examples/Shares_Get.json"
+ "Shares_ListSynchronizationDetails": {
+ "$ref": "./examples/Shares_ListSynchronizationDetails.json"
}
}
- },
- "put": {
- "tags": [
- "Share"
- ],
- "summary": "Create a share in the given account.",
- "description": "Create a share ",
- "operationId": "Shares_Create",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/resourceGroupName"
- },
- {
- "$ref": "#/parameters/accountName"
- },
- {
- "name": "shareName",
- "in": "path",
- "description": "The name of the share.",
- "required": true,
- "type": "string"
- },
- {
- "name": "share",
- "in": "body",
- "description": "The share payload",
- "required": true,
- "schema": {
- "$ref": "#/definitions/Share"
- }
- },
- {
- "$ref": "#/parameters/api-version"
- }
- ],
- "responses": {
- "201": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/Share"
- }
- },
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/Share"
- }
- },
- "default": {
- "description": "An error response received from the Microsoft.DataShare resource provider.",
- "schema": {
- "$ref": "#/definitions/DataShareError"
- }
- }
- },
- "x-ms-examples": {
- "Shares_Create": {
- "$ref": "./examples/Shares_Create.json"
- }
- }
- },
- "delete": {
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shares/{shareName}/listSynchronizations": {
+ "post": {
"tags": [
"Share"
],
- "summary": "Deletes a share",
- "description": "Delete a share ",
- "operationId": "Shares_Delete",
+ "summary": "List Synchronizations in a share",
+ "description": "List synchronizations of a share",
+ "operationId": "Shares_ListSynchronizations",
"parameters": [
{
"$ref": "#/parameters/subscriptionId"
@@ -1379,61 +1393,25 @@
},
{
"$ref": "#/parameters/api-version"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/OperationResponse"
- }
- },
- "202": {
- "description": "Accepted"
- },
- "204": {
- "description": "Success"
- },
- "default": {
- "description": "An error response received from the Microsoft.DataShare resource provider.",
- "schema": {
- "$ref": "#/definitions/DataShareError"
- }
- }
- },
- "x-ms-long-running-operation": true,
- "x-ms-examples": {
- "Shares_Delete": {
- "$ref": "./examples/Shares_Delete.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shares": {
- "get": {
- "tags": [
- "Share"
- ],
- "summary": "List of available shares under an account.",
- "description": "List shares in an account",
- "operationId": "Shares_ListByAccount",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/resourceGroupName"
},
{
- "$ref": "#/parameters/accountName"
+ "name": "$skipToken",
+ "in": "query",
+ "description": "Continuation token",
+ "required": false,
+ "type": "string"
},
{
- "$ref": "#/parameters/api-version"
+ "name": "$filter",
+ "in": "query",
+ "description": "Filters the results using OData syntax.",
+ "required": false,
+ "type": "string"
},
{
- "name": "$skipToken",
+ "name": "$orderby",
"in": "query",
- "description": "Continuation Token",
+ "description": "Sorts the results using OData syntax.",
"required": false,
"type": "string"
}
@@ -1442,7 +1420,7 @@
"200": {
"description": "Success",
"schema": {
- "$ref": "#/definitions/ShareList"
+ "$ref": "#/definitions/ShareSynchronizationList"
}
},
"default": {
@@ -1456,20 +1434,20 @@
"nextLinkName": "nextLink"
},
"x-ms-examples": {
- "Shares_ListByAccount": {
- "$ref": "./examples/Shares_ListByAccount.json"
+ "Shares_ListSynchronizations": {
+ "$ref": "./examples/Shares_ListSynchronizations.json"
}
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shares/{shareName}/listSynchronizations": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shares/{shareName}/providerShareSubscriptions/{providerShareSubscriptionId}/reinstate": {
"post": {
"tags": [
"Share"
],
- "summary": "List Synchronizations in a share",
- "description": "List synchronizations of a share",
- "operationId": "Shares_ListSynchronizations",
+ "summary": "Reinstate share subscription in a provider share.",
+ "description": "Reinstate share subscription in a provider share",
+ "operationId": "ProviderShareSubscriptions_Reinstate",
"parameters": [
{
"$ref": "#/parameters/subscriptionId"
@@ -1488,21 +1466,21 @@
"type": "string"
},
{
- "$ref": "#/parameters/api-version"
+ "name": "providerShareSubscriptionId",
+ "in": "path",
+ "description": "To locate shareSubscription",
+ "required": true,
+ "type": "string"
},
{
- "name": "$skipToken",
- "in": "query",
- "description": "Continuation token",
- "required": false,
- "type": "string"
+ "$ref": "#/parameters/api-version"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
- "$ref": "#/definitions/ShareSynchronizationList"
+ "$ref": "#/definitions/ProviderShareSubscription"
}
},
"default": {
@@ -1512,24 +1490,21 @@
}
}
},
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
- },
"x-ms-examples": {
- "Shares_ListSynchronizations": {
- "$ref": "./examples/Shares_ListSynchronizations.json"
+ "ProviderShareSubscriptions_Reinstate": {
+ "$ref": "./examples/ProviderShareSubscriptions_Reinstate.json"
}
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shares/{shareName}/listSynchronizationDetails": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shares/{shareName}/providerShareSubscriptions/{providerShareSubscriptionId}/revoke": {
"post": {
"tags": [
"Share"
],
- "summary": "List data set level details for a share synchronization",
- "description": "List synchronization details",
- "operationId": "Shares_ListSynchronizationDetails",
+ "summary": "Revoke share subscription in a provider share.",
+ "description": "Revoke share subscription in a provider share",
+ "operationId": "ProviderShareSubscriptions_Revoke",
"parameters": [
{
"$ref": "#/parameters/subscriptionId"
@@ -1548,30 +1523,27 @@
"type": "string"
},
{
- "name": "shareSynchronization",
- "in": "body",
- "description": "Share Synchronization payload.",
+ "name": "providerShareSubscriptionId",
+ "in": "path",
+ "description": "To locate shareSubscription",
"required": true,
- "schema": {
- "$ref": "#/definitions/ShareSynchronization"
- }
+ "type": "string"
},
{
"$ref": "#/parameters/api-version"
- },
- {
- "name": "$skipToken",
- "in": "query",
- "description": "Continuation token",
- "required": false,
- "type": "string"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
- "$ref": "#/definitions/SynchronizationDetailsList"
+ "$ref": "#/definitions/ProviderShareSubscription"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/ProviderShareSubscription"
}
},
"default": {
@@ -1581,12 +1553,13 @@
}
}
},
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
},
"x-ms-examples": {
- "Shares_ListSynchronizationDetails": {
- "$ref": "./examples/Shares_ListSynchronizationDetails.json"
+ "ProviderShareSubscriptions_Revoke": {
+ "$ref": "./examples/ProviderShareSubscriptions_Revoke.json"
}
}
}
@@ -1708,14 +1681,14 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shares/{shareName}/providerShareSubscriptions/{providerShareSubscriptionId}/revoke": {
- "post": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shares/{shareName}": {
+ "get": {
"tags": [
"Share"
],
- "summary": "Revoke share subscription in a provider share.",
- "description": "Revoke share subscription in a provider share",
- "operationId": "ProviderShareSubscriptions_Revoke",
+ "summary": "Get a specified share",
+ "description": "Get a share ",
+ "operationId": "Shares_Get",
"parameters": [
{
"$ref": "#/parameters/subscriptionId"
@@ -1729,14 +1702,7 @@
{
"name": "shareName",
"in": "path",
- "description": "The name of the share.",
- "required": true,
- "type": "string"
- },
- {
- "name": "providerShareSubscriptionId",
- "in": "path",
- "description": "To locate shareSubscription",
+ "description": "The name of the share to retrieve.",
"required": true,
"type": "string"
},
@@ -1748,13 +1714,7 @@
"200": {
"description": "Success",
"schema": {
- "$ref": "#/definitions/ProviderShareSubscription"
- }
- },
- "202": {
- "description": "Accepted",
- "schema": {
- "$ref": "#/definitions/ProviderShareSubscription"
+ "$ref": "#/definitions/Share"
}
},
"default": {
@@ -1764,25 +1724,19 @@
}
}
},
- "x-ms-long-running-operation": true,
- "x-ms-long-running-operation-options": {
- "final-state-via": "azure-async-operation"
- },
"x-ms-examples": {
- "ProviderShareSubscriptions_Revoke": {
- "$ref": "./examples/ProviderShareSubscriptions_Revoke.json"
+ "Shares_Get": {
+ "$ref": "./examples/Shares_Get.json"
}
}
- }
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shares/{shareName}/providerShareSubscriptions/{providerShareSubscriptionId}/reinstate": {
- "post": {
+ },
+ "put": {
"tags": [
"Share"
],
- "summary": "Reinstate share subscription in a provider share.",
- "description": "Reinstate share subscription in a provider share",
- "operationId": "ProviderShareSubscriptions_Reinstate",
+ "summary": "Create a share in the given account.",
+ "description": "Create a share ",
+ "operationId": "Shares_Create",
"parameters": [
{
"$ref": "#/parameters/subscriptionId"
@@ -1801,21 +1755,29 @@
"type": "string"
},
{
- "name": "providerShareSubscriptionId",
- "in": "path",
- "description": "To locate shareSubscription",
+ "name": "share",
+ "in": "body",
+ "description": "The share payload",
"required": true,
- "type": "string"
+ "schema": {
+ "$ref": "#/definitions/Share"
+ }
},
{
"$ref": "#/parameters/api-version"
}
],
"responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Share"
+ }
+ },
"200": {
"description": "Success",
"schema": {
- "$ref": "#/definitions/ProviderShareSubscription"
+ "$ref": "#/definitions/Share"
}
},
"default": {
@@ -1826,20 +1788,18 @@
}
},
"x-ms-examples": {
- "ProviderShareSubscriptions_Reinstate": {
- "$ref": "./examples/ProviderShareSubscriptions_Reinstate.json"
+ "Shares_Create": {
+ "$ref": "./examples/Shares_Create.json"
}
}
- }
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shareSubscriptions/{shareSubscriptionName}": {
- "get": {
+ },
+ "delete": {
"tags": [
- "ShareSubscription"
+ "Share"
],
- "summary": "Get shareSubscription in an account.",
- "description": "Get a shareSubscription in an account",
- "operationId": "ShareSubscriptions_Get",
+ "summary": "Deletes a share",
+ "description": "Delete a share ",
+ "operationId": "Shares_Delete",
"parameters": [
{
"$ref": "#/parameters/subscriptionId"
@@ -1851,9 +1811,9 @@
"$ref": "#/parameters/accountName"
},
{
- "name": "shareSubscriptionName",
+ "name": "shareName",
"in": "path",
- "description": "The name of the shareSubscription.",
+ "description": "The name of the share.",
"required": true,
"type": "string"
},
@@ -1865,9 +1825,15 @@
"200": {
"description": "Success",
"schema": {
- "$ref": "#/definitions/ShareSubscription"
+ "$ref": "#/definitions/OperationResponse"
}
},
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "Success"
+ },
"default": {
"description": "An error response received from the Microsoft.DataShare resource provider.",
"schema": {
@@ -1875,19 +1841,22 @@
}
}
},
+ "x-ms-long-running-operation": true,
"x-ms-examples": {
- "ShareSubscriptions_Get": {
- "$ref": "./examples/ShareSubscriptions_Get.json"
+ "Shares_Delete": {
+ "$ref": "./examples/Shares_Delete.json"
}
}
- },
- "put": {
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shares": {
+ "get": {
"tags": [
- "ShareSubscription"
+ "Share"
],
- "summary": "Create shareSubscription in an account.",
- "description": "Create a shareSubscription in an account",
- "operationId": "ShareSubscriptions_Create",
+ "summary": "List of available shares under an account.",
+ "description": "List shares in an account",
+ "operationId": "Shares_ListByAccount",
"parameters": [
{
"$ref": "#/parameters/subscriptionId"
@@ -1899,36 +1868,35 @@
"$ref": "#/parameters/accountName"
},
{
- "name": "shareSubscriptionName",
- "in": "path",
- "description": "The name of the shareSubscription.",
- "required": true,
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "Continuation Token",
+ "required": false,
"type": "string"
},
{
- "name": "shareSubscription",
- "in": "body",
- "description": "create parameters for shareSubscription",
- "required": true,
- "schema": {
- "$ref": "#/definitions/ShareSubscription"
- }
+ "name": "$filter",
+ "in": "query",
+ "description": "Filters the results using OData syntax.",
+ "required": false,
+ "type": "string"
},
{
- "$ref": "#/parameters/api-version"
+ "name": "$orderby",
+ "in": "query",
+ "description": "Sorts the results using OData syntax.",
+ "required": false,
+ "type": "string"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
- "$ref": "#/definitions/ShareSubscription"
- }
- },
- "201": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/ShareSubscription"
+ "$ref": "#/definitions/ShareList"
}
},
"default": {
@@ -1938,19 +1906,24 @@
}
}
},
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
"x-ms-examples": {
- "ShareSubscriptions_Create": {
- "$ref": "./examples/ShareSubscriptions_Create.json"
+ "Shares_ListByAccount": {
+ "$ref": "./examples/Shares_ListByAccount.json"
}
}
- },
- "delete": {
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shareSubscriptions/{shareSubscriptionName}/cancelSynchronization": {
+ "post": {
"tags": [
"ShareSubscription"
],
- "summary": "Delete shareSubscription in an account.",
- "description": "Delete a shareSubscription in an account",
- "operationId": "ShareSubscriptions_Delete",
+ "summary": "Request cancellation of a data share snapshot",
+ "description": "Request to cancel a synchronization.",
+ "operationId": "ShareSubscriptions_CancelSynchronization",
"parameters": [
{
"$ref": "#/parameters/subscriptionId"
@@ -1969,71 +1942,29 @@
"type": "string"
},
{
- "$ref": "#/parameters/api-version"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/OperationResponse"
- }
- },
- "202": {
- "description": "Accepted"
- },
- "204": {
- "description": "Success"
- },
- "default": {
- "description": "An error response received from the Microsoft.DataShare resource provider.",
+ "name": "shareSubscriptionSynchronization",
+ "in": "body",
+ "description": "Share Subscription Synchronization payload.",
+ "required": true,
"schema": {
- "$ref": "#/definitions/DataShareError"
+ "$ref": "#/definitions/ShareSubscriptionSynchronization"
}
- }
- },
- "x-ms-long-running-operation": true,
- "x-ms-examples": {
- "ShareSubscriptions_Delete": {
- "$ref": "./examples/ShareSubscriptions_Delete.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shareSubscriptions": {
- "get": {
- "tags": [
- "ShareSubscription"
- ],
- "summary": "List of available share subscriptions under an account.",
- "description": "List share subscriptions in an account",
- "operationId": "ShareSubscriptions_ListByAccount",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/resourceGroupName"
- },
- {
- "$ref": "#/parameters/accountName"
},
{
"$ref": "#/parameters/api-version"
- },
- {
- "name": "$skipToken",
- "in": "query",
- "description": "Continuation Token",
- "required": false,
- "type": "string"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
- "$ref": "#/definitions/ShareSubscriptionList"
+ "$ref": "#/definitions/ShareSubscriptionSynchronization"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/ShareSubscriptionSynchronization"
}
},
"default": {
@@ -2043,12 +1974,13 @@
}
}
},
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
},
"x-ms-examples": {
- "ShareSubscriptions_ListByAccount": {
- "$ref": "./examples/ShareSubscriptions_ListByAccount.json"
+ "ShareSubscriptions_CancelSynchronization": {
+ "$ref": "./examples/ShareSubscriptions_CancelSynchronization.json"
}
}
}
@@ -2173,14 +2105,14 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shareSubscriptions/{shareSubscriptionName}/listSynchronizations": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shareSubscriptions/{shareSubscriptionName}/listSynchronizationDetails": {
"post": {
"tags": [
"ShareSubscription"
],
- "summary": "List Synchronizations in a share subscription.",
- "description": "List synchronizations of a share subscription",
- "operationId": "ShareSubscriptions_ListSynchronizations",
+ "summary": "List data set level details for a share subscription synchronization",
+ "description": "List synchronization details",
+ "operationId": "ShareSubscriptions_ListSynchronizationDetails",
"parameters": [
{
"$ref": "#/parameters/subscriptionId"
@@ -2198,6 +2130,15 @@
"required": true,
"type": "string"
},
+ {
+ "name": "shareSubscriptionSynchronization",
+ "in": "body",
+ "description": "Share Subscription Synchronization payload.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ShareSubscriptionSynchronization"
+ }
+ },
{
"$ref": "#/parameters/api-version"
},
@@ -2207,13 +2148,27 @@
"description": "Continuation token",
"required": false,
"type": "string"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "description": "Filters the results using OData syntax.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "description": "Sorts the results using OData syntax.",
+ "required": false,
+ "type": "string"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
- "$ref": "#/definitions/ShareSubscriptionSynchronizationList"
+ "$ref": "#/definitions/SynchronizationDetailsList"
}
},
"default": {
@@ -2227,20 +2182,20 @@
"nextLinkName": "nextLink"
},
"x-ms-examples": {
- "ShareSubscriptions_ListSynchronizations": {
- "$ref": "./examples/ShareSubscriptions_ListSynchronizations.json"
+ "ShareSubscriptions_ListSynchronizationDetails": {
+ "$ref": "./examples/ShareSubscriptions_ListSynchronizationDetails.json"
}
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shareSubscriptions/{shareSubscriptionName}/listSynchronizationDetails": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shareSubscriptions/{shareSubscriptionName}/listSynchronizations": {
"post": {
"tags": [
"ShareSubscription"
],
- "summary": "List data set level details for a share subscription synchronization",
- "description": "List synchronization details",
- "operationId": "ShareSubscriptions_ListSynchronizationDetails",
+ "summary": "List Synchronizations in a share subscription.",
+ "description": "List synchronizations of a share subscription",
+ "operationId": "ShareSubscriptions_ListSynchronizations",
"parameters": [
{
"$ref": "#/parameters/subscriptionId"
@@ -2258,15 +2213,6 @@
"required": true,
"type": "string"
},
- {
- "name": "shareSubscriptionSynchronization",
- "in": "body",
- "description": "Share Subscription Synchronization payload.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/ShareSubscriptionSynchronization"
- }
- },
{
"$ref": "#/parameters/api-version"
},
@@ -2276,13 +2222,27 @@
"description": "Continuation token",
"required": false,
"type": "string"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "description": "Filters the results using OData syntax.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "description": "Sorts the results using OData syntax.",
+ "required": false,
+ "type": "string"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
- "$ref": "#/definitions/SynchronizationDetailsList"
+ "$ref": "#/definitions/ShareSubscriptionSynchronizationList"
}
},
"default": {
@@ -2296,8 +2256,8 @@
"nextLinkName": "nextLink"
},
"x-ms-examples": {
- "ShareSubscriptions_ListSynchronizationDetails": {
- "$ref": "./examples/ShareSubscriptions_ListSynchronizationDetails.json"
+ "ShareSubscriptions_ListSynchronizations": {
+ "$ref": "./examples/ShareSubscriptions_ListSynchronizations.json"
}
}
}
@@ -2371,14 +2331,14 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shareSubscriptions/{shareSubscriptionName}/cancelSynchronization": {
- "post": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shareSubscriptions/{shareSubscriptionName}": {
+ "get": {
"tags": [
"ShareSubscription"
],
- "summary": "Request cancellation of a data share snapshot",
- "description": "Request to cancel a synchronization.",
- "operationId": "ShareSubscriptions_CancelSynchronization",
+ "summary": "Get shareSubscription in an account.",
+ "description": "Get a shareSubscription in an account",
+ "operationId": "ShareSubscriptions_Get",
"parameters": [
{
"$ref": "#/parameters/subscriptionId"
@@ -2397,12 +2357,60 @@
"type": "string"
},
{
- "name": "shareSubscriptionSynchronization",
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ShareSubscription"
+ }
+ },
+ "default": {
+ "description": "An error response received from the Microsoft.DataShare resource provider.",
+ "schema": {
+ "$ref": "#/definitions/DataShareError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ShareSubscriptions_Get": {
+ "$ref": "./examples/ShareSubscriptions_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ShareSubscription"
+ ],
+ "summary": "Create shareSubscription in an account.",
+ "description": "Create a shareSubscription in an account",
+ "operationId": "ShareSubscriptions_Create",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/accountName"
+ },
+ {
+ "name": "shareSubscriptionName",
+ "in": "path",
+ "description": "The name of the shareSubscription.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "shareSubscription",
"in": "body",
- "description": "Share Subscription Synchronization payload.",
+ "description": "create parameters for shareSubscription",
"required": true,
"schema": {
- "$ref": "#/definitions/ShareSubscriptionSynchronization"
+ "$ref": "#/definitions/ShareSubscription"
}
},
{
@@ -2413,15 +2421,69 @@
"200": {
"description": "Success",
"schema": {
- "$ref": "#/definitions/ShareSubscriptionSynchronization"
+ "$ref": "#/definitions/ShareSubscription"
}
},
- "202": {
- "description": "Accepted",
+ "201": {
+ "description": "Success",
"schema": {
- "$ref": "#/definitions/ShareSubscriptionSynchronization"
+ "$ref": "#/definitions/ShareSubscription"
+ }
+ },
+ "default": {
+ "description": "An error response received from the Microsoft.DataShare resource provider.",
+ "schema": {
+ "$ref": "#/definitions/DataShareError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ShareSubscriptions_Create": {
+ "$ref": "./examples/ShareSubscriptions_Create.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ShareSubscription"
+ ],
+ "summary": "Delete shareSubscription in an account.",
+ "description": "Delete a shareSubscription in an account",
+ "operationId": "ShareSubscriptions_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/accountName"
+ },
+ {
+ "name": "shareSubscriptionName",
+ "in": "path",
+ "description": "The name of the shareSubscription.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/OperationResponse"
}
},
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "Success"
+ },
"default": {
"description": "An error response received from the Microsoft.DataShare resource provider.",
"schema": {
@@ -2430,12 +2492,76 @@
}
},
"x-ms-long-running-operation": true,
- "x-ms-long-running-operation-options": {
- "final-state-via": "azure-async-operation"
+ "x-ms-examples": {
+ "ShareSubscriptions_Delete": {
+ "$ref": "./examples/ShareSubscriptions_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shareSubscriptions": {
+ "get": {
+ "tags": [
+ "ShareSubscription"
+ ],
+ "summary": "List of available share subscriptions under an account.",
+ "description": "List share subscriptions in an account",
+ "operationId": "ShareSubscriptions_ListByAccount",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/accountName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "Continuation Token",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "description": "Filters the results using OData syntax.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "description": "Sorts the results using OData syntax.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ShareSubscriptionList"
+ }
+ },
+ "default": {
+ "description": "An error response received from the Microsoft.DataShare resource provider.",
+ "schema": {
+ "$ref": "#/definitions/DataShareError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
},
"x-ms-examples": {
- "ShareSubscriptions_CancelSynchronization": {
- "$ref": "./examples/ShareSubscriptions_CancelSynchronization.json"
+ "ShareSubscriptions_ListByAccount": {
+ "$ref": "./examples/ShareSubscriptions_ListByAccount.json"
}
}
}
@@ -2941,6 +3067,27 @@
}
},
"definitions": {
+ "AccountList": {
+ "description": "List response for get Accounts.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "nextLink": {
+ "description": "The Url of next result page.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Account"
+ }
+ }
+ }
+ },
"Account": {
"description": "An account data transfer object.",
"required": [
@@ -3072,19 +3219,6 @@
}
}
},
- "AccountUpdateParameters": {
- "description": "Update parameters for accounts",
- "type": "object",
- "properties": {
- "tags": {
- "description": "Tags on the azure resource.",
- "type": "object",
- "additionalProperties": {
- "type": "string"
- }
- }
- }
- },
"OperationResponse": {
"description": "Response for long running operation",
"required": [
@@ -3124,8 +3258,21 @@
}
}
},
- "AccountList": {
- "description": "List response for get Accounts.",
+ "AccountUpdateParameters": {
+ "description": "Update parameters for accounts",
+ "type": "object",
+ "properties": {
+ "tags": {
+ "description": "Tags on the azure resource.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "ConsumerInvitationList": {
+ "description": "List response for get InvitationList",
"required": [
"value"
],
@@ -3140,7 +3287,7 @@
"uniqueItems": false,
"type": "array",
"items": {
- "$ref": "#/definitions/Account"
+ "$ref": "#/definitions/ConsumerInvitation"
}
}
}
@@ -3255,38 +3402,17 @@
}
}
},
- "ConsumerInvitationList": {
- "description": "List response for get InvitationList",
+ "DataSet": {
+ "description": "A DataSet data transfer object.",
"required": [
- "value"
+ "kind"
],
"type": "object",
- "properties": {
- "nextLink": {
- "description": "The Url of next result page.",
- "type": "string"
- },
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/ConsumerInvitation"
- }
- }
- }
- },
- "DataSet": {
- "description": "A DataSet data transfer object.",
- "required": [
- "kind"
- ],
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/ProxyDto"
- }
- ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyDto"
+ }
+ ],
"properties": {
"kind": {
"description": "Kind of data set.",
@@ -3679,122 +3805,6 @@
}
}
},
- "Share": {
- "description": "A share data transfer object.",
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/ProxyDto"
- }
- ],
- "properties": {
- "properties": {
- "$ref": "#/definitions/ShareProperties",
- "description": "Properties on the share",
- "x-ms-client-flatten": true
- }
- }
- },
- "ShareProperties": {
- "description": "Share property bag.",
- "type": "object",
- "properties": {
- "createdAt": {
- "format": "date-time",
- "description": "Time at which the share was created.",
- "type": "string",
- "readOnly": true
- },
- "description": {
- "description": "Share description.",
- "type": "string"
- },
- "provisioningState": {
- "description": "Gets or sets the provisioning state",
- "enum": [
- "Succeeded",
- "Creating",
- "Deleting",
- "Moving",
- "Failed"
- ],
- "type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "provisioningState",
- "modelAsString": true
- }
- },
- "shareKind": {
- "description": "Share kind.",
- "enum": [
- "CopyBased",
- "InPlace"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "shareKind",
- "modelAsString": true
- }
- },
- "terms": {
- "description": "Share terms.",
- "type": "string"
- },
- "userEmail": {
- "description": "Email of the user who created the resource",
- "type": "string",
- "readOnly": true
- },
- "userName": {
- "description": "Name of the user who created the resource",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "ShareList": {
- "description": "List response for get Shares.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "nextLink": {
- "description": "The Url of next result page.",
- "type": "string"
- },
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/Share"
- }
- }
- }
- },
- "ShareSynchronizationList": {
- "description": "List response for get ShareSynchronization.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "nextLink": {
- "description": "The Url of next result page.",
- "type": "string"
- },
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/ShareSynchronization"
- }
- }
- }
- },
"ShareSynchronization": {
"description": "A ShareSynchronization data transfer object.",
"type": "object",
@@ -3983,6 +3993,27 @@
}
}
},
+ "ShareSynchronizationList": {
+ "description": "List response for get ShareSynchronization.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "nextLink": {
+ "description": "The Url of next result page.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ShareSynchronization"
+ }
+ }
+ }
+ },
"ProviderShareSubscription": {
"description": "A provider side share subscription data transfer object.",
"type": "object",
@@ -4083,11 +4114,8 @@
}
}
},
- "ShareSubscription": {
- "description": "A share subscription data transfer object.",
- "required": [
- "properties"
- ],
+ "Share": {
+ "description": "A share data transfer object.",
"type": "object",
"allOf": [
{
@@ -4096,47 +4124,28 @@
],
"properties": {
"properties": {
- "$ref": "#/definitions/ShareSubscriptionProperties",
- "description": "Properties on the share subscription",
+ "$ref": "#/definitions/ShareProperties",
+ "description": "Properties on the share",
"x-ms-client-flatten": true
}
}
},
- "ShareSubscriptionProperties": {
- "description": "Share subscription property bag.",
- "required": [
- "invitationId",
- "sourceShareLocation"
- ],
+ "ShareProperties": {
+ "description": "Share property bag.",
"type": "object",
"properties": {
"createdAt": {
"format": "date-time",
- "description": "Time at which the share subscription was created.",
+ "description": "Time at which the share was created.",
"type": "string",
"readOnly": true
},
- "invitationId": {
- "description": "The invitation id.",
+ "description": {
+ "description": "Share description.",
"type": "string"
},
- "providerEmail": {
- "description": "Email of the provider who created the resource",
- "type": "string",
- "readOnly": true
- },
- "providerName": {
- "description": "Name of the provider who created the resource",
- "type": "string",
- "readOnly": true
- },
- "providerTenantName": {
- "description": "Tenant name of the provider who created the resource",
- "type": "string",
- "readOnly": true
- },
"provisioningState": {
- "description": "Provisioning state of the share subscription",
+ "description": "Gets or sets the provisioning state",
"enum": [
"Succeeded",
"Creating",
@@ -4151,51 +4160,20 @@
"modelAsString": true
}
},
- "shareDescription": {
- "description": "Description of share",
- "type": "string",
- "readOnly": true
- },
"shareKind": {
- "description": "Kind of share",
+ "description": "Share kind.",
"enum": [
"CopyBased",
"InPlace"
],
"type": "string",
- "readOnly": true,
"x-ms-enum": {
"name": "shareKind",
"modelAsString": true
}
},
- "shareName": {
- "description": "Name of the share",
- "type": "string",
- "readOnly": true
- },
- "shareSubscriptionStatus": {
- "description": "Gets the current status of share subscription.",
- "enum": [
- "Active",
- "Revoked",
- "SourceDeleted",
- "Revoking"
- ],
- "type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "shareSubscriptionStatus",
- "modelAsString": true
- }
- },
- "shareTerms": {
- "description": "Terms of a share",
- "type": "string",
- "readOnly": true
- },
- "sourceShareLocation": {
- "description": "Source share location.",
+ "terms": {
+ "description": "Share terms.",
"type": "string"
},
"userEmail": {
@@ -4210,8 +4188,8 @@
}
}
},
- "ShareSubscriptionList": {
- "description": "List response for get ShareSubscription.",
+ "ShareList": {
+ "description": "List response for get Shares.",
"required": [
"value"
],
@@ -4226,7 +4204,61 @@
"uniqueItems": false,
"type": "array",
"items": {
- "$ref": "#/definitions/ShareSubscription"
+ "$ref": "#/definitions/Share"
+ }
+ }
+ }
+ },
+ "ShareSubscriptionSynchronization": {
+ "description": "A ShareSubscriptionSynchronization data transfer object.",
+ "required": [
+ "synchronizationId"
+ ],
+ "type": "object",
+ "properties": {
+ "durationMs": {
+ "format": "int32",
+ "description": "Synchronization duration",
+ "type": "integer",
+ "readOnly": true
+ },
+ "endTime": {
+ "format": "date-time",
+ "description": "End time of synchronization",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "message of Synchronization",
+ "type": "string",
+ "readOnly": true
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "start time of synchronization",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Raw Status",
+ "type": "string",
+ "readOnly": true
+ },
+ "synchronizationId": {
+ "description": "Synchronization id",
+ "type": "string"
+ },
+ "synchronizationMode": {
+ "description": "Synchronization Mode",
+ "enum": [
+ "Incremental",
+ "FullSync"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "synchronizationMode",
+ "modelAsString": true
}
}
}
@@ -4380,74 +4412,168 @@
}
}
},
- "ShareSubscriptionSynchronization": {
- "description": "A ShareSubscriptionSynchronization data transfer object.",
+ "Synchronize": {
+ "description": "Payload for the synchronizing the data.",
+ "type": "object",
+ "properties": {
+ "synchronizationMode": {
+ "description": "Mode of synchronization used in triggers and snapshot sync. Incremental by default",
+ "enum": [
+ "Incremental",
+ "FullSync"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "synchronizationMode",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "ShareSubscription": {
+ "description": "A share subscription data transfer object.",
"required": [
- "synchronizationId"
+ "properties"
],
"type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyDto"
+ }
+ ],
"properties": {
- "durationMs": {
- "format": "int32",
- "description": "Synchronization duration",
- "type": "integer",
+ "properties": {
+ "$ref": "#/definitions/ShareSubscriptionProperties",
+ "description": "Properties on the share subscription",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "ShareSubscriptionProperties": {
+ "description": "Share subscription property bag.",
+ "required": [
+ "invitationId",
+ "sourceShareLocation"
+ ],
+ "type": "object",
+ "properties": {
+ "createdAt": {
+ "format": "date-time",
+ "description": "Time at which the share subscription was created.",
+ "type": "string",
"readOnly": true
},
- "endTime": {
- "format": "date-time",
- "description": "End time of synchronization",
+ "invitationId": {
+ "description": "The invitation id.",
+ "type": "string"
+ },
+ "providerEmail": {
+ "description": "Email of the provider who created the resource",
"type": "string",
"readOnly": true
},
- "message": {
- "description": "message of Synchronization",
+ "providerName": {
+ "description": "Name of the provider who created the resource",
"type": "string",
"readOnly": true
},
- "startTime": {
- "format": "date-time",
- "description": "start time of synchronization",
+ "providerTenantName": {
+ "description": "Tenant name of the provider who created the resource",
"type": "string",
"readOnly": true
},
- "status": {
- "description": "Raw Status",
+ "provisioningState": {
+ "description": "Provisioning state of the share subscription",
+ "enum": [
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Moving",
+ "Failed"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "provisioningState",
+ "modelAsString": true
+ }
+ },
+ "shareDescription": {
+ "description": "Description of share",
"type": "string",
"readOnly": true
},
- "synchronizationId": {
- "description": "Synchronization id",
- "type": "string"
+ "shareKind": {
+ "description": "Kind of share",
+ "enum": [
+ "CopyBased",
+ "InPlace"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "shareKind",
+ "modelAsString": true
+ }
},
- "synchronizationMode": {
- "description": "Synchronization Mode",
+ "shareName": {
+ "description": "Name of the share",
+ "type": "string",
+ "readOnly": true
+ },
+ "shareSubscriptionStatus": {
+ "description": "Gets the current status of share subscription.",
"enum": [
- "Incremental",
- "FullSync"
+ "Active",
+ "Revoked",
+ "SourceDeleted",
+ "Revoking"
],
"type": "string",
"readOnly": true,
"x-ms-enum": {
- "name": "synchronizationMode",
+ "name": "shareSubscriptionStatus",
"modelAsString": true
}
+ },
+ "shareTerms": {
+ "description": "Terms of a share",
+ "type": "string",
+ "readOnly": true
+ },
+ "sourceShareLocation": {
+ "description": "Source share location.",
+ "type": "string"
+ },
+ "userEmail": {
+ "description": "Email of the user who created the resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "userName": {
+ "description": "Name of the user who created the resource",
+ "type": "string",
+ "readOnly": true
}
}
},
- "Synchronize": {
- "description": "Payload for the synchronizing the data.",
+ "ShareSubscriptionList": {
+ "description": "List response for get ShareSubscription.",
+ "required": [
+ "value"
+ ],
"type": "object",
"properties": {
- "synchronizationMode": {
- "description": "Mode of synchronization used in triggers and snapshot sync. Incremental by default",
- "enum": [
- "Incremental",
- "FullSync"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "synchronizationMode",
- "modelAsString": true
+ "nextLink": {
+ "description": "The Url of next result page.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ShareSubscription"
}
}
}
diff --git a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/DataSetMappings_ListByShareSubscription.json b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/DataSetMappings_ListByShareSubscription.json
index 766f8839e019..28aca6471ed5 100644
--- a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/DataSetMappings_ListByShareSubscription.json
+++ b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/DataSetMappings_ListByShareSubscription.json
@@ -4,7 +4,9 @@
"resourceGroupName": "SampleResourceGroup",
"accountName": "Account1",
"shareSubscriptionName": "ShareSubscription1",
- "api-version": "2019-11-01"
+ "api-version": "2019-11-01",
+ "filter": "name eq 'DatasetMapping1'",
+ "orderBy": "name"
},
"responses": {
"200": {
diff --git a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/DataSets_Delete.json b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/DataSets_Delete.json
index 641ad9cf412d..eb9de395544c 100644
--- a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/DataSets_Delete.json
+++ b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/DataSets_Delete.json
@@ -5,7 +5,7 @@
"accountName": "Account1",
"shareName": "Share1",
"dataSetName": "Dataset1",
- "api-version": "2018-11-01-preview"
+ "api-version": "2019-11-01"
},
"responses": {
"200": {
diff --git a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/DataSets_ListByShare.json b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/DataSets_ListByShare.json
index 36c4e851679d..a0052319a8cf 100644
--- a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/DataSets_ListByShare.json
+++ b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/DataSets_ListByShare.json
@@ -4,7 +4,9 @@
"resourceGroupName": "SampleResourceGroup",
"accountName": "Account1",
"shareName": "Share1",
- "api-version": "2019-11-01"
+ "api-version": "2019-11-01",
+ "filter": "name eq 'Dataset1'",
+ "orderBy": "name"
},
"responses": {
"200": {
diff --git a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Invitations_ListByShare.json b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Invitations_ListByShare.json
index 70614c24e56c..95763c961d21 100644
--- a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Invitations_ListByShare.json
+++ b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Invitations_ListByShare.json
@@ -4,7 +4,9 @@
"resourceGroupName": "SampleResourceGroup",
"accountName": "Account1",
"shareName": "Share1",
- "api-version": "2019-11-01"
+ "api-version": "2019-11-01",
+ "filter": "properties/targetEmail eq 'johnsmith@microsoft.com'",
+ "orderBy": "properties/sentAt"
},
"responses": {
"200": {
diff --git a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/ShareSubscriptions_ListByAccount.json b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/ShareSubscriptions_ListByAccount.json
index 07bb2915ddbb..7da7cb2609d4 100644
--- a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/ShareSubscriptions_ListByAccount.json
+++ b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/ShareSubscriptions_ListByAccount.json
@@ -3,7 +3,9 @@
"subscriptionId": "12345678-1234-1234-12345678abc",
"resourceGroupName": "SampleResourceGroup",
"accountName": "Account1",
- "api-version": "2019-11-01"
+ "api-version": "2019-11-01",
+ "filter": "name eq 'ShareSubscription1'",
+ "orderBy": "properties/createdAt"
},
"responses": {
"200": {
@@ -40,7 +42,7 @@
"properties": {
"userName": "John Smith",
"userEmail": "john.smith@microsoft.com",
- "createdAt": "2019-01-17T22:32:36.8185016Z",
+ "createdAt": "2020-12-17T22:32:36.8185016Z",
"shareSubscriptionStatus": "Active",
"invitationId": "4256e2cf-0f82-4865-961b-12f83333f487",
"sourceShareLocation": "eastus2",
diff --git a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/ShareSubscriptions_ListSynchronizationDetails.json b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/ShareSubscriptions_ListSynchronizationDetails.json
index efc6af9f2b8f..f36e62ee1d83 100644
--- a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/ShareSubscriptions_ListSynchronizationDetails.json
+++ b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/ShareSubscriptions_ListSynchronizationDetails.json
@@ -7,7 +7,9 @@
"shareSubscriptionSynchronization": {
"synchronizationId": "7d0536a6-3fa5-43de-b152-3d07c4f6b2bb"
},
- "api-version": "2019-11-01"
+ "api-version": "2019-11-01",
+ "filter": "name eq 'datasetmapping1'",
+ "orderBy": "durationMs"
},
"responses": {
"200": {
@@ -25,7 +27,7 @@
"startTime": "2018-11-14T04:47:52.9614956Z",
"durationMs": 2000,
"status": "Completed",
- "name": "dataset1",
+ "name": "datasetmapping1",
"dataSetId": "7d0536a6-3fa5-43de-b152-3d07c4f6b2bb",
"dataSetType": "Blob"
}
diff --git a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/ShareSubscriptions_ListSynchronizations.json b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/ShareSubscriptions_ListSynchronizations.json
index 362b27eacc89..616d3a6bea85 100644
--- a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/ShareSubscriptions_ListSynchronizations.json
+++ b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/ShareSubscriptions_ListSynchronizations.json
@@ -4,7 +4,8 @@
"resourceGroupName": "SampleResourceGroup",
"accountName": "Account1",
"shareSubscriptionName": "ShareSub1",
- "api-version": "2019-11-01"
+ "api-version": "2019-11-01",
+ "orderBy": "durationMs"
},
"responses": {
"200": {
diff --git a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Shares_ListByAccount.json b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Shares_ListByAccount.json
index 531af3d38a42..4aef3c8dc324 100644
--- a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Shares_ListByAccount.json
+++ b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Shares_ListByAccount.json
@@ -3,7 +3,9 @@
"subscriptionId": "12345678-1234-1234-12345678abc",
"resourceGroupName": "SampleResourceGroup",
"accountName": "Account1",
- "api-version": "2019-11-01"
+ "api-version": "2019-11-01",
+ "filter": "name eq 'Share1'",
+ "orderBy": "properties/createdAt"
},
"responses": {
"200": {
@@ -35,7 +37,7 @@
"terms": "Confidential",
"shareKind": "CopyBased",
"userName": "John Smith",
- "createdAt": "2018-11-14T06:15:15.6818898Z",
+ "createdAt": "2019-10-14T06:15:15.6818898Z",
"userEmail": "johnsmith@microsoft.com"
},
"id": "/subscriptions/433a8dfd-e5d5-4e77-ad86-90acdc75eb1a/resourceGroups/SampleResourceGroup/providers/Microsoft.DataShare/accounts/Account1/shares/Share1",
diff --git a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Shares_ListSynchronizationDetails.json b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Shares_ListSynchronizationDetails.json
index 0d5883c6bea3..b320c7278776 100644
--- a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Shares_ListSynchronizationDetails.json
+++ b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Shares_ListSynchronizationDetails.json
@@ -7,7 +7,9 @@
"shareSynchronization": {
"synchronizationId": "7d0536a6-3fa5-43de-b152-3d07c4f6b2bb"
},
- "api-version": "2019-11-01"
+ "api-version": "2019-11-01",
+ "filter": "name eq 'dataset1'",
+ "orderBy": "durationMs"
},
"responses": {
"200": {
@@ -28,6 +30,15 @@
"name": "dataset1",
"dataSetId": "7d0536a6-3fa5-43de-b152-3d07c4f6b2bb",
"dataSetType": "Blob"
+ },
+ {
+ "endTime": "2019-10-14T04:47:52.9614956Z",
+ "startTime": "2019-10-14T04:47:52.9614956Z",
+ "durationMs": 2000,
+ "status": "Completed",
+ "name": "dataset2",
+ "dataSetId": "7d0536a6-3fa5-43de-b152-3d07c4f6b2bb",
+ "dataSetType": "Blob"
}
]
}
diff --git a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Shares_ListSynchronizations.json b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Shares_ListSynchronizations.json
index 633e2acd8f3d..88b0b7efaaa2 100644
--- a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Shares_ListSynchronizations.json
+++ b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/examples/Shares_ListSynchronizations.json
@@ -4,7 +4,8 @@
"resourceGroupName": "SampleResourceGroup",
"accountName": "Account1",
"shareName": "Share1",
- "api-version": "2019-11-01"
+ "api-version": "2019-11-01",
+ "filter": "consumerTenantName eq 'nda'"
},
"responses": {
"200": {
diff --git a/specification/datashare/resource-manager/readme.md b/specification/datashare/resource-manager/readme.md
index 5d1040195bd8..cf5fd2ab8e52 100644
--- a/specification/datashare/resource-manager/readme.md
+++ b/specification/datashare/resource-manager/readme.md
@@ -63,6 +63,7 @@ swagger-to-sdk:
- repo: azure-sdk-for-python
- repo: azure-sdk-for-go
- repo: azure-cli-extensions
+ - repo: azure-sdk-for-js
```
diff --git a/specification/digitaltwins/data-plane/readme.md b/specification/digitaltwins/data-plane/readme.md
index f39f368708dd..c5a96a455705 100644
--- a/specification/digitaltwins/data-plane/readme.md
+++ b/specification/digitaltwins/data-plane/readme.md
@@ -77,3 +77,28 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
## CSharp
See configuration in [readme.csharp.md](./readme.csharp.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.DigitalTwins/preview/2020-05-31-preview/digitaltwins.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
+```
+
diff --git a/specification/frontdoor/resource-manager/readme.md b/specification/frontdoor/resource-manager/readme.md
index 3e959cde8d90..70eef2f16531 100644
--- a/specification/frontdoor/resource-manager/readme.md
+++ b/specification/frontdoor/resource-manager/readme.md
@@ -272,9 +272,9 @@ input-file:
- $(this-folder)/Microsoft.Network/stable/2020-05-01/network.json
- $(this-folder)/Microsoft.Network/stable/2019-11-01/networkexperiment.json
- $(this-folder)/Microsoft.Network/stable/2020-05-01/frontdoor.json
+ - $(this-folder)/Microsoft.Network/stable/2020-04-01/webapplicationfirewall.json
- $(this-folder)/Microsoft.Network/stable/2020-04-01/network.json
- $(this-folder)/Microsoft.Network/stable/2020-04-01/frontdoor.json
- - $(this-folder)/Microsoft.Network/stable/2020-04-01/webapplicationfirewall.json
- $(this-folder)/Microsoft.Network/stable/2020-01-01/network.json
- $(this-folder)/Microsoft.Network/stable/2020-01-01/frontdoor.json
- $(this-folder)/Microsoft.Network/stable/2019-10-01/webapplicationfirewall.json
diff --git a/specification/hybridnetwork/resource-manager/readme.go.md b/specification/hybridnetwork/resource-manager/readme.go.md
index d1f3880de6c2..31aa99b2c827 100644
--- a/specification/hybridnetwork/resource-manager/readme.go.md
+++ b/specification/hybridnetwork/resource-manager/readme.go.md
@@ -8,12 +8,19 @@ go:
clear-output-folder: true
```
+### Go multi-api
+
+``` yaml $(go) && $(multiapi)
+batch:
+ - tag: package-2020-01-01-preview
+```
+
### Tag: package-2020-01-01-preview and go
These settings apply only when `--tag=package-2020-01-01-preview --go` is specified on the command line.
Please also specify `--go-sdks-folder=`.
```yaml $(tag) == 'package-2020-01-01-preview' && $(go)
-namespace: Microsoft.HybridNetwork
-output-folder: $(go-sdk-folder)/services/preview/$(namespace)/management/2020-01-01-preview/$(namespace)
+namespace: hybridnetwork
+output-folder: $(go-sdk-folder)/services/preview/management/2020-01-01-preview/$(namespace)
```
\ No newline at end of file
diff --git a/specification/hybridnetwork/resource-manager/readme.md b/specification/hybridnetwork/resource-manager/readme.md
index a05587f655d5..e409f06d6d4a 100644
--- a/specification/hybridnetwork/resource-manager/readme.md
+++ b/specification/hybridnetwork/resource-manager/readme.md
@@ -80,3 +80,33 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
## CSharp
See configuration in [readme.csharp.md](./readme.csharp.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.HybridNetwork/preview/2020-01-01-preview/common.json
+ - $(this-folder)/Microsoft.HybridNetwork/preview/2020-01-01-preview/virtualNetworkFunction.json
+ - $(this-folder)/Microsoft.HybridNetwork/preview/2020-01-01-preview/device.json
+ - $(this-folder)/Microsoft.HybridNetwork/preview/2020-01-01-preview/operations.json
+ - $(this-folder)/Microsoft.HybridNetwork/preview/2020-01-01-preview/vendor.json
+ - $(this-folder)/Microsoft.HybridNetwork/preview/2020-01-01-preview/virtualNetworkFunctionVendors.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
+```
+
diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/application_get.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/application_get.json
index 92cead192a9b..380ce4ca0668 100644
--- a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/application_get.json
+++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/application_get.json
@@ -2,8 +2,6 @@
"title": "Get an application by Id",
"description": "Get an application by Id.",
"parameters": {
- "centralDnsSuffixInPath": "azureiotcentral.com",
- "subdomain": "appsubdomain",
"application_id": "194e282c-290a-4858-b68f-4274690697fc"
},
"responses": {
diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/application_list.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/application_list.json
index f32e2b04e93d..e90e0ecd4bac 100644
--- a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/application_list.json
+++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/application_list.json
@@ -1,10 +1,7 @@
{
"title": "List applications",
"description": "List applications that are accessible to the signed-in user.",
- "parameters": {
- "centralDnsSuffixInPath": "azureiotcentral.com",
- "subdomain": "appsubdomain"
- },
+ "parameters": {},
"responses": {
"200": {
"body": {
diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devicecredentials_get.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devicecredentials_get.json
index fca7fc82f2c1..54b2c4c8aabf 100644
--- a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devicecredentials_get.json
+++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devicecredentials_get.json
@@ -9,10 +9,10 @@
"responses": {
"200": {
"body": {
- "idScope": "",
+ "idScope": "",
"symmetricKey": {
- "primaryKey": "XaMfV3vryCQw963L2IALf1SdApQRzSIBQd13/fassqM=",
- "secondaryKey": "s+4uT31TRZJcTSGxZUPZb1yznjTicu4jr9tXNrg+xIQ="
+ "primaryKey": "",
+ "secondaryKey": ""
}
}
}
diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_attestations_set_symmetricKey.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_attestations_set_symmetricKey.json
index 42fdabd7c518..6bdfbb5b6efc 100644
--- a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_attestations_set_symmetricKey.json
+++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_attestations_set_symmetricKey.json
@@ -8,8 +8,8 @@
"body": {
"type": "SymmetricKeyAttestation",
"symmetricKey": {
- "primaryKey": "XaMfV3vryCQw963L2IALf1SdApQRzSIBQd13/fassqM=",
- "secondaryKey": "s+4uT31TRZJcTSGxZUPZb1yznjTicu4jr9tXNrg+xIQ="
+ "primaryKey": "",
+ "secondaryKey": ""
}
}
},
@@ -18,8 +18,8 @@
"body": {
"type": "SymmetricKeyAttestation",
"symmetricKey": {
- "primaryKey": "XaMfV3vryCQw963L2IALf1SdApQRzSIBQd13/fassqM=",
- "secondaryKey": "s+4uT31TRZJcTSGxZUPZb1yznjTicu4jr9tXNrg+xIQ="
+ "primaryKey": "",
+ "secondaryKey": ""
}
}
}
diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_attestations_set_tpm.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_attestations_set_tpm.json
index 35fb1496150d..94c03cc26f7c 100644
--- a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_attestations_set_tpm.json
+++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_attestations_set_tpm.json
@@ -8,7 +8,7 @@
"body": {
"type": "TpmAttestation",
"tpm": {
- "endorsementKey": "AToAAQALAAMAsgAgg3GXZ0SEs/gakMyNRqXXJP1S124GUgtk8qHaGzMUaaoABgCAAEMAEAgAAAAAAAEAxsj2gUScTk1UjuioeTlfGYZrrimExB+bScH75adUMRIi2UOMxG1kw4y+9RW/IVoMl4e620VxZad0ARX2gUqVjYO7KPVt3dyKhZS3dkcvfBisBhP1XH9B33VqHG9SHnbnQXdBUaCgKAfxome8UmBKfe+naTsE5fkvjb/do3/dD6l4sGBwFCnKRdln4XpM03zLpoHFao8zOwt8l/uP3qUIxmCYv9A7m69Ms+5/pCkTu/rK4mRDsfhZ0QLfbzVI6zQFOKF/rwsfBtFeWlWtcuJMKlXdD8TXWElTzgh7JS4qhFzreL0c1mI0GCj+Aws0usZh7dLIVPnlgZcBhgy1SSDQMQ=="
+ "endorsementKey": ""
}
}
},
@@ -17,7 +17,7 @@
"body": {
"type": "TpmAttestation",
"tpm": {
- "endorsementKey": "AToAAQALAAMAsgAgg3GXZ0SEs/gakMyNRqXXJP1S124GUgtk8qHaGzMUaaoABgCAAEMAEAgAAAAAAAEAxsj2gUScTk1UjuioeTlfGYZrrimExB+bScH75adUMRIi2UOMxG1kw4y+9RW/IVoMl4e620VxZad0ARX2gUqVjYO7KPVt3dyKhZS3dkcvfBisBhP1XH9B33VqHG9SHnbnQXdBUaCgKAfxome8UmBKfe+naTsE5fkvjb/do3/dD6l4sGBwFCnKRdln4XpM03zLpoHFao8zOwt8l/uP3qUIxmCYv9A7m69Ms+5/pCkTu/rK4mRDsfhZ0QLfbzVI6zQFOKF/rwsfBtFeWlWtcuJMKlXdD8TXWElTzgh7JS4qhFzreL0c1mI0GCj+Aws0usZh7dLIVPnlgZcBhgy1SSDQMQ=="
+ "endorsementKey": ""
}
}
}
diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_properties_get.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_properties_get.json
index 45baf0130156..74ec4cc31c13 100644
--- a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_properties_get.json
+++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_properties_get.json
@@ -1,6 +1,6 @@
{
"title": "Get device properties",
- "description": "Get the current values of all device properties.",
+ "description": "Get the current values of all device properties. Properties that have never been set by the device or by a user or API request will not be returned.",
"parameters": {
"centralDnsSuffixInPath": "azureiotcentral.com",
"subdomain": "appsubdomain",
@@ -11,13 +11,29 @@
"body": {
"deviceinfo": {
"manufacturer": "manufacturer",
+ "$metadata": {
+ "manufacturer": {
+ "lastUpdateTime": "2020-07-21T19:06:50.9718608Z"
+ },
+ "model": {
+ "lastUpdateTime": "2020-07-21T19:06:50.9718608Z"
+ },
+ "swVersion": {
+ "lastUpdateTime": "2020-07-21T19:06:50.9718608Z"
+ }
+ },
"model": "model",
- "swVersion": "swVersion",
- "osName": "osName",
- "processorArchitecture": "processorArchitecture",
- "processorManufacturer": "processorManufacturer",
- "totalStorage": 41,
- "totalMemory": 49
+ "swVersion": "swVersion"
+ },
+ "settings": {
+ "fanSpeed": 12.5,
+ "$metadata": {
+ "fanSpeed": {
+ "desiredValue": 30,
+ "desiredVersion": 2,
+ "lastUpdateTime": "2020-07-21T19:06:50.9718608Z"
+ }
+ }
}
}
}
diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_properties_update.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_properties_update.json
index d8c1316a830f..f88d9a5dd4a3 100644
--- a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_properties_update.json
+++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devices_properties_update.json
@@ -6,30 +6,24 @@
"subdomain": "appsubdomain",
"device_id": "mx1",
"body": {
- "device_info": {
- "manufacturer": "manufacturer",
- "model": "model",
- "swVersion": "swVersion",
- "osName": "osName",
- "processorArchitecture": "processorArchitecture",
- "processorManufacturer": "processorManufacturer",
- "totalStorage": 24,
- "totalMemory": 18
+ "settings": {
+ "voltage": 25,
+ "current": 7
}
}
},
"responses": {
"202": {
"body": {
- "deviceinfo": {
- "manufacturer": "TODO",
- "model": "model",
- "swVersion": "swVersion",
- "osName": "osName",
- "processorArchitecture": "processorArchitecture",
- "processorManufacturer": "processorManufacturer",
- "totalStorage": 41,
- "totalMemory": 49
+ "settings": {
+ "$metadata": {
+ "voltage": {
+ "desiredValue": 25
+ },
+ "current": {
+ "desiredValue": 7
+ }
+ }
}
}
}
diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devicetemplates_create.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devicetemplates_create.json
index 5013639058c3..d9210837f4a1 100644
--- a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devicetemplates_create.json
+++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devicetemplates_create.json
@@ -1,6 +1,6 @@
{
"title": "Create a device template",
- "description": "Creates and publishes a device template. In the body, specify the full device template object.",
+ "description": "Creates and publishes a device template. In the body, specify the full device template object. Default views will be automatically generated.",
"parameters": {
"centralDnsSuffixInPath": "azureiotcentral.com",
"subdomain": "appsubdomain",
@@ -39,7 +39,7 @@
"displayName": "Temperature",
"name": "Temperature",
"schema": "double",
- "unit": "Units/Temperature/celsius"
+ "unit": "celsius"
},
{
"@id": "urn:storeAnalyticsCheckoutPnp:Interface:Humidity:1",
@@ -50,7 +50,7 @@
"displayName": "Humidity",
"name": "Humidity",
"schema": "double",
- "unit": "Units/Humidity/percent"
+ "unit": "percent"
},
{
"@id": "urn:storeAnalyticsCheckoutPnp:Interface:Occupancy:1",
@@ -110,7 +110,7 @@
"displayName": "Temperature",
"name": "Temperature",
"schema": "double",
- "unit": "Units/Temperature/celsius"
+ "unit": "celsius"
},
{
"@id": "urn:storeAnalyticsCheckoutPnp:Interface:Humidity:1",
@@ -121,7 +121,7 @@
"displayName": "Humidity",
"name": "Humidity",
"schema": "double",
- "unit": "Units/Humidity/percent"
+ "unit": "percent"
},
{
"@id": "urn:storeAnalyticsCheckoutPnp:Interface:Occupancy:1",
diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentral.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentral.json
index 0d512680cfed..cf4e8bbfa90e 100644
--- a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentral.json
+++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentral.json
@@ -304,10 +304,6 @@
"description": "Display name of the device.",
"type": "string"
},
- "description": {
- "description": "Detailed description of the device.",
- "type": "string"
- },
"instanceOf": {
"description": "The device template definition for the device.",
"type": "string"
@@ -504,7 +500,8 @@
"properties": {
"email": {
"description": "Email address of the user.",
- "type": "string"
+ "type": "string",
+ "format": "email"
}
},
"required": [
@@ -1186,7 +1183,7 @@
"/apiTokens": {
"get": {
"operationId": "ApiTokens_List",
- "summary": "Get the list of API tokens in an application.",
+ "summary": "Get the list of API tokens in an application. The token value will never be returned for security reasons.",
"x-ms-examples": {
"List API tokens": {
"$ref": "./examples/apitoken_list.json"
@@ -1234,7 +1231,7 @@
},
"put": {
"operationId": "ApiTokens_Set",
- "summary": "Create a new API token in the application.",
+ "summary": "Create a new API token in the application to use in the IoT Central public API. The token value will be returned in the response, and won't be returned again in subsequent requests.",
"x-ms-examples": {
"Create API token": {
"$ref": "./examples/apitoken_create.json"
@@ -1446,7 +1443,7 @@
},
"put": {
"operationId": "DeviceTemplates_Set",
- "summary": "Create or update a device template",
+ "summary": "Publish a new device template or update the cloud properties and overrides of an existing device template. Default views will be automatically generated for new device templates created this way.",
"x-ms-examples": {
"Create a device template": {
"$ref": "./examples/devicetemplates_create.json"
@@ -1943,6 +1940,7 @@
"get": {
"operationId": "Devices_GetComponentTelemetryValue",
"summary": "Get device telemetry value",
+ "description": "Get the last telemetry value from a device.",
"x-ms-examples": {
"Get telemetry": {
"$ref": "./examples/devices_telemetry_get.json"
@@ -2192,6 +2190,7 @@
"get": {
"operationId": "Devices_GetModuleComponentTelemetryValue",
"summary": "Get module telemetry value",
+ "description": "Get the last telemetry value from a module.",
"x-ms-examples": {
"Get telemetry from module": {
"$ref": "./examples/modules_telemetry_get.json"
diff --git a/specification/iotcentral/data-plane/readme.md b/specification/iotcentral/data-plane/readme.md
index 29406dbbaf09..ad32b23a5c39 100644
--- a/specification/iotcentral/data-plane/readme.md
+++ b/specification/iotcentral/data-plane/readme.md
@@ -53,10 +53,12 @@ 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.IoTCentral/preview/2019-10-28-preview/iotcentral.json
- $(this-folder)/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentralapps.json
+ - $(this-folder)/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentral.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.
diff --git a/specification/iothub/resource-manager/readme.md b/specification/iothub/resource-manager/readme.md
index cc0782d00196..f0842a0bf742 100644
--- a/specification/iothub/resource-manager/readme.md
+++ b/specification/iothub/resource-manager/readme.md
@@ -195,6 +195,7 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.Devices/stable/2020-04-01/iothub.json
- $(this-folder)/Microsoft.Devices/stable/2020-03-01/iothub.json
- $(this-folder)/Microsoft.Devices/stable/2019-11-04/iothub.json
- $(this-folder)/Microsoft.Devices/preview/2019-07-01-preview/iothub.json
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/certificates.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/certificates.json
new file mode 100644
index 000000000000..6760c1d5970b
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/certificates.json
@@ -0,0 +1,2084 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "KeyVaultClient",
+ "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.",
+ "version": "7.1"
+ },
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{vaultBaseUrl}",
+ "useSchemePrefix": false,
+ "positionInOperation": "first",
+ "parameters": [
+ {
+ "name": "vaultBaseUrl",
+ "description": "The vault name, for example https://myvault.vault.azure.net.",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ }
+ ]
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/certificates": {
+ "get": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "GetCertificates",
+ "summary": "List certificates in a specified key vault",
+ "description": "The GetCertificates operation returns the set of certificates resources in the specified key vault. This operation requires the certificates/list permission.",
+ "parameters": [
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 25,
+ "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results."
+ },
+ {
+ "name": "includePending",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Specifies whether to include certificates which are not completely provisioned."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A response message containing a list of certificates along with a link to the next page of certificates.",
+ "schema": {
+ "$ref": "#/definitions/CertificateListResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetCertificates": {
+ "$ref": "./examples/GetCertificates-example.json"
+ }
+ }
+ }
+ },
+ "/certificates/{certificate-name}": {
+ "delete": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "DeleteCertificate",
+ "summary": "Deletes a certificate from a specified key vault.",
+ "description": "Deletes all versions of a certificate object along with its associated policy. Delete certificate cannot be used to remove individual versions of a certificate object. This operation requires the certificates/delete permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the certificate."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The deleted certificate.",
+ "schema": {
+ "$ref": "#/definitions/DeletedCertificateBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DeleteCertificate": {
+ "$ref": "./examples/DeleteCertificate-example.json"
+ }
+ }
+ }
+ },
+ "/certificates/contacts": {
+ "put": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "SetCertificateContacts",
+ "description": "Sets the certificate contacts for the specified key vault. This operation requires the certificates/managecontacts permission.",
+ "summary": "Sets the certificate contacts for the specified key vault.",
+ "parameters": [
+ {
+ "name": "contacts",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Contacts"
+ },
+ "description": "The contacts for the key vault certificate."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The contacts for the key vault certificate.",
+ "schema": {
+ "$ref": "#/definitions/Contacts"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "SetCertificateContacts": {
+ "$ref": "./examples/SetCertificateContacts-example.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "GetCertificateContacts",
+ "summary": "Lists the certificate contacts for a specified key vault.",
+ "description": "The GetCertificateContacts operation returns the set of certificate contact resources in the specified key vault. This operation requires the certificates/managecontacts permission.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The contacts for the key vault certificate.",
+ "schema": {
+ "$ref": "#/definitions/Contacts"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetCertificateContacts": {
+ "$ref": "./examples/GetCertificateContacts-example.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "DeleteCertificateContacts",
+ "description": "Deletes the certificate contacts for a specified key vault certificate. This operation requires the certificates/managecontacts permission.",
+ "summary": "Deletes the certificate contacts for a specified key vault.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The contacts for the key vault certificate.",
+ "schema": {
+ "$ref": "#/definitions/Contacts"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DeleteCertificateContacts": {
+ "$ref": "./examples/DeleteCertificateContacts-example.json"
+ }
+ }
+ }
+ },
+ "/certificates/issuers": {
+ "get": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "GetCertificateIssuers",
+ "summary": "List certificate issuers for a specified key vault.",
+ "description": "The GetCertificateIssuers operation returns the set of certificate issuer resources in the specified key vault. This operation requires the certificates/manageissuers/getissuers permission.",
+ "parameters": [
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 25,
+ "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A response message containing a list of certificate issuers in a key vault along with a link to the next page of certificate issuers.",
+ "schema": {
+ "$ref": "#/definitions/CertificateIssuerListResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetCertificateIssuers": {
+ "$ref": "./examples/GetCertificateIssuers-example.json"
+ }
+ }
+ }
+ },
+ "/certificates/issuers/{issuer-name}": {
+ "put": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "SetCertificateIssuer",
+ "summary": "Sets the specified certificate issuer.",
+ "description": "The SetCertificateIssuer operation adds or updates the specified certificate issuer. This operation requires the certificates/setissuers permission.",
+ "parameters": [
+ {
+ "name": "issuer-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the issuer."
+ },
+ {
+ "name": "parameter",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateIssuerSetParameters"
+ },
+ "description": "Certificate issuer set parameter."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The issuer for the key vault certificate.",
+ "schema": {
+ "$ref": "#/definitions/IssuerBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "SetCertificateIssuer": {
+ "$ref": "./examples/SetCertificateIssuer-example.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "UpdateCertificateIssuer",
+ "summary": "Updates the specified certificate issuer.",
+ "description": "The UpdateCertificateIssuer operation performs an update on the specified certificate issuer entity. This operation requires the certificates/setissuers permission.",
+ "parameters": [
+ {
+ "name": "issuer-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the issuer."
+ },
+ {
+ "name": "parameter",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateIssuerUpdateParameters"
+ },
+ "description": "Certificate issuer update parameter."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The issuer for the key vault certificate.",
+ "schema": {
+ "$ref": "#/definitions/IssuerBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "UpdateCertificateIssuer": {
+ "$ref": "./examples/UpdateCertificateIssuer-example.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "GetCertificateIssuer",
+ "summary": "Lists the specified certificate issuer.",
+ "description": "The GetCertificateIssuer operation returns the specified certificate issuer resources in the specified key vault. This operation requires the certificates/manageissuers/getissuers permission.",
+ "parameters": [
+ {
+ "name": "issuer-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the issuer."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The issuer for the key vault certificate.",
+ "schema": {
+ "$ref": "#/definitions/IssuerBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetCertificateIssuer": {
+ "$ref": "./examples/GetCertificateIssuer-example.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "DeleteCertificateIssuer",
+ "summary": "Deletes the specified certificate issuer.",
+ "description": "The DeleteCertificateIssuer operation permanently removes the specified certificate issuer from the vault. This operation requires the certificates/manageissuers/deleteissuers permission.",
+ "parameters": [
+ {
+ "name": "issuer-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the issuer."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The issuer for the key vault certificate.",
+ "schema": {
+ "$ref": "#/definitions/IssuerBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DeleteCertificateIssuer": {
+ "$ref": "./examples/DeleteCertificateIssuer-example.json"
+ }
+ }
+ }
+ },
+ "/certificates/{certificate-name}/create": {
+ "post": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "CreateCertificate",
+ "summary": "Creates a new certificate.",
+ "description": "If this is the first version, the certificate resource is created. This operation requires the certificates/create permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z-]+$",
+ "description": "The name of the certificate."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateCreateParameters"
+ },
+ "description": "The parameters to create a certificate."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Created certificate bundle.",
+ "schema": {
+ "$ref": "#/definitions/CertificateOperation"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "CreateCertificate": {
+ "$ref": "./examples/CreateCertificate-example.json"
+ }
+ }
+ }
+ },
+ "/certificates/{certificate-name}/import": {
+ "post": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "ImportCertificate",
+ "summary": "Imports a certificate into a specified key vault.",
+ "description": "Imports an existing valid certificate, containing a private key, into Azure Key Vault. The certificate to be imported can be in either PFX or PEM format. If the certificate is in PEM format the PEM file must contain the key as well as x509 certificates. This operation requires the certificates/import permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z-]+$",
+ "description": "The name of the certificate."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateImportParameters"
+ },
+ "description": "The parameters to import the certificate."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Imported certificate bundle to the vault.",
+ "schema": {
+ "$ref": "#/definitions/CertificateBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ImportCertificate": {
+ "$ref": "./examples/ImportCertificate-example.json"
+ }
+ }
+ }
+ },
+ "/certificates/{certificate-name}/versions": {
+ "get": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "GetCertificateVersions",
+ "summary": "List the versions of a certificate.",
+ "description": "The GetCertificateVersions operation returns the versions of a certificate in the specified key vault. This operation requires the certificates/list permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the certificate."
+ },
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 25,
+ "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A response message containing a list of certificates in the key vault along with a link to the next page of keys.",
+ "schema": {
+ "$ref": "#/definitions/CertificateListResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetCertificateVersions": {
+ "$ref": "./examples/GetCertificateVersions-example.json"
+ }
+ }
+ }
+ },
+ "/certificates/{certificate-name}/policy": {
+ "get": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "GetCertificatePolicy",
+ "summary": "Lists the policy for a certificate.",
+ "description": "The GetCertificatePolicy operation returns the specified certificate policy resources in the specified key vault. This operation requires the certificates/get permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the certificate in a given key vault."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The certificate policy.",
+ "schema": {
+ "$ref": "#/definitions/CertificatePolicy"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetCertificatePolicy": {
+ "$ref": "./examples/GetCertificatePolicy-example.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "UpdateCertificatePolicy",
+ "summary": "Updates the policy for a certificate.",
+ "description": "Set specified members in the certificate policy. Leave others as null. This operation requires the certificates/update permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the certificate in the given vault."
+ },
+ {
+ "name": "certificatePolicy",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CertificatePolicy"
+ },
+ "description": "The policy for the certificate."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The certificate policy",
+ "schema": {
+ "$ref": "#/definitions/CertificatePolicy"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "UpdateCertificatePolicy": {
+ "$ref": "./examples/UpdateCertificatePolicy-example.json"
+ }
+ }
+ }
+ },
+ "/certificates/{certificate-name}/{certificate-version}": {
+ "patch": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "UpdateCertificate",
+ "summary": "Updates the specified attributes associated with the given certificate.",
+ "description": "The UpdateCertificate operation applies the specified update on the given certificate; the only elements updated are the certificate's attributes. This operation requires the certificates/update permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the certificate in the given key vault."
+ },
+ {
+ "name": "certificate-version",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The version of the certificate."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateUpdateParameters"
+ },
+ "description": "The parameters for certificate update."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The updated certificate.",
+ "schema": {
+ "$ref": "#/definitions/CertificateBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "UpdateCertificate": {
+ "$ref": "./examples/UpdateCertificate-example.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "GetCertificate",
+ "summary": "Gets information about a certificate.",
+ "description": "Gets information about a specific certificate. This operation requires the certificates/get permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the certificate in the given vault."
+ },
+ {
+ "name": "certificate-version",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The version of the certificate. This URI fragment is optional. If not specified, the latest version of the certificate is returned."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The retrieved certificate.",
+ "schema": {
+ "$ref": "#/definitions/CertificateBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetCertificate": {
+ "$ref": "./examples/GetCertificate-example.json"
+ }
+ }
+ }
+ },
+ "/certificates/{certificate-name}/pending": {
+ "patch": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "UpdateCertificateOperation",
+ "summary": "Updates a certificate operation.",
+ "description": "Updates a certificate creation operation that is already in progress. This operation requires the certificates/update permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the certificate."
+ },
+ {
+ "name": "certificateOperation",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateOperationUpdateParameter"
+ },
+ "description": "The certificate operation response."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A message containing the certificate operation response.",
+ "schema": {
+ "$ref": "#/definitions/CertificateOperation"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "UpdateCertificateOperation": {
+ "$ref": "./examples/UpdateCertificateOperation-example.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "GetCertificateOperation",
+ "summary": "Gets the creation operation of a certificate.",
+ "description": "Gets the creation operation associated with a specified certificate. This operation requires the certificates/get permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the certificate."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The certificate operation response.",
+ "schema": {
+ "$ref": "#/definitions/CertificateOperation"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetCertificateOperation": {
+ "$ref": "./examples/GetCertificateOperation-example.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "DeleteCertificateOperation",
+ "summary": "Deletes the creation operation for a specific certificate.",
+ "description": "Deletes the creation operation for a specified certificate that is in the process of being created. The certificate is no longer created. This operation requires the certificates/update permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the certificate."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A message containing the certificate operation response.",
+ "schema": {
+ "$ref": "#/definitions/CertificateOperation"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DeleteCertificateOperation": {
+ "$ref": "./examples/DeleteCertificateOperation-example.json"
+ }
+ }
+ }
+ },
+ "/certificates/{certificate-name}/pending/merge": {
+ "post": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "MergeCertificate",
+ "summary": "Merges a certificate or a certificate chain with a key pair existing on the server.",
+ "description": "The MergeCertificate operation performs the merging of a certificate or certificate chain with a key pair currently available in the service. This operation requires the certificates/create permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the certificate."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateMergeParameters"
+ },
+ "description": "The parameters to merge certificate."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Merged certificate bundle to the vault.",
+ "schema": {
+ "$ref": "#/definitions/CertificateBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "MergeCertificate": {
+ "$ref": "./examples/MergeCertificate-example.json"
+ }
+ }
+ }
+ },
+ "/certificates/{certificate-name}/backup": {
+ "post": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "BackupCertificate",
+ "summary": "Backs up the specified certificate.",
+ "description": "Requests that a backup of the specified certificate be downloaded to the client. All versions of the certificate will be downloaded. This operation requires the certificates/backup permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the certificate."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The backup blob containing the backed up certificate.",
+ "schema": {
+ "$ref": "#/definitions/BackupCertificateResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "BackupCertificate": {
+ "$ref": "./examples/BackupCertificate-example.json"
+ }
+ }
+ }
+ },
+ "/certificates/restore": {
+ "post": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "RestoreCertificate",
+ "summary": "Restores a backed up certificate to a vault.",
+ "description": "Restores a backed up certificate, and all its versions, to a vault. This operation requires the certificates/restore permission.",
+ "parameters": [
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateRestoreParameters"
+ },
+ "description": "The parameters to restore the certificate."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Restored certificate bundle in the vault.",
+ "schema": {
+ "$ref": "#/definitions/CertificateBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "RestoreCertificate": {
+ "$ref": "./examples/RestoreCertificate-example.json"
+ }
+ }
+ }
+ },
+ "/deletedcertificates": {
+ "get": {
+ "tags": [
+ "DeletedCertificates"
+ ],
+ "operationId": "GetDeletedCertificates",
+ "summary": "Lists the deleted certificates in the specified vault currently available for recovery.",
+ "description": "The GetDeletedCertificates operation retrieves the certificates in the current vault which are in a deleted state and ready for recovery or purging. This operation includes deletion-specific information. This operation requires the certificates/get/list permission. This operation can only be enabled on soft-delete enabled vaults.",
+ "parameters": [
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 25,
+ "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results."
+ },
+ {
+ "name": "includePending",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Specifies whether to include certificates which are not completely provisioned."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A response message containing a list of deleted certificates in the vault along with a link to the next page of deleted certificates",
+ "schema": {
+ "$ref": "#/definitions/DeletedCertificateListResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetDeletedCertificates": {
+ "$ref": "./examples/GetDeletedCertificates-example.json"
+ }
+ }
+ }
+ },
+ "/deletedcertificates/{certificate-name}": {
+ "get": {
+ "tags": [
+ "DeletedCertificates"
+ ],
+ "operationId": "GetDeletedCertificate",
+ "summary": "Retrieves information about the specified deleted certificate.",
+ "description": "The GetDeletedCertificate operation retrieves the deleted certificate information plus its attributes, such as retention interval, scheduled permanent deletion and the current deletion recovery level. This operation requires the certificates/get permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the certificate"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A Certificate bundle of the certificate and its attributes",
+ "schema": {
+ "$ref": "#/definitions/DeletedCertificateBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetDeletedCertificate": {
+ "$ref": "./examples/GetDeletedCertificate-example.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DeletedCertificates"
+ ],
+ "operationId": "PurgeDeletedCertificate",
+ "summary": "Permanently deletes the specified deleted certificate.",
+ "description": "The PurgeDeletedCertificate operation performs an irreversible deletion of the specified certificate, without possibility for recovery. The operation is not available if the recovery level does not specify 'Purgeable'. This operation requires the certificate/purge permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the certificate"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No content signaling that the certificate was purged forever."
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PurgeDeletedCertificate": {
+ "$ref": "./examples/PurgeDeletedCertificate-example.json"
+ }
+ }
+ }
+ },
+ "/deletedcertificates/{certificate-name}/recover": {
+ "post": {
+ "tags": [
+ "DeletedCertificates"
+ ],
+ "operationId": "RecoverDeletedCertificate",
+ "summary": "Recovers the deleted certificate back to its current version under /certificates.",
+ "description": "The RecoverDeletedCertificate operation performs the reversal of the Delete operation. The operation is applicable in vaults enabled for soft-delete, and must be issued during the retention interval (available in the deleted certificate's attributes). This operation requires the certificates/recover permission.",
+ "parameters": [
+ {
+ "name": "certificate-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the deleted certificate"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A Certificate bundle of the original certificate and its attributes",
+ "schema": {
+ "$ref": "#/definitions/CertificateBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "RecoverDeletedCertificate": {
+ "$ref": "./examples/RecoverDeletedCertificate-example.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CertificateAttributes": {
+ "allOf": [
+ {
+ "$ref": "common.json#/definitions/Attributes"
+ }
+ ],
+ "properties": {
+ "recoverableDays": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "description": "softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0."
+ },
+ "recoveryLevel": {
+ "type": "string",
+ "description": "Reflects the deletion recovery level currently in effect for certificates in the current vault. If it contains 'Purgeable', the certificate can be permanently deleted by a privileged user; otherwise, only the system can purge the certificate, at the end of the retention interval.",
+ "enum": [
+ "Purgeable",
+ "Recoverable+Purgeable",
+ "Recoverable",
+ "Recoverable+ProtectedSubscription",
+ "CustomizedRecoverable+Purgeable",
+ "CustomizedRecoverable",
+ "CustomizedRecoverable+ProtectedSubscription"
+ ],
+ "x-ms-enum": {
+ "name": "DeletionRecoveryLevel",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Purgeable",
+ "description": "Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.)"
+ },
+ {
+ "value": "Recoverable+Purgeable",
+ "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered"
+ },
+ {
+ "value": "Recoverable",
+ "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval(90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not recovered"
+ },
+ {
+ "value": "Recoverable+ProtectedSubscription",
+ "description": "Denotes a vault and subscription state in which deletion is recoverable within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered"
+ },
+ {
+ "value": "CustomizedRecoverable+Purgeable",
+ "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription is cancelled."
+ },
+ {
+ "value": "CustomizedRecoverable",
+ "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval and while the subscription is still available."
+ },
+ {
+ "value": "CustomizedRecoverable+ProtectedSubscription",
+ "description": "Denotes a vault and subscription state in which deletion is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7<= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled."
+ }
+ ]
+ },
+ "readOnly": true,
+ "x-nullable": false
+ }
+ },
+ "description": "The certificate management attributes."
+ },
+ "CertificateItem": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Certificate identifier."
+ },
+ "attributes": {
+ "$ref": "#/definitions/CertificateAttributes",
+ "description": "The certificate management attributes."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ },
+ "x5t": {
+ "x-ms-client-name": "X509Thumbprint",
+ "type": "string",
+ "format": "base64url",
+ "description": "Thumbprint of the certificate."
+ }
+ },
+ "description": "The certificate item containing certificate metadata."
+ },
+ "CertificateIssuerItem": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Certificate Identifier."
+ },
+ "provider": {
+ "type": "string",
+ "description": "The issuer provider."
+ }
+ },
+ "description": "The certificate issuer item containing certificate issuer metadata."
+ },
+ "CertificateBundle": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The certificate id.",
+ "readOnly": true
+ },
+ "kid": {
+ "type": "string",
+ "description": "The key id.",
+ "readOnly": true
+ },
+ "sid": {
+ "type": "string",
+ "description": "The secret id.",
+ "readOnly": true
+ },
+ "x5t": {
+ "x-ms-client-name": "X509Thumbprint",
+ "type": "string",
+ "format": "base64url",
+ "description": "Thumbprint of the certificate.",
+ "readOnly": true
+ },
+ "policy": {
+ "$ref": "#/definitions/CertificatePolicy",
+ "description": "The management policy.",
+ "readOnly": true
+ },
+ "cer": {
+ "type": "string",
+ "format": "byte",
+ "description": "CER contents of x509 certificate."
+ },
+ "contentType": {
+ "type": "string",
+ "description": "The content type of the secret."
+ },
+ "attributes": {
+ "$ref": "#/definitions/CertificateAttributes",
+ "description": "The certificate attributes."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs"
+ }
+ },
+ "description": "A certificate bundle consists of a certificate (X509) plus its attributes."
+ },
+ "DeletedCertificateBundle": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/CertificateBundle"
+ }
+ ],
+ "properties": {
+ "recoveryId": {
+ "type": "string",
+ "description": "The url of the recovery object, used to identify and recover the deleted certificate."
+ },
+ "scheduledPurgeDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the certificate is scheduled to be purged, in UTC"
+ },
+ "deletedDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the certificate was deleted, in UTC"
+ }
+ },
+ "description": "A Deleted Certificate consisting of its previous id, attributes and its tags, as well as information on when it will be purged."
+ },
+ "DeletedCertificateItem": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/CertificateItem"
+ }
+ ],
+ "properties": {
+ "recoveryId": {
+ "type": "string",
+ "description": "The url of the recovery object, used to identify and recover the deleted certificate."
+ },
+ "scheduledPurgeDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the certificate is scheduled to be purged, in UTC"
+ },
+ "deletedDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the certificate was deleted, in UTC"
+ }
+ },
+ "description": "The deleted certificate item containing metadata about the deleted certificate."
+ },
+ "CertificateOperation": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The certificate id.",
+ "readOnly": true
+ },
+ "issuer": {
+ "x-ms-client-name": "IssuerParameters",
+ "$ref": "#/definitions/IssuerParameters",
+ "description": "Parameters for the issuer of the X509 component of a certificate."
+ },
+ "csr": {
+ "type": "string",
+ "format": "byte",
+ "description": "The certificate signing request (CSR) that is being used in the certificate operation."
+ },
+ "cancellation_requested": {
+ "type": "boolean",
+ "description": "Indicates if cancellation was requested on the certificate operation."
+ },
+ "status": {
+ "type": "string",
+ "description": "Status of the certificate operation."
+ },
+ "status_details": {
+ "type": "string",
+ "description": "The status details of the certificate operation."
+ },
+ "error": {
+ "$ref": "common.json#/definitions/Error",
+ "description": "Error encountered, if any, during the certificate operation."
+ },
+ "target": {
+ "type": "string",
+ "description": "Location which contains the result of the certificate operation."
+ },
+ "request_id": {
+ "type": "string",
+ "description": "Identifier for the certificate operation."
+ }
+ },
+ "description": "A certificate operation is returned in case of asynchronous requests."
+ },
+ "CertificatePolicy": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The certificate id.",
+ "readOnly": true
+ },
+ "key_props": {
+ "x-ms-client-name": "KeyProperties",
+ "$ref": "keys.json#/definitions/KeyProperties",
+ "description": "Properties of the key backing a certificate."
+ },
+ "secret_props": {
+ "x-ms-client-name": "SecretProperties",
+ "$ref": "secrets.json#/definitions/SecretProperties",
+ "description": "Properties of the secret backing a certificate."
+ },
+ "x509_props": {
+ "x-ms-client-name": "X509CertificateProperties",
+ "$ref": "#/definitions/X509CertificateProperties",
+ "description": "Properties of the X509 component of a certificate."
+ },
+ "lifetime_actions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LifetimeAction"
+ },
+ "description": "Actions that will be performed by Key Vault over the lifetime of a certificate."
+ },
+ "issuer": {
+ "x-ms-client-name": "IssuerParameters",
+ "$ref": "#/definitions/IssuerParameters",
+ "description": "Parameters for the issuer of the X509 component of a certificate."
+ },
+ "attributes": {
+ "$ref": "#/definitions/CertificateAttributes",
+ "description": "The certificate attributes."
+ }
+ },
+ "description": "Management policy for a certificate."
+ },
+ "X509CertificateProperties": {
+ "properties": {
+ "subject": {
+ "type": "string",
+ "description": "The subject name. Should be a valid X509 distinguished Name."
+ },
+ "ekus": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The enhanced key usage."
+ },
+ "sans": {
+ "x-ms-client-name": "SubjectAlternativeNames",
+ "$ref": "#/definitions/SubjectAlternativeNames",
+ "description": "The subject alternative names."
+ },
+ "key_usage": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "digitalSignature",
+ "nonRepudiation",
+ "keyEncipherment",
+ "dataEncipherment",
+ "keyAgreement",
+ "keyCertSign",
+ "cRLSign",
+ "encipherOnly",
+ "decipherOnly"
+ ],
+ "x-ms-enum": {
+ "name": "KeyUsageType",
+ "modelAsString": true
+ }
+ },
+ "description": "List of key usages."
+ },
+ "validity_months": {
+ "x-ms-client-name": "ValidityInMonths",
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "description": "The duration that the certificate is valid in months."
+ }
+ },
+ "description": "Properties of the X509 component of a certificate."
+ },
+ "IssuerParameters": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the referenced issuer object or reserved names; for example, 'Self' or 'Unknown'."
+ },
+ "cty": {
+ "x-ms-client-name": "CertificateType",
+ "type": "string",
+ "description": "Certificate type as supported by the provider (optional); for example 'OV-SSL', 'EV-SSL'"
+ },
+ "cert_transparency": {
+ "x-ms-client-name": "CertificateTransparency",
+ "type": "boolean",
+ "description": "Indicates if the certificates generated under this policy should be published to certificate transparency logs."
+ }
+ },
+ "description": "Parameters for the issuer of the X509 component of a certificate."
+ },
+ "LifetimeAction": {
+ "properties": {
+ "trigger": {
+ "$ref": "#/definitions/Trigger",
+ "description": "The condition that will execute the action."
+ },
+ "action": {
+ "$ref": "#/definitions/Action",
+ "description": "The action that will be executed."
+ }
+ },
+ "description": "Action and its trigger that will be performed by Key Vault over the lifetime of a certificate."
+ },
+ "Action": {
+ "properties": {
+ "action_type": {
+ "type": "string",
+ "description": "The type of the action.",
+ "enum": [
+ "EmailContacts",
+ "AutoRenew"
+ ],
+ "x-ms-enum": {
+ "name": "ActionType",
+ "modelAsString": false
+ }
+ }
+ },
+ "description": "The action that will be executed."
+ },
+ "Trigger": {
+ "properties": {
+ "lifetime_percentage": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 99,
+ "description": "Percentage of lifetime at which to trigger. Value should be between 1 and 99."
+ },
+ "days_before_expiry": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Days before expiry to attempt renewal. Value should be between 1 and validity_in_months multiplied by 27. If validity_in_months is 36, then value should be between 1 and 972 (36 * 27)."
+ }
+ },
+ "description": "A condition to be satisfied for an action to be executed."
+ },
+ "SubjectAlternativeNames": {
+ "properties": {
+ "emails": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Email addresses."
+ },
+ "dns_names": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Domain names."
+ },
+ "upns": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "User principal names."
+ }
+ },
+ "description": "The subject alternate names of a X509 object."
+ },
+ "IssuerBundle": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identifier for the issuer object.",
+ "readOnly": true
+ },
+ "provider": {
+ "type": "string",
+ "description": "The issuer provider."
+ },
+ "credentials": {
+ "$ref": "#/definitions/IssuerCredentials",
+ "description": "The credentials to be used for the issuer."
+ },
+ "org_details": {
+ "x-ms-client-name": "OrganizationDetails",
+ "$ref": "#/definitions/OrganizationDetails",
+ "description": "Details of the organization as provided to the issuer."
+ },
+ "attributes": {
+ "$ref": "#/definitions/IssuerAttributes",
+ "description": "Attributes of the issuer object."
+ }
+ },
+ "description": "The issuer for Key Vault certificate."
+ },
+ "IssuerAttributes": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Determines whether the issuer is enabled."
+ },
+ "created": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "Creation time in UTC."
+ },
+ "updated": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "Last updated time in UTC."
+ }
+ },
+ "description": "The attributes of an issuer managed by the Key Vault service."
+ },
+ "IssuerCredentials": {
+ "properties": {
+ "account_id": {
+ "type": "string",
+ "description": "The user name/account name/account id."
+ },
+ "pwd": {
+ "x-ms-client-name": "Password",
+ "type": "string",
+ "description": "The password/secret/account key."
+ }
+ },
+ "description": "The credentials to be used for the certificate issuer."
+ },
+ "OrganizationDetails": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Id of the organization."
+ },
+ "admin_details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AdministratorDetails"
+ },
+ "description": "Details of the organization administrator."
+ }
+ },
+ "description": "Details of the organization of the certificate issuer."
+ },
+ "AdministratorDetails": {
+ "properties": {
+ "first_name": {
+ "type": "string",
+ "description": "First name."
+ },
+ "last_name": {
+ "type": "string",
+ "description": "Last name."
+ },
+ "email": {
+ "x-ms-client-name": "EmailAddress",
+ "type": "string",
+ "description": "Email address."
+ },
+ "phone": {
+ "type": "string",
+ "description": "Phone number."
+ }
+ },
+ "description": "Details of the organization administrator of the certificate issuer."
+ },
+ "Contacts": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identifier for the contacts collection.",
+ "readOnly": true
+ },
+ "contacts": {
+ "x-ms-client-name": "ContactList",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Contact"
+ },
+ "description": "The contact list for the vault certificates."
+ }
+ },
+ "description": "The contacts for the vault certificates."
+ },
+ "Contact": {
+ "properties": {
+ "email": {
+ "x-ms-client-name": "EmailAddress",
+ "type": "string",
+ "description": "Email address."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name."
+ },
+ "phone": {
+ "type": "string",
+ "description": "Phone number."
+ }
+ },
+ "description": "The contact information for the vault certificates."
+ },
+ "CertificateCreateParameters": {
+ "properties": {
+ "policy": {
+ "x-ms-client-name": "CertificatePolicy",
+ "$ref": "#/definitions/CertificatePolicy",
+ "description": "The management policy for the certificate."
+ },
+ "attributes": {
+ "x-ms-client-name": "CertificateAttributes",
+ "$ref": "#/definitions/CertificateAttributes",
+ "description": "The attributes of the certificate (optional)."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ }
+ },
+ "description": "The certificate create parameters."
+ },
+ "CertificateImportParameters": {
+ "properties": {
+ "value": {
+ "x-ms-client-name": "base64EncodedCertificate",
+ "type": "string",
+ "description": "Base64 encoded representation of the certificate object to import. This certificate needs to contain the private key."
+ },
+ "pwd": {
+ "x-ms-client-name": "password",
+ "type": "string",
+ "description": "If the private key in base64EncodedCertificate is encrypted, the password used for encryption."
+ },
+ "policy": {
+ "x-ms-client-name": "CertificatePolicy",
+ "$ref": "#/definitions/CertificatePolicy",
+ "description": "The management policy for the certificate."
+ },
+ "attributes": {
+ "x-ms-client-name": "CertificateAttributes",
+ "$ref": "#/definitions/CertificateAttributes",
+ "description": "The attributes of the certificate (optional)."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ }
+ },
+ "description": "The certificate import parameters.",
+ "required": [
+ "value"
+ ]
+ },
+ "CertificateUpdateParameters": {
+ "properties": {
+ "policy": {
+ "x-ms-client-name": "CertificatePolicy",
+ "$ref": "#/definitions/CertificatePolicy",
+ "description": "The management policy for the certificate."
+ },
+ "attributes": {
+ "x-ms-client-name": "CertificateAttributes",
+ "$ref": "#/definitions/CertificateAttributes",
+ "description": "The attributes of the certificate (optional)."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ }
+ },
+ "description": "The certificate update parameters."
+ },
+ "CertificateMergeParameters": {
+ "properties": {
+ "x5c": {
+ "x-ms-client-name": "x509Certificates",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "byte"
+ },
+ "description": "The certificate or the certificate chain to merge."
+ },
+ "attributes": {
+ "x-ms-client-name": "CertificateAttributes",
+ "$ref": "#/definitions/CertificateAttributes",
+ "description": "The attributes of the certificate (optional)."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ }
+ },
+ "description": "The certificate merge parameters",
+ "required": [
+ "x5c"
+ ]
+ },
+ "CertificateIssuerSetParameters": {
+ "properties": {
+ "provider": {
+ "type": "string",
+ "description": "The issuer provider."
+ },
+ "credentials": {
+ "$ref": "#/definitions/IssuerCredentials",
+ "description": "The credentials to be used for the issuer."
+ },
+ "org_details": {
+ "x-ms-client-name": "OrganizationDetails",
+ "$ref": "#/definitions/OrganizationDetails",
+ "description": "Details of the organization as provided to the issuer."
+ },
+ "attributes": {
+ "$ref": "#/definitions/IssuerAttributes",
+ "description": "Attributes of the issuer object."
+ }
+ },
+ "description": "The certificate issuer set parameters.",
+ "required": [
+ "provider"
+ ]
+ },
+ "CertificateIssuerUpdateParameters": {
+ "properties": {
+ "provider": {
+ "type": "string",
+ "description": "The issuer provider."
+ },
+ "credentials": {
+ "$ref": "#/definitions/IssuerCredentials",
+ "description": "The credentials to be used for the issuer."
+ },
+ "org_details": {
+ "x-ms-client-name": "OrganizationDetails",
+ "$ref": "#/definitions/OrganizationDetails",
+ "description": "Details of the organization as provided to the issuer."
+ },
+ "attributes": {
+ "$ref": "#/definitions/IssuerAttributes",
+ "description": "Attributes of the issuer object."
+ }
+ },
+ "description": "The certificate issuer update parameters."
+ },
+ "CertificateOperationUpdateParameter": {
+ "properties": {
+ "cancellation_requested": {
+ "type": "boolean",
+ "description": "Indicates if cancellation was requested on the certificate operation."
+ }
+ },
+ "description": "The certificate operation update parameters.",
+ "required": [
+ "cancellation_requested"
+ ]
+ },
+ "CertificateListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateItem"
+ },
+ "readOnly": true,
+ "description": "A response message containing a list of certificates in the key vault along with a link to the next page of certificates."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get the next set of certificates."
+ }
+ },
+ "description": "The certificate list result."
+ },
+ "DeletedCertificateListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeletedCertificateItem"
+ },
+ "readOnly": true,
+ "description": "A response message containing a list of deleted certificates in the vault along with a link to the next page of deleted certificates"
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get the next set of deleted certificates."
+ }
+ },
+ "description": "A list of certificates that have been deleted in this vault."
+ },
+ "CertificateIssuerListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateIssuerItem"
+ },
+ "readOnly": true,
+ "description": "A response message containing a list of certificate issuers in the key vault along with a link to the next page of certificate issuers."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get the next set of certificate issuers."
+ }
+ },
+ "description": "The certificate issuer list result."
+ },
+ "PendingCertificateSigningRequestResult": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The pending certificate signing request as Base64 encoded string."
+ }
+ },
+ "description": "The pending certificate signing request result."
+ },
+ "CertificateRestoreParameters": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "x-ms-client-name": "certificateBundleBackup",
+ "format": "base64url",
+ "description": "The backup blob associated with a certificate bundle."
+ }
+ },
+ "description": "The certificate restore parameters.",
+ "required": [
+ "value"
+ ]
+ },
+ "BackupCertificateResult": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "format": "base64url",
+ "readOnly": true,
+ "description": "The backup blob containing the backed up certificate."
+ }
+ },
+ "description": "The backup certificate result, containing the backup blob."
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client API version."
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/common.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/common.json
new file mode 100644
index 000000000000..c4c425f7fe7e
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/common.json
@@ -0,0 +1,73 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "KeyVaultClient",
+ "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.",
+ "version": "7.1"
+ },
+ "paths": {},
+ "definitions": {
+ "Attributes": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Determines whether the object is enabled."
+ },
+ "nbf": {
+ "x-ms-client-name": "NotBefore",
+ "type": "integer",
+ "format": "unixtime",
+ "description": "Not before date in UTC."
+ },
+ "exp": {
+ "x-ms-client-name": "Expires",
+ "type": "integer",
+ "format": "unixtime",
+ "description": "Expiry date in UTC."
+ },
+ "created": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "Creation time in UTC."
+ },
+ "updated": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "Last updated time in UTC."
+ }
+ },
+ "description": "The object attributes managed by the KeyVault service."
+ },
+ "KeyVaultError": {
+ "properties": {
+ "error": {
+ "readOnly": true,
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "description": "The key vault error exception."
+ },
+ "Error": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The error code."
+ },
+ "message": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The error message."
+ },
+ "innererror": {
+ "x-ms-client-name": "innerError",
+ "readOnly": true,
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "description": "The key vault server error."
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/BackupCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/BackupCertificate-example.json
new file mode 100644
index 000000000000..7eca93426b4c
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/BackupCertificate-example.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "testcert",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLm85bmpNWEFSZWVla2NaRXBsVTNjdUxQcVZlWmxFbGRDM01XOWpYR0h6bnBXRTdHRGVOSXJraGZscHdTWXFnQnBYQkozMFpUQkRpRmpROENXSnJfUGlsUWNDRkZyN0xrdWJhWUs0TW1zcVh5WGIzbkRJcUJkQmZIUVNpZ1ZET0J5Ym9sUlRNNDYzYjBTbXhLVzJheEdFS2NuZzQ5WFkycG1SR0Vrb0plcHJWZ0tyRkpOUGQ3cGJIS3hQSWdDOFlnT2xudnZxR280RlRDSzh0ZWotcUt2UzBfRGV6Uk5vdTZqZ25SekpxX0g2NGxWMk1hQ0NnUy0xbTlyOGVOTVVvSlhTV1hwc0lneng1RzdEbzIya1ZEY25vMW9rajlCMXNvbklkWmtuY1JybDJBVHNRZVlzZXdkUVd1VmhxRzVLN0pNQWo5YzBRdkxhTmlpdl9PY2pFcm5qUS4zbmI4azJ3SEcyNHFJelNNb184WG13LnJzc3NMNjJ1aUNfTm9IbG5zQlgzcEEtck1uY3g5R3V2NmJYSHpKamxwOWNMUnVaSDBSWlJYVXRwU3BPQWdyZ20tU3BxeEdWSjd2bmprbV9FSzJwYy1sZHNjUWtRSDB4bVFVcGZFNzN5b1VTYTNXVVNMS2VIVnJLdUg5MUtJR0tLODE5ejc5d1Y5Y0F3UjlzcHJxbFFWZnlKdlNFM2tnZTh1RVBpRFFVMFl5WnJqVjBsMGJCU3VkeTN1MVlsVHB6Wk1EWmpUcE05ZGtMclgtaGdxZ1FGa2xFa1hNRWlzd0RDZVM3Y3J2bFg1bnVzbWh5SkZCMklCd3dxNWJieHptV1diU3JOc3lFMmJmWEpXOWN4TFlQcnJJZFpfbkd0X29RSGVQcUFZTS1iVnpTdzdBRGJjMU15NTZwclBGLW9PSm40MHptOTBaaFBTVGMyQXNKRGFBa3R5WFU4WktOYUhFVUlHLWI1SGhUdFBuZ20wN0FrWEtQNngwaDhzZ3ZIaGdCeGpfdWRfQVpQc3pLWG1HdUhFTW9lRGhpT3NkQVdRR0pwR2t0NHVlbmZyamNSeXVlaXJiTC1RV3o4MEtZUnk1QklxbzVJc19RVHpWN2dqMGstYS0td24tazNsNTJ4YjhaNkRXd2tWZ3hqUlNXOXZnV0pVd2U5M1ZrVWtHM3NLRW5SOE9ueTNjWlhQVl9LbWtBTEdlR0ZzQm53SmQwY3dueTBCN2I5VWQyQ19kWEZ0N1BvbnFVNldfT016cC1Nb1NtRzRHbEFpUkVfQ3FrWlhkalhIMVItSmpObUNfdXlPUTdaN1BVaDAtNmd2YUxpcE1CamlWR1FwdzlEZDhmVmtCbWk4VW5uOUxPYXJmSXVtcEJyUE43TTJhM05KdjN6b0NkanhZVFVUMTN1aElpYWl3aExoUFZhT2pUbFRmTkpqbHhIbG5lbGJ1RWJsZTk0bVV1bW8wcjhKRlFMSDdfRjhXMVo0OC1BcjhYYXJwMXhIY0FReHk1WWYwclktdUU1dTAyRnRHUHlPZ0JfNV9WdFlNR2VfRE1mdENLOGVMZGFnVllMRDJDNDUxTldZeVVfeHdNUWdQbXBaMWFnSEdCb2s0ejhsSFBndVhCQ3R2WFFuTHBXQTVBamdOLWNoWjNwUGJmc2RkNjBhekJuWDVaVXQza2hYaWNDdWk4b0xidEtzQUdmckNOZzFwT2Q0MHBHMEJlVy1lNVE1WWQydjY4eFh5a2RiTXhFblFCM3Fzd1djVlh1QXBIR18wREZVVmZvSlc2aVBZcDNWVE51amM5M3QtMDcxWnlZbUZ4V0RfVThMYTAtM19RLV8yZ0pwMVBaVV8tMVBRM1huLXdSWk1vb3JkZGZQa1VPZ0lqdWkwa1IwZWt5RjZvdWdLNnJrSVZHaGp3YUp0ekdKczJLdGxncnRCcEs2MXZEaE5zbFR5VHU5OUp2T2RFTXhwRG5lTEg4NnlvVnhxT3lIT3lxNjByXzdpTHgtdy03Q3FzWTloT3dmQlBZZ3BQVlM2bm9oZVBocTkwaGJTX0lrM21YbnRkRUNMREtSMi1wWFh6bjlPRjZIN09EdHB4S0VXQkdCaHJ0Ykxmd2JZS3dmWmZSVTJVUHpkLUxFd1lQdDloU203Z3lSODNoYkZiSFNBV1cySncxRWl1c3FURWRsRW1lQ3k2cFp1MVFZWko0TUQ0OG5rVXMwdmVHUVhTU2Ytb2RhQm1fYjZZdVh1cWcyWk03MlZjUTd4ZzV4MmpFenFqcllmdjdTTGJINFZBcWp0aFg5LUdRaWEwWEZaS18xempIenhkd1B0R2lSOHJfMkFFZTgtRXFoNi1FaTZKdjRFZjYyMnRrNWFJUWx3R1pETWpGSVNuUkpRdV8xcnJiY1E3enZsbWhUSWFQcUJNRFVxeHBEOXNWUlhuSHdIaTl1b1BCUTllbWJIMkV5WDV6MEhWRXlDa1JEbUd3cmR2RGdsOFVzMUhURjVwYXlYZmF2WkZUZjl3WFZyQXpsRFBEQkFJVFMzWnVJMEJWR2pJUGV1SnRiako4S1pTczRFQVNRRTVyVjViTUpNQXcwa19nYkVRTEZGSjJVb0ZzcWU1QUszM2xGXzR5cGMxU0JaWjJfUzYtbEQyNkpyRFVJSjFFRmJhbWtoUk12bWJIT1Utc0hDT0lRcHdadlJzV3Q3NExSQ1ZyQ09jMGpUdE5TT1JPUW5XRHVXRlFXSzk1TkRGMG96WjIyLVFEMU9YOE9iU3daaHdOXzNfS1pHRmtVMEhNdzNjSTI5LWUxbFltRDV3cmJ0ZlRFbllOeHJKOGpuUWFBY2FoNy14Q0JKeUQ3elo1MXIzRVVyY2VnazBzc1dLeHRPVjRLcTZENmxuVmU3bFpUT1dfTU5aZi1JSzJUbnZCaVZIMHk0SkVGaUxzSDJHbTM1d28yYlZVaXJsT1ljVEk1NlZhdDhMRWhGaEotVlUyNk84NHo2dUJFZmJucEZLbmdKc3pfYVlucW1zNWV1bmd3ek5ndjdlT0U0cUdKSURyMTRBUXRWdEYxcWdrZHNnVllWVXg4U29SQ0NobE5VUzRNRGxhc1hwS1VmV19ENWIxbDRkbXZiNEZNRHJqakJ6djk5dGJSeGZFYUVOSFlYTHZFZnJ0b0pMeW9na2tmNkxlbVoxVDZRbnRtNlR4S1IycU81WU1vMnRJZHlQNmZNRmkweEYtdE1IaHNSdVN3VEpybW1nREcteHVpZllVNkpfaElSNkMzVmo2VkFMMW1oZy0xeW1pRXZuanVLbElONzc4NmFWdVNpNmx5TjJJNzZqY0R6SHZ0VW1ibkVvWWtORHNPQXdqQk9MNFBlS0VjR1hWcm5YNDJhNW5IRWM2cmZQdjZ0Q2tVSUI0UldIdzEyUTFiNDM2N1JvRS1PTWN3TnV6ampob1M0S1ZJbHo4UEFMOW9YYTR4NXlQeG1aVzZ0UUVna1pKeFhEcS00SWRtd1UzTnpVZUoxdGpNaXFsc0xRWDdlc29fTHRtTWJ3bm83YkI3bjRlVnZ4aUtQU3p3dW94c25aaGs1b3ZSSE1xU0NtZjU2MjJvUTZvWEdmNUJLWExlQWdqaE1Sd21razEtUzlGajlyc1hlT19VYjJOMF9hVEFLemlidXIxNVcxaHI3Wk1PVFlxOFlSSGVPaWxSX3Bkdjl5NTlDRDQ1WmE0ZXFURHVrNmRxZ1d4YnoyVVVtMnpwM3pvTHVKSVZ1Y3FIaUVRTVNfMnFKcy1xQTAwT2FFY3huZTM2Q1RsZVNwZjF5cjh2VjNWNW1mQU5zRnJBa21CMnBRWTNfZ21UbldTYTJ3UWlMa2RFRllPSExTeEk5UVowNHo4ZFRfbW5QMmIwWV96N3ZLa0VGQmFpNU02UFdPWjVIOUx1M3Rnay1fR0g0ODd6ZHpuQm0weWZZY3ZIOHJUd1QyQl9UZVRFMG4xcWFRdDRiQ0diUkFQNE1DTDl0SGlIcmlzWEllejQzZlZ3b1c4R2x4YmxKanlLWkpXbmlRNjlBYks3SmYyUER6d2NVSHhkZU5HNGxEZmt6WmFxU2lybGRzZlhXOHBGLWZ6WFVVWHR4eDF4Um5nQ1hJVkxLbU5ZbV9CNnNrNGo0VzROVFMwQTBOcFhsZGJCWjZWWmFDMDNvRHVGUFY0MGtwdWQ0WEd3Q1l3M244ZjFHb0Z6Sk42QjFqOTRLeTdtNE5YT1JsQ3ZaRW5qZTl6T241T1d1ZG9USWRoRzBobXVDUTZ6TXI2YkVaTUFoV1ZFdlREY19iXzZsOWdLWmVxNmVtekxvcmptOEQzLXcyLXRBYlE2Tmpjd0J3eEhMZzlCRllRRFdvaU9UVmJKN2VBcUVFMHVxVkhBcE9KbFVIc2tmQy1uV3NzOV9fRTFURHBLcjRfRE93NFhPUGNzT3dlVU9EUWg3cVFXRE1ZcDVHU1poVWE4MVVHczhmemZKU3JPbmtaTmRVTS10Y0h3R01mX3didy11dmt4UFUtV0tvNUNqR2M2aU5KMDB4MjZZdUpCWXd6TVFyeDBJQWgxMjVBWlozX2FvaFFpLWw3a1pZVE82Q0JVOVZsYllNMndrZXp4ZGhrQ1oxd080Z1NNbDlKU3A5ejhxNV84SU1WM1pma00xV1VqSGZMQk4xRXdFMjRxZFVzcWxyU3NZN1hQaVlpcXQ5ZktXVmZDTWw4RU0yd2ZHYlhxMUI4eWl2UlpMcko0eEk2MUdVUWJFVGU4akNTYTF2aUxxZ0FIa25IYjVjVHIwbDRhTW1EZGZKWnJxZEdpb1lPb2IwdHBuc3IxanRfZm1obGhJa1NSQnREUk5XWEU1OXBjVXlULXpyVjBxZl9sOHN2TlNEV2N3d09YQ3lITWZzLWw0T29xMldVWTVLQi1nSG1HYUJod0oxa19ra3V2S0hlMl9TY0loc3JjTXV1eW5aLW14Vzl5NHBBS3pvdVFsQjR0ZGZvbHdSRk5KX0tHYWJPZXJiWFdDT0ZTd0JVTjdNaG0wOXNyVS1VWG5od1IwdTYyTjVvMDlfbGN5eThnWDg1ZUVrenhuOGZ2NHd2T0Y2dUd1cFk5UGxpSTRLMTNqSHlOd0ZuY2VmRlp2b0dxVlhkcUg5RGJkYS0zY1FhbVFlNmlMek0wRDlnLXlFc2NBTkpKS3ltelVzemZZdV8yY0p0TEhsd0I3NVhLeW1EMG9nUkRvRkRwTmNPd1dRRUlwdVJwU0pfdWtzR2EwZkd3MGVBTU4tQmc1OUs3emhRWHJISUZOckN1S1VPMVdvTkV5WkM2UGlKSUwtUlRsTFQ2WlBNZmdSZzZiUl9aQk43X2dseHBIakNDaFZXMkZ3MnJFUDJJX1pSeHFqdS1WbmVwV2o4eU1CaHZXZzdXNm9QWm1odmVtUTBkQUljNVZTbVVaelhvNFVURmJxSFN2MGlyVTNscVk2eUl1MGRPd2t2MlF4ZENfQVdRUmdLSGRUeG1xYXFUSXJwclZyUHZ1MDFQSGlFbVRnaDZZVEZ6Yllqb3JEeFExWDhlTUN5Rl80cWNjMnhOdTJRblBIdUR0RGZkSy1NV2xJUDhHUEhSMmhPMjlCa0JJSEM4TlgxZmxDN1ZSZkZsQ09McGVIeWl0MGRSd1d2S2tieGNIWl9fRE5ZLVBNQlZMZGpyR3lxT2JoQnpQZHZMeFpXWVU3THNRbnM1dmxiMTc5YXczX3VmclRIWGs0MVpjaDY2ekFRRl9tekQ3ZEVuMm1fb2tBaTh6NTRwdzdxUDAwNHkzenNPd0RmR0htYWF2c3dGMW5NMUN2YXhXajRINE45dVNUaV9DM1oza3lTRHlUNGdUZjNqc0FKUEJybXdSQVBpaU5PTTU3c0x2Y3dJRk9ENnA5QkdWbjFwbjQyZGRTU3A1M3JieTZEcnlwcHdDaDFrampQX3lCbTZRZnd6MElGUWJiSG1zVDNVa2RMb1dURjFSMF9sbjJtR1kxU0hHT2o3VHl1YnQ5d2xLVW5nczVMTWhVcHo3NU1LR3F6UkFnWXNKcHVKUVl1RVpKeGFPSHNmY2VwakdrcFdoMEtfWkhZUEJESzIwOFVqb3FqMDdlVVVueTBaXzJrNXUxTjQzWGJ3V0ZvWVBhdndheW1MYkhWdkRwbzdwMU9JT1IyNkt0SzdPeGlnZ0ZybGVISWNaODFwQzRCdlNzRnZsY1BCZEpHLTZxWTU0Q3J0R2xhaDRvQWplUXgxWS1YU0NLNnZLYUIwWnZHc2lIajhRQ0ZURjRuLUJqTWIzWDcycDJ5Q0tPRlpMRk5qcVR1aHJoYXNnMi1pWTNOTWdwVEQ5eVBSdjA2X1VpcEVfYjVsQ0R0Mmx5QU5NYVpZR1RvSmJTSVhBcFlyU1hEM1dFWllhTGUzQmFSUEJUYTAyeWpyVFZPRDRGNHRFR3c5MkZJZThOSk5NYXRXMFhPSFAwVWxKTXlQUDF2MVdvOUh5aFllaDFfdWg3SlRLcS1hWnJjOS1Xd0ItQXBKTHBQeGxmRzlGZkgwdjNwSTl0Z1VndWJmSkJQVjMwNll2MlNqQ0M2MmVYN3VFTUgzcXQ3TmFYcFVsNXZEVHpfMF9Vc3VlWERQcDNqV01XQTMwenFaYTRFT0dXdElMb0tEM1RjRWNVcmJONGV1bHFQSkFNcWdWdmk2YWRGdTgxU2w5cU1rVVUwaWpqMjZhZDFaeVlEUUZtWlJ4NjJYUW9ZdG81bXJ0eFZhYWtNNndqbkVPSUdJaHhBTnJoX0dNVzVxREhzMEV6TDU4b3lOY0Q5dE1MUC03N1FCbTZwUTFsR0swMVJ6Y3FzTk14ZzRMTzl2ZHQ3NFpIdEhMXzA1TjF2TUt4TE5GbkdhZmwxN1E0eEM0Z3NQeXpYdzBjcklyV2tIQlNQX0NoWE94SmZORWdyNjJOMXEzQVJZa0U1TVlCbzctM3djb3dNT09GcTlrakN1ZGpoekplRjRTUHdfMnFVWVhZRTZsNXJTYjYwUFlFSkJxdW82Skh5ZmdlOXFJX0Rzdmg4eEY1STJfLWtLT2pxU3FZam02NjU0cXVES3phQ3JWLUJFLWtQNF9DOU5OQ0xTaEVWUV92Z3hYdDhzbTRWNGNRMElDRmFzaWV6VnNuV1QtYmRQTGxBT2RqOS15RmhYVTRUYVF3YnZqQ0E2UHQ0aDNVWGdnQzNqWU5IMmJtRGpYSzhFdFJYRTV6cmJsTDRKMFZ1OGxHQVBZaGtOcGNOakNrNWhSSW5jT0dybE9aUk9jdTdSeVczR2JWM2Y1MGJKN0xLNHJjMnJCMTZuemhBdk41WXlydWdwQzdCOE9OR3NTY25ha1V1alJzRzZGYVpydDNzTDJMOW5RTUNoNE9INFF3VWpKWFZKUFJ2MHhPTF9jVEQtdjk0QWgwbWdtcFJ2Q1dhUkl5MXRxeDZHTmZ1R1Nyb0tObmtHYjRiRE1oblpZMmwxQWluWHlCMG5uRGlvci1EUmo1cjhRZi1iaUR6cGhTallzZTZrakdLR0ZObzU4WjFfaGxEaGFob1pQX1lRdlBtWi1Tb2pNaGhMRXZqMXEyZzZWRVd6a1FDWTdIWVEwM1Y3cHVCVm4yaXM1NXpBSGV4cGpERWoxWDgxWU92bnVTdXRhMGx3VkFEMkRoNjZDcmM2VVh2SEtUZTBCeFlsQWdVdkhQc1BkSy1OdVk4S3RaeGNqTWNDVWM0OVl6VW43RVBTamFNaHJ2Ni1mM0pwc09Na3JwREpLM0dPTUVRMUV4cnhYV1lGaGtLaHR2UXZkMXZCVS12b0pRcWJveU9vS1hMM29Xb0FRVnljWlR3Y2laeW4wbUtkVF96NDNFZGhNcDNKS3N5blJ3OVZtSzk3Q3lldGl5LV9HaWVMSngtWDladVMzOUdNa0YxaFVmYmkyc3FJZGZMZ0diem5uMTluTlRVUDlOR3dhaWhybU9Ib1lZeUJ6WE4tby1UWUxhSS01bkNuQ2FSSW9QTF9XSVhyWDZPSzdZU21IWjk4a2xJS19JNTlPSXlWSllrMVh6bGVwd1lPLXUwU0x6bTEtN0dKSE54RGVOMlZhUEk3TThVem10X0x5alliWWxocFFJQnNyUktsMmZZeExKaGt6Q3NjcWp2bVhDemRLVDNhNFV3NDJ4eDlsOWl6dFQ0UmtnV21fYV9YWWk0b0gwdjNCUXRSZ3NfUTBPaGo2T2Y2dEtyZU5XZmcxVDRjMk01SERJd3UxTkl2QXBqNzZtOXJWQkdPWTZFUnhfa2Y3d2twb1g5dWRvcjBCbEx4a1FCc0lwZXpUdzc1MTBncU81Nm1UWXlBUzFCUVdOY1Q2aWhfN3F4ZTVoUkVlZVB5YUpFMnhqR2JNWGg3V1hGYjN0ejVWVWJOTFpxMjBiM3E0UFdkdjJXX1Foc2VUY0JTRDY1eVFPYndTai1UcVpNNi1teUZHb3B6dVdfRWcxU3pzNzRaY3RMSUxyN3pMLXRyeC1WTTVfVHllMVZXbG9ZOTZVYUJyUktpQWU1SVhKMlBQd2RIY1p4SWx4N3dBRXdueXVOZXA2b2NKcXRwZUJ1elB0LTFaX3UyWjZrQmR4V0lpYlVEaGxOU3AxM1NkTGw0Z2hkemVqZWFaYVllRDVtTGltWWJ4dEhsQ1ZiTm0yNU1ZbDYxMFU3QlZnNVJJSXB6VUdmZ2Z5NnpJRzRLQjBMR3BISzNhdHRRUExvQ1VlTDRYNVdBUUFsb3BRa0RKOU5lTHFGdHN4cWpZaGJnZ1Z5am9ScjNPOVhzYzlJVEtVaXJaUDlyTVl0eFduT0tUck9YYVk2WVR2Wi05QUhpT3ZfdTRhOElTS01DVng3OUlnXzdqTjFfREhjdGd5cEEzVnpkbjNKdlJJQTlfbHZDV2dTSS1NUjlPQ19xekhIUmU5dENqWklDVzhwRURSYVhZOHc4UUQ0bXJicmFLTTNsWmtTNUF2NVp2WjFRTDJlZkExbXlJdmN2czhmekxRUFM0Nm0xX3ZPVzcxN05ydDQzeUcwbUZxZnk4aExaZEUzQ2RkMzRtVVFXWVdqSkdvQXZ0VHBXRmpwWkwwOERjQUd0RzVzdkU0Mi1WWjRqSVVYQ2JsemZaczl3N2VsNThvRkJLUng5dUJLby1PWmYxTVloVEZrSlU1V3YtUEVreXRPSVpfU09nZVM2RTVMTUZsOVpZenZ0QkJuWWF0bDY4NGpEdWx0STh4LXpmSHdwUEFwNk9CQVpxalk3S3JoSVJuVGRoc2Y1VUpCcmtvU1JGUFlaaXE4RjJLWHA2Nm1PbDMyRm5RTVprMUlDVkxiYVpnUFlWNnl5UXpZdEdhbjhOc3BFTG10RWkwMVlTZE1ySUxkUF9TVTZwXzJ1NU1oY0RPMDF0Y2hwMHp6eUVfTVp4YWJodXpMWUVIeXJvYl83cjFKdWNjZUQ4SlM5T3JBdEk1YXdsbEhGSFRRWExOWGJuTHdTQ2JrdHNiTGFoa05ya0ZXR1RDNFRzUlBfYTlHMVhFTE5DRkhaMVhvS3NsQTdMMzFGaWpyNFpEYjRQeW5hT1BrSlhCcEx6MGNLN2FmeFVxNWlySHhZNEQyVkdNT3gwUmc5UEJJeE1vdzN6TmVGZ3Y5dzRTdkJ5VUpQdjNGV3huX004M3g5dldiWFh3bU9LbHlLNVpWQi11LWxKVno5Rm81YWRfVEtwUkxqSGdNWURKNU9Ka2dhaEFQMmhOaG9lb0FicnBPNzVYT2tYZ3pONDdwVW1kdzhmZV9FN3ZSeUREZi1LNVZNS2UzOXRPSi0xRmxtemJVc0pET0lScHp5WVl0Y2Q4cGtPU3JQYnIzMWdJNFRIUjJHV2xwZWJCZ3VhYmppck9UTjI1Zy02MmRPWWVKNHVwNjI3MjdnbWNQWF9EYmJfSFdrTnVLaXBmdkJ1UmVNN2J1WE9LVzg2bllHSW5ZNzJZZ2lvYVpIaEJnY3pHbktuUUlkWTJ2U3NzQ3E2b1FSUGJqeHRQZ1gxT1h2bXNucmNBencwN01ULTNueWF1RDBfNG90RGJueF92dm1fM203ajBwcjBGUWZ6NWs1UEVNUG1sOFVhenFxX2xEU3djV2JOU21JbWF3OWt3U2NXN2xrOUViNTRLRTRhaWt2bVRxXzRuN3lkSDNQblI3bC1RMXE2X2k5VWdHUVFfSmk5UDZQbmszQzd6TTVYbDBpYllEVXVUV2FUdlRrX2ZjaXo0VUJXWkV1T0lLU2xZaHVBVzFQUTJPU3NiUWxPbDU4U3ZvTEYtS2w3TmNkRXRBODJVWjdkLVFCN2xKNWFCcnd0Vmx6TDFxX2Y1UGd6a2NtcW1pLVViM2tUQ0xlNjJYbzN1MmFvSnNTQ0c4bXhwZkJ6dVFVVkk3WXdTa2ktWUtNUnlJSGhuOG9xRDNQS0xMbHk2LVZkZy1VREE1RWhhLXA0TnZYb2lLb3ptRHdBZFFpeG1IcnJTdUEwWmh0eE14N0FSc0pqc285blZKR1BOSzhCeTMtbXQycnNOOHlMdHpyRXdkUzBtLW1sRHRKak9CWHJ1NmhWOFBPeV9vSWVzYmJtWkcxSk96Tkl5YmhPOWdNakpsNTBSQXVmcW1sSXJpOEVXQk9vdzdVT1RKQjgtTkR6VzVXdWNiS0VLOGotdWtSYXhhQklPcTJBTnI1Tl9hTEF2RFpmalp1cDl1RGNTc2FUOTNWR0dmQlhHX1BYRlhGWnNtd2NnamxsQWN3bkhCS2V6QWd3SnprRXpFaEdEOFhQMVh0dXJPZHh2YTRyd2ZtVG1yM1pHVWFmY0tTUm5malpnVERSVThVRFd4ZjRwMjB1T1h5RzBBUzlJLUF6WGN0Nm5EOFVQUlB1WDQ3UG1fN05mdWFVTkt4SEZ2RFdOdWYwcVE1OFlvZmhydjJlRDlzUFJFWV9CWjhXWm9IYy0tbVZ5MmM0aDdvTTUzQlFKbTQzRzNkaXotclRwWE0xUDExakc4em5XU3RBQkJxbW40LXdKVVl1UGpDV0VtY29qdGtRZEZmcjQzRUNqTzE1SDJaZGN6MkphZmpUcmxPdWlQOG96ZjEwa2RTYjBURTFVOXI1dHRIU0ZzOUxPVlZHVjJnQUxjUGtMU3R0clgwMXZHMWZLS1ZTRVI2TzlZM0pZYW02X0FwU2xONnlRbmlqM3NJTzdKc2xYdHhaMzY2bXI2Vnl6WmphajVVODlJSjdJUlY3eXBkOWtuZy1RRlZMT0FhRGU1eENvZG1jRjY4ZGp4LTZBVWpQWnBHOFYxVG04OXh5c3BTaU40M0lmLURacTlaMXFjSXNDOUJ4XzlxTHE2S3kwNTIydnBKWkw4NEdCZElXM0FuUUdKbFY2dkRXbThpcF9LMjg2NG8zcEg4UTdFWnpqc05KZ3p6RFU2SkU2Y2psTVdhMDR5dkVMa2dnUm9feVM1MWUzam1BNUFFdWpXLUJ6TXlzTjVkeUpiZC1HcnN4VFltck1wMWI0dFNhMXV1ZHBSdWl2cUFLdV9qbTBvYTA4UHZqRjJyNjRXYXZQZHVxcUs2VGUtMDc1RkFQNHFEZE5ocmpJSHpneWEtUWowY2NCRWtZbUo3di1mUWxneUxzaF80bHJZQmVyWnNCMDM1Z2Z2b19CakQ0Q1VWVWFTRkRya2U2OE41N1prblU0UkZXN1NNQXViaE93WjlCd1pmT0tuajV3bDhfemRFTDVLVDBQUm5IejRjQk01OTZGNXhleDFORzNqME80Y3JDbzVod0xMMUVwMnVweVlULXpfTkdkT1MwMG50bGt0dnNKMGFZSURuQy1SSDRYcUdBUXlpY3hJVzNnTXh3LUNvYlIyUGdPa1dLTVBJN2xFelNLN0VKcjZkZENmblhHRF9scE9HSXgtUTROdjFOU3E4VGw1dkRtdmdOXzZCOEhHbmV5bXdpQUlJZ3NpWWhfUmR0NnBrdWJLVF92aFkwMTI1WWZkck9NaW9keTFLbEpNR3NJNGxqX1dJYVRHQjdoY1dtY0stMy1NNWlZVnJUSktaR2RZbUFobXI3bkZVT28zWFFCZkVVZFpKb2Itc1R6eDdNYWttd2JEcHdQdHB5OXFQem03akI0ZC1yYmlncDI3azRTYlVFOXNFWTZVeVVJVk80Y2l5R3ltZThpOEdLY2dSWXJ3YTZmVlItTnNvcm16dmd5eGZVcDFGWDZuR0xNbE5VMDNEblBVU0JLT1RWTzVnM2JuNG1DNWI3anBVQnUwQTk5R2ZkTEJGaXg4dURwR2NsQm51TFhncjcyRFdCRmFKeldkZXNZbTlaLWk0WDBaUTh4cVZwdGpXTnI5Sm5sVDlLeDVKZXdRSHZkeXRRdHRaTXc3TS01Unc5UHJreklWd1JPZE5PVkxwRWl5RmVqM3YyZmJGRFVoRmg2ME00NWRMQ0hqU0k5eC15dDZ6LUVtQlBpdGtkcWpUT3hLam1qVV9WNzIta09tVndhZkY3MzdTcVRKa0lpWlVic002bEJoQ3Rxd2cwNi1DelR4U1pMYVgzOF95dE51aUY1S0JfcXVwcU54SGJ4TTVZN0l5SnJUcGR4MG9qNFZzWDlxWkFjTGxCZnRNaTFUSTVLMkJRSERSNW5FY2UwT2J1SWpjdlNrcjNYMmZwUWQ1cHlLdnBXcXpNbnNuQ3NsVnYyWUY5ZDZHVWFKeHlfQ2MzRVJqOXZIMnRJb2hBckh6VzJlN1lNUTRyQnducnowOXc0aWNnNG11TDdVSnVsVnJLcjdJS3FDYjJyWFViTDBIRUVrTUd3T0pISEVnVWxlYzRGajRNQl9ZNnh4SFJuekVKMVVBRXVTeDJaZG9Bd1JsSjMwRHZYTWMxcFo0NWktYXE5eV9oOFJxaUZSUlQwSktjYzFpeFA1Y1JWRmVpbFhKWXN0cDV6X1pKZ1FrSTdCQlBaR0M2bkZ5RC11LWh4MzhQN0IzQjdUUzdoWVlXdm9ETFpGSkI0a1ZGRUhvNlRKdWNDVlpJaEFMdHlfN3dreFFxdU1mMFNOREQtV0FPWUJkY3JpZzZmYnNKSVhvc2lMSWNDM3hOOGw2X1dzNk1UMXdXODZkcWRUWkJnN1Z6YUlnREJ2RDRNakRLdjk2M0k2c3ZmeG5FWWNEQ3dDalo5M2JwUGRJd0htZEY1ZE0xTGZVLTExMktBN3dCQTJWYjU2cFdBMWk2QXo3Z1N6RXhQRkZvVkNBdFlJUnBFcHh5SVBaQUVHV05zeDNpNEk2Z2lyZi1hUmFWejFXUURCemd3ZDd3TlpqV2xrRVlyRFBBZTFPVnl0bU9HQWlGZmZiQWVPaVF0V1lzMHYzVGFTOGcydk9peXRvakE4ZzM2dDQwQTB6T3pKYnlzUUM0Z0hjODJuVDdQUDJBTFdPU0RLTmxSX2M0eHFWTkxjdlhxZHFBNmpVRlBUY1FONzk4U1FRbGprcmd1bzhEcGxTZTBnODl1VHUwV0ttcFltSFA0WEtmeXRGRWlBR1FDSmIwZUl6NVZsTlAyVnFiRGRMcW1JSzhuNVlNSUtDY2ItY0FUdGFoRXU4QkxQcVE2VC1aa2t4MF93M2RmZjhVX3ZCZUFwS090SERMWUVqcTBnVktxUHhaUWczY3RJS2oxdXJPeTIybnJ5aTlnZWZVc2QzZUYyMnBCQkx2YWVWSk96QUZndk5YdnRiTXFsUW1CXzQxNG1tVGVtaGFlNktjOW9KRF9sLUxKWDZPU1FISlo4MHQ4Ql9VZkdacFZES1NubmFmMmY4UHYyMy1EUmlGNlNyQ0ZKN0d4TEhUNXJSNzU2MW1YUlV5Qy1leWtocVI1ZFZSZDZhOVQwSGY0TlZSbjJiaVdxeWhPR2VUa0hKazE0YllOUFdYTm5XSHl1VTdyNEZoOVVsb2lES2xIQjQ0VjlmYS1YMzE0c2VHZHRqUFNLdWhFRHBMeV90VU95aWU3aThJaGNIaE1XOHlFNi1Oa0lZSnF4cU5EbjAwdUkzSEhEUWtGYzFQV0RYdlVIcnBJUFRJcFFBQ3c1dkNWT2JpUmFoQVBJM2tFRFh4ZkY1S2VLMXRuS1hsZWRxQmRIc3lCUkZuNnp6T1p1UHdOWktKNHlYVDhoS2wyamQtNTlqdWpibDBmNF9WdVJFdmVQOW9FWWtTOHU3UmlBVEVHa1lPVkg3MkZXTzBzLVNJWGVRRkQzX3VvWjdrM0xjSm9GVjlXMDZrQUVWY1dURVZGRUlwamtNMy1FYnJSUVdMcy1heWVYQkNFSUxsQ2t0di1LblA2N0pyZFV0bTI2cnFlVXZ5MzdTMTBCTE53YjRiNHBvREhMS2FveGFuZy1iRjZUb29PR01UU01MWXUzaUlLc0R3Wm9kZG1WR0xyQ3FxNWJJR1BFZTNoMnc1RjFNZ1hyVEU2TmFubXpKckh5eHVPc0VyaGctaEpGeGVCcWE4WjZZWFduTXIxNDhLanNoYVAyeVpFSWV6OG81UEc3cWRWaHFRenhYT1c3eEQwSTUycjBvbkhxM1hzcV9SOGhFby1UYVdPbmY1NW1YYTNWMk81LV9XanZxZThWdzdwTUF5dG95dmh2NTVTVk9xcVdkNXNIdGhITzd0OWlMdDNFYVMxX0ZnaU8zVmVENmlvUVBNNjZsWmhaYkpZZHo4b1RFeU9SR09KbkpjSVpqVm1YSlJIbXF2eXZsUlpjdkVMM19KR1hEOEZGNHlBVE0zaGhlNDN6VEJVdk9oYlRjckhNQTRLZjhWczR4cU02QWFsczVBZzRUbVZSSnVLLUVRWFZCaFE0TEpBbEgxVXZzN3lKYTdLM2hsQlZEMWo5WXRWS2htMVhPNFJySTNrZmVxYmxoMTRHQ1NEdnI2OExyTk53SUZsY1JEY1pKalBOQi1GWGhUd25PbW50ZVItOFY0UTJVa19tczdTTm9ZUElWRnJqY1R6X1ZkQ3dYRTFmMjNocHpqQ2tnWGlsSUlNNEpNMkZmcDNTZTY2c1JHc1RXXzBBbF81R3Fqd3ZfZFBYWDA0RHJNMFI5dGljTHhLczBnM3hkSXF1M0huamxBRFU3S0c1Yl9NUmxUdWJCQ3pEamtJQWRRUEFwcUhaWktnODYyLWloMDE4bERfbFViWEwyMGhFNFBNbTE0eEg3R0dPQ3FWa1o3RVU4ekd5Yl9xWHV4RF9LZHFLSVR5eUc2WC00MHhOeTJ1cWpDMmlvVVpiM25Tam5kZWFiX19kbC1jMDBLWkU4RnhTRnRMN0RreWxpTWM2Yy1VQXBhUlZKQy1aa2NBaXlPZ2NBOVZQa0x5a2xlcGRNYXY1Y1J2a3FvTHhmS3RMU2FhS0taWEdveFd5OWp2am5KZHZfMmZDTXlUeFdOUWl6MzI5NG9mNkNNY09sTmc5VW5iaUlHb1JVX20tMHQzamNRWHBrZ0pDWlMwcmQyZ3RGVExYdUVlYU9ZTnJjZ2dPWkVQMkstc19kNUlCU2JqNXE1QS1HYU9hbzFuRmdFOEFlMDdEVXVzeTBYeVEzd0cxb3JIOXUtSUxpSHpyd01Ickx5ZWkwYmpYSm9HcVBuSWd5d29nWjdZRmF6a1ZSTGE4OTBZQjlXR2p2SEdqZ19yYmVabWRDWkFoalNiTlRveFN3bGkxMnh0bl93WkNWVkhlNzUtSGNkTHZHaGgyekwwVjlROG84NFI1NUFKVV9fNjI2REMxT2w0cXVLcEt1Z1EwMHowZElPbzMwcG5IT3hqa2xlcGRMM0dyN3dHNXZsSUJKbXVWMlBReC1Hc0JmX3lYbUhxOXBZZ2RJeXl3ZjNqSjlDcmROYXM1RGNseUExUS1Sa3MzdWtyU3dublN1ZE5OeTNCRlJ5ZkgtbHhWQmpYSHQxUUlQM2JLbjRvNmRPSHNLclc5XzRPVnBNREQ0UjNMRmpYNFM3MDJ5ZmdXSkk5Wld6TDFadk40X2t0Zy1iVHNYOC1zdzJfa2Y3dXVldmJmMkYzLThmM3lvNDNUZ2dQaDU2TEZjbFNidGdaNE05MDRTLWF5SGQ2NkhVbmU5T1Axc1NldGdKWXdZZVN6TTgzY2FUUXVqRVA4bFhEQWxKZGJ0MTRhZ2FValJkNlBNLVVIUGdGUmNtRTd5Y0k4YzNSdWxrVkU2Wk5qeUU4VkNnaFRoN2JMNTJNYXhUcVMzQWJKNUpHak9ESkk4ZTczV1BFZHZPZ1FPNnZvak0xNDFnSjFtaW9rTFNIbXNwVWRhSFdIdkNkc2VHeTZyZmJfYktmeGJGS3FNTEN6T3VKbjhxd3hlNUxJQms2djJCUmNzM1I4ZnI1VjBSQXB5U3J3bmRuWExFRHdVRU90YzdwSTBqajVNeGFJaWxKU1FMb00ydXpiWXZaVE1INklXSndEdU1hNW04MlFCRnV3TWFZRDd6WmNwM0RGb2dFc0N5YnFjZFd5SFBhV3NxQk5GSDRuYXdwRnMwQ2xZMWMwbGZQR1RnTWZJeTRxRnV5U012cHNkYWZORUdBdVFpYU5zRzROSnNJV2NYbFNFQ1FsLVhRaHF2YkpUWE03NldPVTVld0RneGRGeG5WREVhdFRlQWZZaUVEN1ZBelFNUXNFenU4VUx4VmI3RWJzX3RsUW5hU2hVX3E3RjNUVEV3VUpPdDNCeFdPcWFCbmhNdUdOdU5CNXJabFd3YVhrUTFNdGxwOEFmWTBXSF9kX2F3VXdQbUpCQXFEX0xKRncybWVBS25OZl85NlZiUW5iU2J1ME5uejlvTnVXVmNMcWZIeDIzX1JfVVE5enZibTlkaGlSaUxSMnVDUzN2d21XS1UzVG9vbks2c1NpeWNmYnh2QjE1TnFnN2l4UUV6M2U2emVkX3pQYy1GdF91ckRrR1dOTFJ1d2Zyb001REQ5XzQ0UFVvLU1SQ2NiVGp1emxqQmVjOXRUc1NRdnZWVnp3WHdNY004Zl8yWEJxcU5OVl91b3V6dVRPWkFfbkNVTDV0T1dFSXZIZmlDRWxJV3lrS0U1TUFUUVlUY3FRd0VwNUlBeDFDOXdudnZtVk5NcmFFNHpDSDJuZllsUGNIYWpMUGlXcHpUdUR4anJGeFhIbVBUc1JTM0Q1YU1yTmM5emwyZkR6ckJsbzV0Y1pPT0ladlR4X0ExeFA3RlFnNjMtbUZzTGlRZG16NzM1bWVjUEFmdkROMnV4dWp3YXFITGx5NGlLelljVVRjbHFhYV92X25VM09ESUxkcWt1S1pCZFZzZGwwX19YeDdkSlFHNG5nN3kxU0d1V2Z1NEdRRnV3azE5b1hJM0ptU0c2WVZHSW5wSUlNYjcwSy1BREliMlZBWjlVaUloMW1HNmpUZWRHWHJtMzF5b3Jnak1PUlRERU1rYnZCeTFaazVrR0E0V05aSmRKRnlSQUtXT3VNbVZOVXRWcTFWRHpkTkpNdGhaWUZHQUU5MEtBZVlaZDdmaFRSZlY3ZlFYdzhWOENmM3IxdmdMTXJyZ2JSOGwzeUsybFBLMnhMcFl0cVpRanFaREpvSjlwUHBlcHEwRF9Dc1JEcVlDVi0zNE5GbldXWklZQmtmZTRPSGFFZTRlXzNQOGxNVTFKUWlJY1dXWmJ1ZUJXSnlpNDQ1b24wRm0zVzdlYTRnUUJCN2c1MzU4MUJBZW9ZQVRUYnFFV0J0LWU4OS1YMDd1Nk1vSDVKUU80OV9kSW0wNU11VVlrV3ZQODFHNDMySDFPYmgxRUJBNG1WdHYtM2ZqeGVDRldiZHVzTWxxa3RYbXVodjBEVWdmWGh4OEoxS2JaMUdjN3cyT1E4S29KZXNGM2QyTzIycjFkdHRIamdmbHBUZlVXOGFaN2hPZ2otSy0wRHg5dXV3ZmNVVWMwUnd6bkNMbVdqd0lnZ2NfQWZJbVRpd1ljZWgzQzlpVnpLdkcyV3BfZHpCMjgzM3YycGI3SlRKbmFYT3VSSlhiM1JQS0pONGcyVXV1NnNYc1JBd2FlTnVtVVVpM1B5b0pCY3dhZFRsbVVrQ2JNcjJMQzBzYmZkbjNMOHk0bTd1UGg3VTJ1RE5EaGk1LTZaWUNYZE5SRVNzajVrR0QxNzJoUHRSVEV6RzhUeEN6Nlp4dE5MQ004a3pHVWtjS2FLeVctZFdaaFVWRENsZVdnQ3F0NWdvNUI1OEVaV2RJbi1SRTRxREZ5RlBDNDg3bk9nMUVyVmZBN0NHWldha1F2QXN5ZUhKb3dkc0RrdzZIV0x0Y2ZwQTJENHEyZ1Z2aDdraHVNMmwxSE5DdWxNOWJSXzZZYlhuTGlCMzIzN3Zjc1d2bHpBVmJCd0J3WHRQT3RGWEEwc0V3c3Qtb2N5V3Z4WFNsT19kdlhRNUdHa2pLcjhFX1hzM0dvZmlqaHpsZF91OWFROGNTek1XbE5xRGNPWncxdncxNUtaeFNXR1QzcDJ4S1VHLWtSZW1Jc1h6VW91TFdma2RCbk41Vk1tUTdJTXA1RkFfcmdHWnFwVHByaHJMSlVaeTNZN3I4bG1McW15Z055a2FMNWkyVEpIT3RWVHB2eHVzck1LMnUtSzdpbUJVMHlkQndFaHNOS1RWMXlGZng4Q2JZazJTeUo2QVlWeWZLM1FhVEdqb2FFMGxocGNPRUIycmpfUDhFWHAydlJ3TWZsYjBtc2daYTFCOE93d1BXRUJMdlROVjVzUEYycFpUaFlnM2xWVzFjSlZlTlBLRTJfYU1zS0p3UGVIY19YTTNrdDBXVkpMbTBnZzE2ek5EMjlsaUlfNTBjOW1VN2NpVG1hNEd5ZzJtSkUzVkg3VWxUanVkRldmNTZpSEZHNlJpU0FqVUFtMmtBTkNGMjFyb3ljVUhFTGo1aVlQZF90S09vcmJvRDlWRGcweDRDc3BQMmRKZWVzMVR6aVMwNU5qU096cnd4dG5qMTBBZ3kyd3B5XzUtbVl6dVJvYTUtNXVPSFhDRkFNSW5QQ2doakFudHVYUGw5REJRb1ZSMWYwUS1NdnJWQU1Qc3pfaXMxc2xZaTlFT3NDUWp1R2hsNGlxYmVNWWRhbFVZZllGYnd5dktaTGNlZndjaVdpY3EycWhpM2FxaWQ5WkVwVGRyR0FvRjItdmd5cWVsSjlRb2NfSG8xRldZdjFrVUR3RTBmQ2ZlV1FteHBFMTQyYmlZNVNnV01CaE9tVTBKWkt1c0hCV3B1ZWJ1TDVlc2RHVEJwRWtpcEpHWmtQSlB0YzBvTlJSVU90TVdZTTYxbXZaXzRTTFpqOW9kZ2U1akMwMHBzSHVYTUExTG5USDZ0R3FnSDlTd1Izd08zOTNTQnRMRU5oNy10UEVEVWc0dHpJeXAxTHQ4R2dWS09DTl8tc2RCbnlpSjJaNmYwSThEMXVPQnJYN0JGb3E2aHlkOWtMWnZiX2E1VHFUdzNKZDJCdHRzOHBWS3hhaXFtTW1WUmZPbU4xYmRJSHhlVUNCQzdXdE1LZUc0M2FNLXpYZDBfUmI4MkxJTVVVRDJadUxXb0MwUGZzUmpiYWNpOVhBOFlBVTE1WllTOVh1YV82NUZYT2xxcl9sT1RuUjd5Y0JZY2J5T2tIeGpIWVFmRGkyQmZRV0NkMElXaF9WcUxNZWozT3ZEUW5FZDZvNEU1N21FQ1lQUEJUSkFIZTNHTjU2UEl6T2xLNTRtVV9USUNpX0JKTkRXemJvdl8wSnVEWExZMmUxZnhCOXNURmc4c1hINUozYUhYY2dpYUdSaHlnMjRKZElJV3dkcXFRbmlLZWNfS1IxVTJhbEVqX2xPQTNNb3FadHk5Zzhnc2RCMjRmQlRLOWJZUnc5eW9OVWhrSl9fM2NxNlozVVFvc3VrWklreDJwVlRoTkU3THdEQ2gxbnVRYlpvUlZrN1NKc1pjWkZ1TTd1SUJRWUNVMGRIQzFRS2lublQxc3R5WDduM3RRLXZPWGRsSENaOEtmSERpR2tsemdKUkhVSFUwdU9JQUNuNGtUbkRzN1ZrRGtEZ2YxalBhYXVYLUR4X19Cdm5oWXIxRFp5eS01N2x3SG85c21rZDFNcGFUVGRLR0cxOVktUDh3MmcyNXJCcVlWQjhBZXRlbXQ1bEtZdE8yckhJNmZSSDZrLVhSM2I3WkVlSFA5MV9UTkc4QVZtV1djMUhaMmdYN0gySzgyUzRoUk1JcEItdkxUaFI2QmV4bTdDeXJHSFZqNHN3M0dtZWd0cG1obmJlNEZQRVo1UTZnNGhScUpmYTJvOUswZDI1aktwaURBTFllRVY3Y1VDUjhBVjRYNU5WR3hWdWppOVdYN0gwaU1mUjZHMmpIVkFZSmloSkxOSC1JSENWcVhxdng0ZWNSRmVxNGRqUjNBWjRITm5kNUJBaGlTSHRObkhlM3EzeG93cFduQVh4M0hHeFZKcUozZ0pVdDVtdGcyb29pYnJiTTVFVU1HT290QlZGT0k5eGd4RmZYT3dhYXNPNWxIbTVoQnFWZVczOHlXS1FqYU50VG16TjlITjFrRWFfS0JacHU0d3RGeGswNkdWTmFEUS1QbmZBV0FJalByQ1FjSjJMQ25kS2FBSHJyYTQ3WTI0dWJYd1hPNUZsSVh6NElaZzI3Z3NzTXpVR3kwdUtGc29LdnJrZkFLdjVWblR1WlJ6aklrZzNoZExLR2FMb3RPVmFwZkp5VnNidGh6T0JrSERUMDllcVlOYkFwbWdYWGdoVTZSb05nV3IwOURSMmZQV1FyaUVzbm9Gc21yZWc1MUUtc2JUWjJCb3FqVW1zRnlndjJZdVhpdTVXdFFUNGtKQ1NxczZZVEw0cGhoQy1sTEhubWs3Q0ZKVnNMUHpUM2ZUcVF5M2V6Sno5dUxyUWJKRXVVMGgyWHQtNGwzaENtNU1hQlVVUGU1SU0tWHZhVk5QM3FQUGN6NjEzZkt1WmwzV3NmZVVtYzl4OWhrbElxRlI4RE1aOFdpYnhJSG5CXy1vTnpvcGV3SXZkOU1RV18wQ0hJRlNWWV9lMDNfNlN4SDBiLU5DX1Y3MXZHNXpNTXpqUkc2WXB1d3hMVUQzQnV6cHNWSVR5ZTd4M1RSWFBxNE42aXF4cFlTeWpyMUUwVnk2UXhzWGc1Q0NsZEozN0p0R082b3pTY1gtdDNKOFJBbVk5Zk41WTRURUZCZkxFT3VtdkQ0WXdjd0xuVktKMnVYN3A5MWZjTTUzVVRhTVc4UTZSZ2JFaTlnZjg5SXl1OFc0WTBIQ0REbDE2dVhCSXdZR3IxX1lyRy1zOUU1dU9FbjVpVm9oY1JsX0RrZlNNenBsSUhPWkJzLVM2X0tud2lZMXZYeThhTWlqb2tFaTVOZnBMbUdZdklwdk1MUFViUzBrQXhGTWo3dktnRXR0S09pU2wxVTJleFF5d0tsYnJtUGxFamZ3YnFjRVZkbmZvTFhIYXpfNlhYTE1Qb1FobWhKUWtvVFN6UDFIb2J4UWY4Uk53VmpaeGF0enpxMGtpMjVmUXlTNTlET0wtVGtiWlFqOTByUnpCQ0hVaTZlNWFmNUN2b3p1T2NIdEJmRnJHVkw4R0JQMk1JWi1UTGsxZXcteFpBbE10UVRITEVuUE1US1Q3X0VwY2dJalNDQTVsZHFXQndZVWxJaXZWd3NzNXRlWEswQkNvWjY3OWxyTVdTOEIwUmRwbjM1djlPU1JOejh3TUFTNER4UVV3OXhOTzBrSjdCWHdUM1dOem90dVFFVDFIeWpEcDV0UHY2MVZuVlVDc3pRME1TaTcwakU2OGtnVm9TM0sxaHFxNUhyZlJoYTVEM2MzZDFBWnJzaUVsMXpMNU5OamktNnBpZENKVmxZeFNBa0gyc2VlZ3lGeUVVV2p3ejZRZzBzeWYtUGtCWVFaRGtKOGJsUWFyUjRMdVJGVmViUTZ0bnQtVThmS0M1d3kydzFXMUhiWUZOWHRzUnVkcm03WWVtUDI2eVVNRzNPUEktLS1zV3VEUW1VblIzemNaVGZkcVBkc3ZyRmtES1JESWZfN3hsbDBLVGtIbHEyRjJOTTBiYjlDb281SG5RdERpX1pJZmIxa3pZd1BHTDZMV1hsazdhcENaQ3daWVBLNWNmbHkyWU84QzRuX2w4eDJkLXdkclBMWGNMRi1xZnRtX2RzZmNrNjBrNUtGenozZEJKV0otY2l1ZWM0S010Sm1JMklxUm50MVpJRnNTOGhEcTF3b0ItLXVTX3ZfZ3lMMVRxRklNWE80b1dUZktOV0l6d1NOUVM3UGdCYXdIMHVIemZDeFJ1bmh5enRMTEdMZEtBamZxc3d6R2dDMnV0THcyOVJoZWtLWVNyaElGWFVoNFFjZF9GOUxfNXZyc3pSaXpKekRUMGVkWlhSVkZNdTFsV29zQUs2YV8wUGVZbFI5cC1XMS03eWo3dGJveGZGdzMyd3o2VlNWamJrMHlIUnpRYmtwNkp6QlIwcm1QU3VlU1QtcHNCSWVwSGI3S0dHQjA0ZmJvLXk2N3VSRkxKTHZlcTJua1o3dDFIRGozQ2taVGduUmJ0S0xYRVNkb3RFY0toQ1ZXaXNrTDZabURLVWJJTkF1MXpLMlJhZkJhNzVDNlVPX2llVnAweTBJX1JnT3hEd1Z4QzVReS0zdVZkc2trcFo5VGduUGhXQWlURF9tQlBmeWhQN2NCbFZvUUhoY1lKYWVjQ21jQmtVcTd3cmx1emdEWEduUkFveUp6MXlwZWNjWC1IUnlqOEFFYXhxSkVUeGpWTFpNODBNS0xtRjNXZWt1dVMxSDIxLTFYUFcyaDBfSkE1OTg1cm9uWnBCSUtoaXptUU44YVNndjBIbFlmVi03cTl1Vi0wLXFrNXVQWnljQkRDYnpUZnlGaEdzWGdKU0tPSm5PYkU0QWktMW14NHpJY3FSRmNiWkt1cF80clc5Z2lFX1pfYjBpTWlMTGlBUHJ5dGo5T241ckx1MnJhY2UxUHFvb2VrZzFuWWxCRllTdzA0eHBWSjNGNURCOTBDMHh0SzAyMEtEakpRU1VCZW52dUpsZ3V4WVMwWnQ1N3dKcnVXdmFpYUlIalFBTmRjMU1lSVJEZjF1Z2EwZ1NwVjZPbEltMlY2aTVDMllfcmY1eHJITmVlWjdwU3A1X3c1UTk5YlU4RkdEMHZNbXE5azc1eTdsR3NTMVlwc2stY2RZd0pSek5oa3RPeW5GOFZBNlcxSjkzVmZsa2Q0NTFnMGRJM3dGd05kY0FqWG8xdUMzWF9zdU1JOUl2ZU9jcWFqWlVNcEFCMTZzbU9waHVpQXlBcjNTbTltMTJMMVBvbzVVVDE4V1lEbFl6eXhNYkRmWmRUX0I2R2lNUnpFYVlHSENyQjJoaUhsYXlDdlpCNW9lbkVTUG1rS1c0dFNmOXhRc0R4U2U1ZnR0UGh4enJ4UWxieEM1V2dINlBibzdYdFcxdUpMUEVzVnlwdGRjS2lPSHczQ0d4dXA1NnVNdjhlRW50SGRHdVFERmVfalk5TUJYZXNsdnMtQTdBVzg0VUFvWE0xd0RYUFo0SVZjdmozSWRpbTh1WUVDU0dXMHlPcUo2MEVBYk9nM2ZERW1wbEpNVTBuc2kzREZmbWlqNkVRZ25hdk4yVUN0Z1lKVUUtUVoxU3lHTEY3OVlIRXhFVFRUZ0RheHNIYnZCX2NibWFwNC0zaGhPS041OXlQUmN1ZldZTGtrMUhpODg2c3V6VWJZa2MxTkZRWlBGekdYV28yUUFvUXlCQm5DS01YT2QyZzBPS2RaSFBYRUtVR05FM3A2blo1WVFCMUx4dXJhTVJCSUNqV2lHN1E2cC1XdXRpNHFvNnRvUjgyQlFFZUtqSC1KV2t4a0NoZ2tFaXpUSjFGcjlHRFZ0c3duOUdFcTBKZjJ0aFhKWXZUTkdTY2tTVFEwUzFIa0NlcVNLOXAyN0p3NHl4RTlocmFVdHYzaXl4MEhFZmNnTlNLVTk0WmpFa0R5UFozUXNLUUlCa0xweHJReGRsZ1hSV2ptMEpJSWQ3WmRiT3I0YUZPN2ozZlM2a3EwQk5SVzFBVnhRWXpkLThFWkV3b2w0MFNyNmFfaG5tUUo4WWZvYlFoTDBhZFBfWUNaT3dBc0g3alc4U0lKbGV1b0hLX2hPc2Fha1hkTnJPaFNoQ2VVYjNpNUQxRmxkak12SWFEajJFN1dfUDJodmVna25PNkFhOFJlZ1JRN1dvQkVpdGU4OEszeVdPOWJkdmZ1NjFJaTBIRU1RUm5LQVBILU83RVpMVWdzTmd1ak5YRW1jRmdmRmhmU1Zudko4Vjd1UnNmbE9NcEZkTmZzNU1KUDdEcEF6R3Q0aGRQaG14ZlBseDdqTXh4cnpOQ19GS0tvRDBwcWdJdWtTVnlMZzdrbXkwOE9paTk1QUNMREZsTnlQZjNtaUVUMHRfaHBmWFZrckhCZDB1Qk5Banltb2J6WmF5bW05SFhLTTFVSUFJN21WQWdUZnVUYmQ3eEY5TjlDNUJTZXVyVDJtYnNaY0JtWFNfa3hZTWtSWjFkSkdjN3FwVFBSZUxOVm10UURBVzZWdTZUWlpHNDREMHdRNllKalItNlFiVnNSR2NReGtxR09KQ2MyYm44SEdvMnZCSG50TTdEZVM0RXdLUXh0bVduVXdITTNVT0ZHaWVOVmRvZDhzcllzaE9sM2tvZlN1YUxIUkZiRGdVQlZoaHBFV3dUejF1VlhOd2VVN003N0R1dGJZYTFiRXRJY0hneXJjQUJTVW41dlh4cEhhbVY1RTJHczhEeDhYTmlBaWdYREJfbmhFZEdWWkVqSmd1TDg5VXltR0c0X3Z0cVMtN3hGYmtJaFpPMXBEVHZTMm1KM04zNUduNGI2S1FWcUEyWEY5amJwRFF0VFY0bEgwZWhiLUFyeGtGMkJjbnA0RUdNZWs0eDRXN1RfNEdtNzlFb3V0TjJzSW9iSFhXYi14bURJbUVId3ZHZkFsYkc5ZFFLZ1pDT3Rrb3EzUHJvY0hEMVFUTElpNEpQYU0zc1VFNngwcy00NXR5cEFHQ3N2MDhralVkUW5GbUVTYUhTYzJjSE5CUEFFX2ZzMGU2bm1fakRLektON095RkV5Ymd1bHZ5RTRsb2ZxWkxfcnNxWFlPN3lvT2oxX2FLVHhGa2ptallGNWhiS2FjcDhCNWstRUZUWVZYMzMzWG9OelJreDRnOFNWZW0xVUNibE1QOTJxb3BLUklPaWNJQWpmN2dkS2hhQmZTaE04UUt6bDJBVjBVU3lwMkdrUFRja0NrWEtXUXhhbl9RLWhtZ2l0V2w5ZVpOR3BpUjVSUGxqR3VRaVRYNlJENGZKcUdEQWNMSnEwYjZYZGhva24zMHd0Tmktc2J0RUN6NC1HV1ZOZVVBYThETl9haFNaMXAwT1MwMkRkbGVKOG1ZcW5vYThEbF90ZGZEV0xiNDg4WVplU3JwUmV2WlBJWm5OQ1lQUngxTDdxMVVGcWhfajVrQ1N3Q0VWTEpDUFdzaXlKSzluXzU5c3lUaW9DemxyM2tuTVZ2bDBZSnFYdXF2eW95TUZrcDdGdVdBbWtfYUR4eURaYm1mRGNLNVFnM0c2YlVwVXhPQVJyamgteWtreVpfcmxsa1hLUjVrTnJJMFFKYkw5UHBiWFNtMzZVSTFNajB4alVael9IYmx1Z3J3c2lzRUtGcGw0T0k2bUY1cUNLZVAwWmFmaW1nblhxS0d0RW9wNU9kTHNGRXNoa3BSSWh4Wk02eTVta0RZM0FrX0c5N0FuLUxzaVVWdG5IN2NYNUJPbHZIMVktREFGdzhkQTBpOFhPbkJoWnZ4aFZqdXctbWtHWjBITURVS0RMWk5uUVR1RXNnVEpDT1RQOVc5R0xtaGNfMGRSS1UwQTQ0RFVRU0l4SmxEYzNYWmdYOV9XdWxMY08tdjJib3pvLUhLcTB3blN0dmlPSU9YQ21BRW9PWDFodWROaUJmdktBc2NYTnE1bGc1YmtaN3dDR0xSQWoxUjRSelhDMnVsaUkyZ3lpMTFHZU1VanpoU0h5Ylk4NG5vWGpDODNJcGFTX1FTYl9WUFEyeWhMWExVdnp4SHJ4YldpajQ1a1VEMWJEZUkxOHhhQmd4UzJ6VlRVMF9FcW1WaU9wbjRnTWczd2oxMW5tV0JYOHVHUHlkUENhV2dtbFJTVXNxVXVGQ0dYZ3RNUFN2R09XRkl0LV82YzFWdVlzMGJDNzl3QnhwYy1MdENkRXIweVM4NWZKQTE3aktoclFINUJLQXNneUhKbzFVU21FZGMtTDRweWpkMS1obnZUYzZxRHBXQmhSREhieV9DeXBfc28ycERfYk12eFZ1YnBDX3FIT0dlaVRLSkpTcHdmMC1OdFRLSnAyUzloUXNQYnhIeUFlQy11ZThIMXA0WlcwWVVyWGpJRDVoS2pKRzQ4b1E2THBsaEJTWlNCa0xpczRqNm5nV2ozN0dLZEFNN01jNlpKVFZRdEw4RXZjWWNTSUlEN0liMHAzXzBIQzRKX21NTEtjRlZWWVp4TjlvSkVPZWJLUFVzbndwelVUX05KbjQ4VVZrMGwzeGtDaFlEVDVmMENoNl9MSmhSSzY3ckI0dXk2WTY3N2ZKN3RjRGFfWWsxZlotcmVpSlBRNHhMTnNOZ05hU0FoQ2tqZE5Nb241bmlPUFNhQUtVcWdDbkhsZzN5bDhPOXFhcVk1aXk0TzFlS1hHcmY1THkxV0lNX1luNmcyeFg4aF9TZ3hlcTdRN2ZOYlhIT0Ztd1Ywdk04aXhhRmJZYnF0N2hHT1pjWnVQaFVOaVdDSF8xb0MyUHlIUE1IcEtWcWdaOUNYYkdQNmFhY3J0UmpRMkxZdUZNSnNWRVhlN1gxNm1xMDZpd0dLUWxsUlZxXzZoZGtqUUs2SVpDVTNzMXV3cFlGeHdaTW1CQVVCaG1lb2kzUVItQlhrYnc0RU9nYXllQTJkSUV6a2g3cXFOYmNXNlNBdnp2eXd4cUlQT1FTSWYtMVlSRnZfSDBpYXN2MmQ0R0kxNHpDWXUtXzMwT0hqYzYyX0VMLWg4V29pa2Z3cTNXZWZNMTduN2hGSmZzMFNWNTVHY2U3UTdDQkxxNEVkSTlXc0t1MDlxeWhNWHJwUlZPWTBrZzdsNjYxa281c0VsN1RxYzgxNWl6OU1wS3RZU1RlV1lsd3pnb011clJDNktNYmZEV2poUmlldGo0Z0RkSW9GaUQ0dHJGNjZvU2k0WTE2WkNxYkVPMWVKNGNseWZZWk8zbzBwSk1NQ0gybUlwTVZPMkRueGJSSURIOUxiSEU2VE1qQjYtZkw1a3d3WUVoSHI3UnNaMnFFYUdWMDdXcFkwMUdoTWpEZXE5dGI3Qm0xXzFvcWtsdVcwMjZRUng5Vzcxa0RwU0xPNkxia1RWS2xuMlB4VmdZa3F5V0pHNlZUbU81T21fRWxlblhQMmx0bV9VVXN4MXgwdkxWczR1ejlHV1VYTGZKbVlzZnViQXBwVF85anZyRDlkV2xWc3NKdUMwRlVVNWxOUVUyOEJWSXpycV9ublJVRUJjc3BLR2d1RmN0Mjk0V2xFVjZzNFdTSU5vNG8zaVM1RWtfX1FsZEp3c3JKT3ZQS2M0S05OM1F2cFJDa3hPQ2VwZGpZZEMtbVdfMGxNdWVoVzVmcGUzRnhFMGhjeHFrZmkyUXA1Mk5VYkVZVWpPV2JRZ3UySVVmX3ZBMWpIRW9UTzRQNS1vYTBrRHZaUmxPQldRbTMyS0g0RkhwYWpiNndLTWVIOU1VZ2ZlS0dBNWVJRDRxaWwxWURONkRMa1BKT3FkeU91UGdqMTQ2WWJkZEtQdmFDOF9YS2w5Nm5BV1lfMVo3ZTNKYW9NNzhZR2pMaEV3alFpdHlSOElLRTV1ZmFDZHdYMWNPMG5FQlRnYTZPNzFrSEJkMEpGLTQ5X2FPX2RoWWo0WmVLWVNxOVhkQ1NHNGQzSFNxVGVsT2ozX0tzUGp5dk5ScmkzY0loVmJVWHkwcVoyN1NqdlRRcHFEaW5yMDBra1Q2OC13SXMxcXJhazQtcjZoQUFUeTM4S2FrUFJWYy1WMUQxUVppR3hFYUdrbUg5bF9YT2hFOEtHREIzZFgxNVNOREptRi1PR1dKSlJZNWhqZmpFWVNEVUhmb1NHTElNei01Wk5hVUs5cm42cFBMcWZfcTc1dkZ1TWRISzZhcTl3eWUtQTdLTjZyS0xqMlNfclV3RHk4dnBlbFBBTktNTG5Td09mV2U2eXdFRmFJTDRVLS01Z0NvczJBbGd0OWE4QmRKOVpsUDBUSzZEb0RVY0JTbE9VTWNJNGZXb0lDYkhwc3FnS1d3MUJXc0xGTFU1UnNSZVF0ZHhmSFNZdWs4azFWUlNhQnZnSEh5Uk9NemJXYzhSWmJCVjlQc1doaEpMeVpMM3RldzJ0RkhaM2h2U1A2SUVidWpxSE0tYnRWSXFqb3BEOHFDMG90YkNERnNqdXV0bFdVekgxTXhNVFFGdk1KY1Rfa0swM3NOSVBNTnc1MVlrQm1fV0hiQTNZY1V6d3BPd1JNNnQ4YWFVV2diRUkyNm93Szlhd3BUTzJmVHVncjdzNTJoWTFBNVRpMXRobDM4TU84UGNfeTFyYWJBeEVsMGloTUw3VlRFWmxhUml2VW5JS09ORDdXSXE0U2RHbjZzbXJLWW1LUGRFNy1vZzJfMXVhWkJyblRScHNrd1FiZUVlM09tT0lRUjltb3ZmNkRCdlZlVGtieG4zTHgyM2hwUVRRYlpFSTRORFFHMnlzTXcwSnQ4OHl2dEo3NkpwSEFYbWhkZUpBNWI0QTBYb2JvSW80a1JGTjNlUWlCQlB1eTVsZU1qeEZnVVE0N3Y2M0pyNmtibXpfSEVTZHowOGhNeUozakN4Q3ViNWdJVGhtbVdkQ1lIUjZRYjRtWlowMjhIT0ZCNTl6MkY4QVVENXNwU2wyZmhKZHBtUl9aZ1BsaVBuUm9YNGVPU25Dc2ZLTW95X1YwNk1KRTl3VGZPSXU1ME40cEhoTE9qQXNUX3NCSHBfYWJMb0x1ekpJZXdtV29SRThVR2xWVENOX2hJQk1pdWI1V01lbDgwa09nbHJTNXRMZnNCdW1qTTZXUEladUpjRG1jWlozdXpEeFBkRWdHbFZydXE0ZmpfMFBoUF9uNS1FcEVtYTkzZDFaLURCTXU3Wk54QWYwS1ZBOXVJOXZ1WFNQRDJOVmRpMG5QRFFjbFRCRWhKYW8wM01uc1VGbkxBNVZqQlJnQVV2Y05Cd3ZlYzRfOE9WMDJLRVRxZ0hMZ2tzbkIxdU1jZ0cxYnVQWHF5cmJJelN3WGJiTFViOTFWSkZERl9ZNGFTWGhWR0kyUzFpdGdZOVlsYzl3aFlJYU9pQy1KcTNiRUZiVnZiZnJnemMwOUtiYl9ya214ZjFpWDVRczh0blYybHpSaVB1eExibGx6dmlEYkM4ZkpMRE44VHo4NExMa0lMZHNmdjBHaWtkRThSelU5cFNnMVU5ZURUT0RnVktDRmtzaXdJbEJ5MDRqd0d5NnNwb1BudUxweG53OWhKQnpUc0M5dVRUTmlZeUk0SmxpdWs4Z3ZpR0JTT2lMeGNiRVlXTGFpN2NNQUYtcnI4VTYya2hDYlZZVU1mVGhnQjg5aklmNlZSa3pVSGs0QXVSR1k1QnpraWxBcDhHeHg2M1RacnVXR3ZMa1FKek5wNS1PVGN3V3hEN2N1VlFULU5icVNZRmZYMnZVcEt2Unp0WjNxeTJOMTRIYmdIeUZMYnl6SVVoTXdiNkY2M3dwcnlIN0hfMHp3OGRfb0N3bWVCMVBTQVBUcFhiYjhRZjluQlRXbjFCWlBMbUNVc1ZCaUFYQV8zUWp2SWkwUXlrN3gtb3BGc1E3OFdJUVpadkhsb0NRNWI4UGd0bVdaNUFwVDhPc1dXQU1sYkFzdXRLdXZjTFkzbW9DeFZIOGxzclZxOHVXSjhlQzgxUV9uOG5YNGFqcnZiNm51M2ZXTXRDNmxFeWwzSW1JSHRHd3lvVVZOVW4xZWlBQVpnYzdiQUlnNlBoV1pxS25DMkFyU19lbEVheVFUd0ZTWWxrM2Zjdlo4Z3RMOHB5THY0YkpEalI5NUprM1g4NGJEek5uSndfY2o2Y2Fqb0F3WW9nc3RRZFRnd0pqTU1WaU1Fa2hraVE2SVRUU3lDNUJmOTBCa2VXbWZwM2N3Y3c2cThwMG5NZEdnMjNDc0p4VHNla18zbFotRS1KcHZESHJnVUV4d3g1Z3lCVy1STjdrX2xnaGd3OUw3QUNTbHdGb2pHVzlZSzA4T0J3Tjg4ZEQwLVlmMkZSRmFnaFVQY0RfWXhmaC1qNDkyaGY1SnE1WWtyOGJMZENiZjdBTGgyeUp6UTRoUGREMDdnNW1uNThnT3ZMUWo4Z2tvTTBfMHVGOHBRaHpqenRjVlRaM2NBNkZobEI2a0Zkdk9OQXZVLXI5YkpFb2NOaW5fRTJmb1B4VUxqOVdEdGxaX3N2bWtEVzBjR05fRWRlR1dKLXhLcTdWNDRzck5vd0lCOEprZHE4dUhZXzFadVg3bWV6MHNYc0lNSEFFSWhkSnBJelpYQzVjYW9lTDRfalVxelB3dzJzMG1IU29CSlpQNjNWODhFQVpMVkdtaklwaC1PTkhQeU9QemFlQ21xajFlTVFaODdJSGNhYm1yUGNaWDFITTVvRi1meTZ5RFVzdUJyRkx1dmRyX0VJQ21TM0sxWEZmWVhsMkZCU1ZsRGNpUDJ0YVF1RzR0dHhjaWhoRWpERDVDcEZ4S2dha0lRSWc3VVFBTy1rUTN3THZHdW5CcG4wVy04eGpWRFBoU28zUUNOc29sNF9zWnFqVTBoeEVNTVo3YkVxTzNSVDNTVW1OM3RjdG9LWTBySzBxZmR1bk5iSXNjdG5TcUVPYzg3dWd4VTBXNHlQYjBNOEoyQUwySkV0bXlRZmN5RTBDalkzVjVZMjNlN19UVV83bEk5alBTbnhvVi0wdUhCRjZ0Z2xYN3p1akdJSG82MU5CMHo2MHpXZ01hYklqd0Rha3dPYXV2Uy1yX2RqbEZpeUUyZlJvQnNPNDN5WlI1OGJqcHhpRHJxOWdnMEtJcktBQ0gtWjliTUdxeFBIbHVrb1FGeHAtMWszQjdndE5GdGh4dEJqMng5Q1FBVUJwMFNZYXRhUmgwVlBPRGptMWhLd2FUTnUyNDlxZW0tbERiNTRhNFplaGZqVExkS1RoalFiMktwY2FCbVg4ekpQbnRhVlA2MXdDeVRGVDBSN2RIVHloZUhfS0NYbHA0WDN0ekdoRTg5VDVVWjVxVEZJWmNDR2I4YzM1c0pjYnh5bWZ0aUJJd05sUFRlbkNid3dfQXlOUWhreG95Wk1iai1lQ3NBN1M4V3FaUEp6ZVozWE5iV0ZJeS13S3hFMnVyTTJKRXd4eExXRllwOFQ1cFBQQVF1NG1NT0k3SDlfNzRTcWpMRFpCU1Myd3dUdU1YZW1aSDJuWVI0WmdCUF94UkZENzYyM204ZzRuLUdNNGhibVZPMW1LTllJbDlHdzljbkpQOHpSSWlNbUppWEdXTjktbjRPVHFRWExFVnlKbnlUQ0RCMzFTSFctTThyeUJMemEtOUxOdFZhUzVTWkM1UG1vem9EMFZyY2hFVEZmelhwREJfZGYwNk1aYS1icEpBQklTVWJidi1hM0Zobm9JUU0yRW1uT1N2Rkw1ZFdDRlZMcXAwREJOZEVOS0FiQmJaNGdaaGNEREVoSVQwQzh4dWJ5MjN1MW55ZlowRld0WXFoTTh1TS0xVzVOTlNLZGkwVFVhQ2d5OHhBdEh5Wk9YeWgzVFRMVTh2ME1rbjFRRjh5ODRsOVJlejE5VTR5Z2JqX01CVUJreGYtNnhpSFRVQkNpQmN1UnoxM1pSTkVMNUFzTUZLalQ3Y25zRDJxNS1fdDk4dEZ3SmNQejBTLVctbzFtVnBRSkFjZWZ1ZXBRcUdvVzdLNWIzMWFCVHUwWVc3MTZCeW1pSVEwTU5VdC1Cbnc0VTZtdG9wWWJVRjExVXhSSHl2R050dVVUMlp1MDFJSWlKTVRvYmxoZXlYQkFraEVUaDJTXy1Cckc4cG5oZWFZaE94a2wwZE1nZy1ISlJ6V0RXSHJTZ2tUN2plaThNNnhOY0Nwc19veC1kNkdsX1FwYnRkRGZWaGQ3clRaTzhCNTFQSVN3Yk9aYUhkZHotRlhUZmd1c3p6S0RwZmtSWjN0T010VFJ0U1ZWR2t3eG8wRWdfQW9iRVJSNnBBblRfN1hZQmpFWl9BSVVwQkhmYldjZENyUkN5YnR4b2VUU0RvS0twblJkV0E3cnpiLUtDQmVzNG9mdWhicnNldEdWXy1rT0dLc2FuT0lPbkNPQWdHc2VFb19NTnBvZVpjWmd5QlRlaHFmNXlCQ3FZN2FmM2E2Q0F0V2hfSE1IVzl4cGk1TVlZVk9sRVBWWHZHTFp4bi1xS2hzUDVwM0g4a0VHam10d21CWGFuQVhkNE1HemZtWnA2UkZ2d0VIaFJHNFJQQkZYSkZld3laMW1oSzZZVDZXYnpuUGloTC1PTjJPVnJEc25CSWdEUGVtclpnaVJIVWdnMkk0MXNnX1RMWTQ2N2NYUm1JZUc4NWpUTmRieEhkRkt5UWhNS045UUVBYXhDTGJsaF9FZFF1LWJtcnFfNVZoRmIwSDlocF93S0M2bFlOM3BFR3ZsajN5QzNIYU1LTW8xSVlBTkROcmhGM096U2VHUS1SWmZHeFQtZTNwdmRzc2ROTHE5XzNrdWdGZnB5ck1GY01iMkl5MFk1ajN2bF9vNTFvLVdiYUN1Wl9KZEZfb19JZV9zZ1ZnTUhoTVA0elIzRlBEVjVjVUR0bEtWWldSa25XMTRaZ1hnbFNRRG5kSG5lbmpqR1N0WkZnelh6c0FqX2xibm5BXzZnS2ktZHQ5SXk4aW92cFN1SzhTMmMxRFdqU2xIQ1FMS2tCdWR0REI4RFRaYjZneHJCZ0piNEpFUWp1LV9mUXlPR1NOellNZ01ISHFiVTVVbmpxOFVlQkFlclNnQnEzTWRza0xRNjlRVS04clRZbGszVEVLeFQzS3hhTUx6MmxWTkZSMzRkUDl5Zm9HMnZvOW9PS1VEb3VUaXRwNkdhV29Vdm5jWkdDME52bktJaUIzc1NiQ3pOWFdWbFpDWDhWdFhRQnB4NV9USDNhYi14bUJOUnVQMUZ4dlExNERsanZHQVBOM19DcHhxaHAwTmxzbk9xNzlqYmV0TmtqVHVrUTFZLVVhS1lUVFZOaTlQV21CbWJJTGx6X1FfQ21lSml1M1BwVVUyM28yNHlkR0JFTzZNZFg3aldMdHp5c1hxSVJyV1JUS0g1dG1rT3VwNlQzck03UGotb0NNMURacGZHdFUycU9aVW5hZF9TNGR2V3RBT0EzMVVsLU1DQjlLLUpHZEhyU1NKS0xoODNqM2d1ZDdoTUswVFJmYzVXLWdaZzdiT2xUc2EwcTB5anVKTzAxYmZQdjdQTjN2cTRkT1RabWluNnBJMzJSbzBTQU5NZzlBRkdvR1g3TElaR0Y5bVRMZkZGbkJTUlctaW5taW0yRW1NR1piQV9hNUdvTWxOamhmV2JvLW5aNHZubkI0M1NjZlNwZnI2LWRvRzd2VUZzMHlPUURuM0VvZF9ZcHBwUUwtLWtKR3VlYndlTVk4ZmdtVy14NktjRENjSEl6NU04MzhROC1KTEpPNzVLS0ZqREZGa3JtTGZfTGF5ZTJuekpKVGxhN0NnMUMyWS1kMFJGZnd3ODRHb1JjaGpVS0RPQnlFUDVlNzRpcnVSc2hjQjl4QVUweFpyZlIydmdQM2gwbG9UYjJ5UG9wekVwaXV3N01XZDA0eGhsMWhJUm1haXloRFMxc3R3WFh3aDN5SlNuWE5NMngwdnY5bGpQTmRDTzBiQ1lyZVQ1SXY3eFp0WEl1VW5jaWI3eldUQWZNZHM2cXF6Unp6Wkx5YXFTT0JrQkxJLW82R05SMm9PX3F6dTZteG5tMlJGOUlMcEdxYnRnZHhYTTdScVNkNVBEa1RfVjhrVzdOOXlfTUJuc2RpV05uelo3WndPNldrUlNvbkJPc0licVFVS3NXR1dUZ1E4ajE4dy1hd3hnWVJNQlhrY3lEakt5S0piMjZrWjhnRXNlcVQtM3RPTHdFeGM5cjh1MEtLT1M5YlROZDF3YTRFTWZHMEhFeE1SdmdqQ2N5QTlLa1pnU3Y3eTlNRm1BS2k1M3FXNnVvRHRfX1Bwa0lFLVpqUGhLLTdSa3Y1TmJUQnI1bmctTlR6ekFHc2s2enVPdnBpU05JSWxBRXNlUUJERWNES0c0M1Fsa0N0X3g0VmJ2QW9kQk9lTVJpZWNMeTVtLXo2SVZyME9xX0Jnek16ZW85Wl9xZFhWdFZobTU5ZkhDek1rcEM5WEN2dTVXaVU5UzhsV3Y0VmM1STZXa294QW9vZ081QXJFVVV4T3JsMzlma0ZpR2FvUmNBbWM0dG81anhUUjhuWVJXQ2tFdUQ1dEoxcFFUNkhpaW9XMk1OTXR0OExMTTFpeUMwejI4bWFlcmdBZUxGQ3pTODZ6QnJybXVTWFJEQlhhaW9DWGM3VkoxSEtmSUFYcDY2ZEZ3RjhRUkdUOE9LMm55dlZIMzlvRWhSX2M2T1NiRzJvYkxTOXdWM2RFSUFiY0RhR3hjVUpCU1JXeTdUR0ZhcWdhemlwRVRnejF0NThlNUZhS1AyUnoxMHV3LVRHSWN3VVJtRXhlSzVnbDZJWWdMVThKYmVNdWtpbTM4dVFXaklVQXEwOWhva3RsRFNueG8zRFg2STJjdFYtRk9xYk9rX1dLRURHRG9aRG9neG84UFNELUJWeGJrQldRZEwtTUNENUpzblBGRjZhLV9BdFBaWktKYnZoM0t5bWQwNXVfbk9qTURUdXFKU0xuNUV4MjFPbXAzQW9WZlpNYVlTV1hzaXpOWU10cEVReEMwbWp4aDFFLTNmRm5uOE9GdzVnTXFXNXN5d0ZHRklYcUF5MFlmc0Fsb0ZBTkstRVZvVmpCbjY0b0Q5X1NsNVBwZmxFZVlaSFFRS09IRmxWazVwdUhlZHdpckNfZGhkdGp2TnV2ZlNSb1BLU0VJWGxnV2owRHRrRkFiaXJkd1FNTFBUc21CT2pOYnhSWFkzVG9Qd0RSZGo3eC03VVJxY2Ftbjh2VW9UT1MxYWE4WVRMNm5FNVhsVHpuOW01MEh6ek1Rb2tnemcxQlFLSjRsMFJkbWw1a1RiX2tTRm5XY0hobHp5UGt3RUxvZnZfYnlBN0lSXzV0d21LLUZGcUVsYnE5WW1IaXNrR1BWMlpHTDFmTDFGaU1RSmtxLXNzeFlTNjZJRVZ3b1pCaGw4dUZJbnVidXhFeGJaSEpTX2xQY0pLTnQzcExWazJJSzJpc2duVFgwTnlJRWNzMG9pdDlfQVRERUJ5OHZwWTYyTjIxYk9la1lJM1o1Q0pleFFpVTc5VU1wektndTJvTGlaWnBaeXJ4TnVMa3BWSzJpT2toanNaN3gzNDhRdjBSUjdRN3p1aWM4b2hnbWYySUs5cjltOW93MTg4MlpRNFlETTdlOGlxc0t3dkZkOWZuOERlcWl2cmROQUhRcjFlQTZnN3BVSkpZZTNiUDJKLWpGSnN1azQwWXBFUXZVdGFaZjF0cUpPQlMtWlhvOE00aGEwUE5KTWx0bFhmZGJub2x6aHRnYVF5blR3WHJBRTBSZmtnWjlMaHFtenI3ay16TWEyM0t3UHdncDJmUGgzSmV0Z202Nkp4eHBnVjQ2dVl3UTVwSUFibll3MDFOTUxFTXlQaUNySlFFRWtwaXo4WG9hOGtJMkdRdkh3b1pTYlMtNzFZcHMzQ2oyLVZkRTBNaV8zUnRJUEZyaVVTUERfS2cxQ25pQlduN0IzS1pUYjd1MFFwOXl0VE1TdDNRbUNwcnR4YlktVWFwWEtESUYwYVVCN1RPaDRuN2lFZ0pQYzV5M1A1LVZkQ1VxUHJKS2VwckUxN3AzMmFyWjE4VFFwZE5rRHdXRWJWZFlMZDNvc2tTdkhCMHBmbTFablpMZzNpSGo3SmxFX0VsT0RIOVQ4MXRBS3ZyUFlzZUJsWnZQbEdUbDdRN29XN0tSZ21zVDJHMmlqOW11RlVEWEoyLU9ycFhHTWFURGxpdGNhcmpXR0tjMXFJRWhzQ0IybjI3LUlDX2FnbDdHbG4xUkdCRC02bEZGQjFuTVBWcHJpVGljQjA3THJZblNHSTVRdzFpY0pYNnV1TzYyOHRTMEh6Z0llUEdRVzhPMEtyR0xEZkktX2ozQkphbEN1eEpMeW5sdmE4MDVaWFZ3RUdCcEcyaGFOSlVleXhJeWFSamM2SGdOZzNHXzNIbFItWXhiUjBfSmtEODJwczhfd1VmZTBGOW4yYkUzWEVNeEd1bm9rbWdWbTdxQ3I0TzNxQk1HZ0dvN3ExNFRVTGhndk9GeXVZU3BKdkJ2a290NVptZS02SC1idVYySlVjNENQYUN6Y0pFSnB6QlNmTnk3eEFlQmNvbEN4Q0w2MzZDZS0yeUFGVTFFdjJ0NkN1U1BHZUlyY0RrRlUzT2RWOWxvRVlJaG5nNUdEdDdXUjN1RDJsRkh0M1dWLS1ieHkwSFU4YkZmT0c4b0hoU25NN1hsOWtGR1ROWUVxUndIUjk4eENYeXVlS1ZEMHVlN0ZPNnotY3dxV1NxX3BFb0ZUX0V4OFlHU0EtS1k4N1RCRFY1ODlYSEdMYW05bm43RXJybTdNc1p5Znp4V0NBb0U4YkktX0hRN3dTLVVTc3JuZkh0eVJCVkRMcHRSUDVXWDhTSW5jekUwbTFsZFdRUFRZdDFZTVdld1M1Wk5GWll0SFFVSU9FUzNRVlZ5dWlrcXZQczBQWE5Db1p1ZUJoVVViZlVab0E1WFpDTXFYWVdsQnBUMzRVWkRTV3RxUnRVcXhjZlk5YmpvNzZWNjRfSFAxUHJ4V2NQMFZFVi1QVmhxTE55VmRZd0VsRTB5YnlyWlNsRjRwVlM4VTdsd1VlS01UMnpHNWVDLUktakxpUEU5S1M0eWU5WEdtZjlVZEZjd1V3cXBiMjl0cVFFdXRUNFRmUU54elM1dzFqblUySF9BVmxvNm5LZGJiLWt5RjB5WGZyRXB4VHJtR1VSZTRqMEVzMHBXbU0xOVZxY05yeDJDczh0UDlGTlFxNlptQnJ1QVY5ajE0SlpOdUhvY1ozMmU3cTdsN2tfcWlseEtDN1hjR3lRS3U0YlpXdS1qWUEzdm5OSDVORnAyaEd4aWFLVmRka1pDQVlTUnBqMHVNZ1FuVGNEUkppTTJoV1piaGY0OXBUaUVwak90dmhIbHV0WDdYdmpnTDVZcWtVRzNBbUZVelZIOWs1QkFpUXo2VUtwVVJjUFVNUnFPTG5fbkpMd0VsY2xKUE0xYldZdEhZNHNTdzl0OTMzSjZxdzdENFdNRGJRLVI0QlJubkxwNUZZRUtSY2Z1cHVKWWtxV29xd3dQUzc4b1E1UmZfSF9VbVlBZEFOUXhsLVU0MUw5RTE1TEZqaFBsMUZObFhNLUp5ZVNJNjhlbUJ1NGNWY1l4d0oyMGd6Y2NuSWs5UEtjdXdUWE1IUjVIMmNtZENxRnVBY3lYUlJCaGhGRVBfNjFmbmxnRjMxMFZSdS02c3JmOVhnTGFuMEdtaVNZSC1UaVpmcUFrUjItRVlvdWxFUG9UWUw5OUhTekcwQTBveXhpc2YyaER3Z1NxNDVpbjJaTU9BQnRrNGpGT2ZKQ2kyOVZxMkV5YXVOQmRodkFQeUVzVHJpcV9ydHZPN1phUUs1Ulc3QndPZ0RsY3k5b0ROcmVfRG5mZm9jRUNmc3hMVndab0Z0Sm02eUpoNmU5SDVTOFdMcmF3MEhDTklaR2QyaWNTUTJEMG5oMjh6b3JSY1lfanpIYjBwX0VIZk1iNjhxa1hoQmREVE80ZVQxeGNtRmZuUXRCQnRCMVJYaEd6cW1MRlhTUXJRRWxHWFY0czZxNWFYRlJQNkljdGowQk02VkxHWXVpOUdZb3YxZEVrWVRaS3Y0QUtnQndySWRGazl4N0hOT29YRm8yRlgzY0hWTUpWU0hzck4xY00wekN5SVNGdDNkaHB4TnVsVHY5TkdfQWZmUUg4X3NQa05Ua1R6clcyRlM1RkZpTjVrQXJLeUZRRGlWNEZHZTRxWE5WbFhfOURtLW1Hdk03Q2lPWDg2Q3Z1OEg2c2JEckxFR2VxdVJFSHdxaE9DYnR1VDljczNIYlBsbDlvODhxTkw4TV9CSzc3aUh2a0lSQUc2Qkl3Qkt5ZFo1QUNpVnh0NVhIZ0tEUE05a1VaMTdLM3FwYXFUblk1YWw1QjF3bXVYMkwwSDVGckxxQjJTTFBPUE9zcU1RTlNidGExQXBkai1KMm0ybzFWY1JPaGhWeVJza29iLVNOUDd5WGJrbGlUOWJTSHl5YzFvbzFXcTZKYnNZd2hwdVI5aS1YX1cwYkc5M0hyYS10c2pvYmZPYjFBeW5sRXotRGpqZXl1eEt1UGVtLXVvRVlTWkZfbXRsd1JxbVNFSkFwWmlxQms5VHFTZW04LVBCZWxRR000MVhBOWtFeHc3cm41anROODZEdTdUX3JvRnRTWGxpakFQUm44ZTI4XzcyNEwyTWtrN3FPREpLMkg4Mzdvc3J5bjNXRWE5MW80OTJuTS1BcGNTZ0pfUUEzbURqUTJtaHZNVElPakh5TFRCZlBjaW4tby1UQzRhc28wdmpJUEhLZ3pUeE5oWnpYNHMySjFSRF9ldW91cHhfNXhocDdCTDZSTWt4eWVMd0o3Y2VwZFhDVmNmdzdzRDEwQnlyVGVtSnVoT2oxaWhrc1lVUmdEZFI4M3pweFl1Sk11a0ZqbjlxbEQ2a3c5YndNWnRpU2h4QjFZUHNuV1daV3U0TXFsVTg3SldZQzlEMzFUdXhiNFltYndsd1RsQTV6dFBTS3diTk1fYUI4aXZVUUhUazBPdFFwcndXMTlCdU9FbjFtWnpBYnJ0WkUyZ3NFQ2w3TTREWjZWR29nMGtza3gwSUlDVks3WkxEQmZRYXhIWmxFOFk2SGFCS0JrekhKSHE3MUNfcnMwcEo0UWZRV1NiNGdkRFpIeVpWY3JaNktPbEZsQTBma25LdEN4YnpjM3U2TUM5enFXa1ZYWWZZeWVvM1JSNUg3UVJZaUJqM1R6SjJVMVF4U1VqQjZyU19XeW9vWlhnNHNyeG5QRWdKak01TTdfMC1yY3NWVlVVdVNzT2RXMXFybjRlSy1Kd3Q0elkwUHhLYU5wZzRkMTFLUURIVXJkRjdPbnd4UmJ0NktLSFlGYW03UGh0ZVozV0dGbnBIbktzdHJYOVk2bEREYjBTLW5KQ3o4ODF5cUhUSmZ5YkhfRWFxS3R0ZU5ub3dDc190Nkt4NTVBS3o4c2VaU1psOXJnb0k1V0FrVkR5YmlfSlFFdTJnZnp0YzN0M1hCMnlTVDg4bl9BcDJNbU80X0V4QXBoVEpfNzdrYmJvWkl1Yll2ejA2Sjh5ZjR5Mk1yXzgySlFLVVBQYWhuNEozejR3eS16d2EtaDFLRkkyZThQTDZzODF3YmZ1QndrNlBHNFItZWg4UVhybEJrSXVqMkJ4eGU4VUZ3VUZONW9kbzY4VC1SWTF0bVdPRlZndnpDUkJKc1Zjb3htLU1CTGZsdW5XbTBVdDRvd0F1MlRKQ3lUaTRpWDhIM3E0X1lQTy1zMXBiQnRRaU0wQU01azVFNkdoZlc3MS1lQjJ2cHMtMjRORzE5R2gzTEhvTzNlelJtWmhwX3k3QXYxV0I5OURrbmJ6NXZ6dGxwcW92Y2hNNWRDOFNQalFkMDBDRW5NRmtwaVQ3SDZZTmFKVG5BcnVoanhTU2RKLXUxSmdGSE1ObzJpNEtfR0xxY1BlSGlIaTlPZDM5S2NGdVNQeHAxOV9wc0Z5bHRzWVp5cXhoNldJSG55bkRvdEpiOHd4dFU0bk1FMWFvazFZNk9yc1FUeGFtNnBFQnludFljbzFoLUlhanZHSGliWkV2UGdLNjgyc2RoZ295RjJ5OG1na2JTNWxHVDd6U2tYWm0yeUZwOGk0X0tVUnlYWUtqUndFZWdKTmktQ0gxWWs3ZHgwbExOaElOVzJEWkdyN3RFd1dOd2tFMzFHdWwtaXZWZzdGMTNMN2xXNW9OWTk1WXFXQlh0RzBsRHVoUlduSHg5dTNWV0twSDFmT0xDcnVIS1VXdzM3MmhtX21KS3U5UW1tQjNrWDF3SURXSkQ0SnFfeWlaekMxWEdIOEFzRmJfOFhtTGo3YW1aUmRwRFRRSmV3WlE2NXFJem44VEx0ekFhTUktUUlQZXJDSEZmeDFYWW81ZUpWdHc4MWphVHFRQWJCLVZ5X3ZXMG4zNXhUVklEOGdJUlpYakhRVEg3YTgtaDY3ZVFPdUNtS00yR2NZQjlFSmNRLVRPdUd5ck5Cd0lBckNxSGxDSzF3SjlPZjFYMjQ2cjY3dnd6MkJCQUdRWWp5dF9yZ09PcFFadGthV0pMd25ncXEwRE1pYWt5cE5LSlVJbEViX3ZkUGp6SFFKMV9IVzlMSFB2UWVHUmVJRTY2YzEyWlBBTm5tcndDaXR4M3hzcWNJZVd2d0Vya0ZzcWMteUlZbFd0V1Y4ejVmdklMY2JvSWRxVTJ4c3RqR0lvZDhudEp3RVRMeDJJQTZ6TUZHZ2E1UDZkcVhiMm85TUtxT3U3Z3UxYzBUaGtjVzB1QUFSb1F5ZzhDcnMzX0VfcC1YRXpCZGVWNzBIWUhXNk5CaV91OUVfLWVKVm13Vl9RcmJxanM4bEJxeEhsR1ZyUHVIbjd0ZU1ncXk5cjY4b0c4RVZRRFZUV0tXYWZ1U3Q1bHJpWXlTMlk5QnFqbXduUlBFR3lqTzJtLXVNRTRHQU84d0s2eFZVeWF1emlRQ0FyLnN4blQ5QmJTbklGT0RKQ1Y4WGR3RXc"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/BackupKey-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/BackupKey-example.json
new file mode 100644
index 000000000000..2e7b6a954bf3
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/BackupKey-example.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "testkey",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLllNSVBfTXJRcTQ2X2ZwRExfSDNSSkpzSUotM05oeUJkMXlrOWJCS05JOGdnTjMxYWg2cWVoY1BISExnSnJ4OGprQkxMWFBxcDVmMXpsaWxfclVrLUtrT3J5YzhaSTljc3NNNV9TeTN4cEk0Wnk2V0ljNWNqUFd1R0NDbUJwQXlydEdPVnpoalF4bzNyVFcxRFNxZ1pVdnI4VEpseTJQS3J2aUlfUmduRWQ2LVJWS3V1Vk40ZWZWYUs5WFZUbW4xdmZ5Z3pwVHJfVFdDOVBGbXpoT0p6Z1U5OF85X25WcldWSE5TMXVMWEpYbldoQU9mUll0VlJORVFJRU5lTGMtZzNjTXJLOTFzNk5XeE5xZkZfR0w2UHg2cVhHMldXQ09nMzU3ZkJnT1ZTdERLaVZINk4xTWVkUTVwaWFkeHhUVDZMSFpva0I0eDFKbEFJZkxfYlU2OVBWdy5GOVFiM3RWbE1LcHJDS0stWUVpODJ3LlQwTVFpYXV3MGw5TWJfRFdEY1hvbzFqTjZJWXU1OVk3U0VMMm1ndFUweDNYTDl5VHNqZUY0Y2I0NExBaF9vUDdnbUgzbjdKLVZEX3hKN2hXY01XNnlTNDlFX005aXlndDlTQ2w5ZjRTdWtpM0NZdkwwUUVSVFlLSW1qMi1BRkRMWkl3Tm1HYmE4RzhheFBxR2NOS3NSZ0daZ1lUVG9pWUxxQnJ5cmJ2TEp1ZENxZ2plUWRpNU1tdHlQRnBhZ0hwSHZLa3VjRkdwLVhtSjFLYk8yQTJRT1dRVFFaOUNlcmVCcXJDbjI0SXdhUXJVQzRyTkQydzBVQTFUY3dFZXVWQkdFTGRKWm9zWHM2Q0dEZmpaSHFjdnB6NzRKd3g1T0VpcV9EUHM5VEtya01ob3djRXBsWjhaSk1jTlFSZnU5Sjg5ZDdZWGdHZEI1aWtKenA1WlY4OXcxMmIwekNITllKamdkZEhTNjJmalZlYUUxT09QXzd5Zlg1dEpiNmQ1QVhpZ3ItSkozbGI3Y2JhOXE2NHBsYmlhck1LemFiNUhtMkxNRnVLQnI1TmFrbzVQMDBoUUJnR2M2aXBJSzhNT2NLc2RhQjJGcjUwX1ViNnJEUzA4NnUzNy1DSHRGRnF5LTFBaGlDaXhRakNNTF9rWGtJMHZEYmJqRi1feGtNZGFCVi1BdTc5TzZ6V2pzRGVlV0t0VXZWUW5CMGM0Qnk3SVdDTGVWdzIyaTA5WWk3MnpCcWZPRjRyTmd4VTNrSjdfLTVib1dteVlXNndNOGVzTjR4R1kzUGhVNHlLRV91RGc2dk5Od3Q1c2NXWW9TMHh4NlBDb3M4S0R0Y3ItVXlwUTkydGhVX0ZYZ3E5U3RUWXEyWWdWV0dQbnM1Q0RMT0RBSi1sMTFJNklpdGxQN0hoeUxvMzlqNzdpV2ZUS0RnTDVrcDdEOUUzX3FkUFprdGpWUER1M1pRY1Q3MzlOMnp6XzFrWHJEb20tNlBQcXdWUzZtUXpBVW1xaXhTaXZjcWJxalpJRnRPbGxLRkE2cWVyaDJlU0FZelRNU0N1d0p4REJSQjUtbjBNUWxJSGpDMTdkTFpoVnFEMVNiNlBycV95OXN2Mml2V3E5TGE5R2ZHbEhBNlZZM1QzUWRTQ3VrWVJqWFhxLUItTm5WZGhGTVZhbFZ2b3NySmZuSEZhWGZMaTBnczVVOUt1NHlqRDdRb1cxeVIxSVk5T3JaNHFSUXdrcG5tOU8ycnJIMXBtX1hTekxRVDRrWmNLYnVneHNvWXRsRE9TaW9iS0RYdTFNdENxdkRudnh6OEZ3MUdwTXJCdUxrVlFEVmVlUDJqNFp3TGxPbkxUTmk4YlNjTm1fN3ZUc1RQbTRJRDltanBXSThCYXA4M1RLaTNkelAxazFpM0dncnIxSEpVQU96Q0NjUTRnaWxES1o4UkVsUWUyMUJBcUo3eUVublZsdWN5RzZBV2E3dmlZWXV4eEJIa0RsN1hHZHZYMGpJMjZyd2NTX0ZIMnlOaWFmZDN3SkkxMzQyWEF2VDdDUWVoOGRaZWRKU3FYUUdqQjVCSGF5Vl9vZnplVXBfOEhqRkRoS1VkcmNJNGkwa0ZwcEhkUFhNQXUxMjh3RHUyTG5VenlNNEpad1NJdW1fbmpiUTNJU1R5bUVMTngzd3QyV1NFT2Q3QUt5S3lCNEJzU3NkUE1HZXdLSTFnc2otSENFb05Cd3hQQkF2VnFDSUkzbGY5NG0tRU04LVh6TnRCVXFpT3Y5ZERCa2d2ekptSTlrMk9fVmpjbUZrbkdKb2kxVnpZcGlRVTRYbElaempDd3NDRHFrYWh1YmNxWFdyMDhVdFBtV0hGRXk0Q0tvclZMN1VIaVhsVnJPR1VHdFN2dWN3S2RjS1RPeldsUngtRGNGMExDek1kR1p3Y2czZWk1bWl0bFliRjJVbGJOMmJaU0NQWDljOWxFU2RBUUhxUEVsNXJhVDY3aDlWeGxPc3doYW54SkZvNGVuRENaYWZObURGRzJMYTY5RXFCVjZLTHowXzR1S1pDNW14YXZEazZXS3lmb0ROeXFzdVZMdG83WXNqUk4xNTJYMDVYSEhuRVN6NG5lM2MwandXYXo2MFpJR0Q1TUhNUUhQeTdPNFdnYWthVnNKZU9mYUNza3diYjQ5cV9tQnNYME5mWlBjcWFiRFhoWjdCWUxROVhFUkdibndkM0pEQmgtX1RUN2s2WERpY0tUblZQdWVGN3dzVl80aE9HUkpkVEk2UFRmV2o1dWY4dTdxRU9BdUt5NmV1Vk1LeTk3TVdLT1Q4LVpRbDBoSWowcmJWR1pILVI0cnFIMXZfVmdRUGRpLXFXb3FXcWt5MGFaSzNDTkEzUXhXZnRMR3AwcUVXcHU2T1EtQ2hONy12eE4wdFVlZGREWlF5V1d0d3g2VFcxS2hDQldaR2pabTlBQzY4YlUyQnVOTUU1NW9VV0dsbmNOOUVuRnpnTm1RTVR1SzV2VGd3WkJITWpmUXpsSUdfeWZ3QXVtSHljSzVPT092eDk1SGM3d0RBRDJXMVdSb2h5MDV5TFJkbEJ2XzREUXJyTWthZEVwZjB1dHZod1V3ZXZSNU1jVkV5Yk93VUw2Z2Y5a3JDNEw0YlR1bUJRbG9Ccng1aDNuTHhZdzkwcmlqbG5LajVZYkthZWpyTXdiSW15Ri1xVk5NbWpTd2I1MlN0SjB3T0czeE9HZkJRRHhQWHJtSXhoMERSOEdzSzBkeS0xSElJZWo1LW9STWRfSjlhVkt6MFk0d3g2VjIzaC1qUDNxMjRKYmF3dndsQTZyVjVpVUZkaDZKUXJpTU5DLV9hRF91X181VTd0OENIN1pWQ3VQM25JaTV4N2dtcWFsSzNlZ0htM3BkYl9sb3dYRTRaRUJETHZ0a2lobC13LVBGc3VZb1VKSUZWcUZ2VnM1RW5TU01XMFBJWE9TZlZNWW1KWmVrYmlHX1FqeGtCMjNCaHpZclNqQ3oxcW5TTXg5a3ZicDlRaDFuZFJYSkpJUFUyamVIdUxCNE9nVzNoenluQ2FxQXZQRXVHMlhuS3B4WGZ4QUtOeldpTElOLTBsUTRfUXQ0dHctZmphWVJVVjVLVWpyYlZnazI1MDZIUG1ZVEdWUVdRX203Z1NBU1BaajZEYklua3U3SzhFWnI2b3d1SDI1M1hxazlrSWwyTE1CcHZqT2tOTWFRTXhLcjItMllkUEV5LS1mTUFQTHBfVU15MnhqbEtMS2s3blhJdV9IMXZSbmdfVlVyVkhuZUdqRmFuODdRRU9SU1Y3clRBcHJPMmZUMmpfOWhoNkptdFlrUXFnRzg2WXlKa3NValdzM3hwZGk2TlBGRUxqQWd5T0ZDLTRrTWdLbGdJM2lUSElCV1Ezamp0U2UwR2N0MUs3QnBCSlJySUFGLTFVQjZKVDZjSjI4Z01zd0k5OGt1ZDVob1hZbVQ1bEEtWmFELUk4ZE0wcUZ0SEg4a1lXX256em85bTY5LWlZZlZfd3N5Mm1CdnVlb05RZGRRS0JrbWlVTW54VjkwdEF5RWc4WXJaWUwxck9jWHFjb2VJNl84UmV0bXZZeFZNMWJwdXFfajlmTXYtelRBOUpDZXlKMXFBTjVWQWFpY0lnZzFKWElDTEI5amVTT09zUXcxYXZxdk03TjFBcndDcjZvTUhycTVaQ0VLODV5VmI1RzhjY3Rld29pSFlzdVlPT0hnSDNMbmNoV3pmSjNNaUVjTTZfVjdSZHZCUWQwM2tQekdFVjh1STJ1aDl0bUxrNkY3VUt6WU02RXhJNW1LUEM5LVFOMk14ZTB6NDZrZTJteEdHR3cteXFMNjFHR0FpS0FjcENsSzVHeHlRbVBuREo4RHFKTk9WWDNoX283YTExVW8zMmtkdEcyaHVYcERVc2F5NkU4VGJ5R1dFZ3dmWDdaVnZrN1VNM2VqdDNqWXBxYmRZSlBNTUJCMGdNOU9mSVFjS0lUcm9IMHJEbFE2Wmt4UGM0ZHBlQ21NMzg3NXBXTlFrZzFKSnVRZzN4cE9WZ0VGallabEVENTBFaVZKNzg3cUM1YUdtakxRWl9yLVA3X2hJN09lcExWZ1BHSEFTUkxsd0dOLUZwTDc4UW9VempfWHUwNlBkNkF1VExtYmpoVmlERC11ZG5xdTVVR3dKNGxZamJqSkNBN3VQT2VfdWpzUWhZd1VHQV9YQnlsbkVySWxMN09YSE9UeGFEbEpHSDQtNHdNcm9hbmhPWTVoZ2NWZHZVQlpVZ1JEVWg0MGwzejhGVWJhUmxpaEUxeXQwdU5vR3F3TWRyWnZoTkl3YVFjUFlQeVV3UTdBdWh1dl9qSXRVcWlGQm9ncnlSb3Njd3oycXR0am12OEFRWUh5QWx5OXVqdmJ1cnk1TGNJaF9FUWZUekJuSnlfcDVZdzBDWG5CSzg3ZkVIOHJhWkh4V0VUcHFseHlmWWRWZjlQakRYTGJMYWJWQ2J6TXNSMnNYZkFvNm00VmhnaEYtQ0dOV3lta25EMDBUbWU0TGE0Vy1BLU9lR2o3Mi1uOFZjNmI5Zzc4d25tYkF0dGRyUThQWVdLUXZjdXlEbHZ5RUdHSF81VW10bFN5ajJKbHRLZXN3N1dzai1hazhDWDFidGRzU2xoQldjYUJ0dGozUmp3bEN4aEQyTXlWdHR6dDIwN3JPQjdxdEFJeVg1enJZMUxaSHB3RW1NeDhkWnM3NDdlY2ZhZVM0ZFFCWmN6U3lCNFZFWVRRWGdIeWdFX3EtYndfZXhqNWs5c0RHeHNTRnF5elFCVm9VOUtlbmFtZTRESnNMWFdaaW51UEhZUVNtWDJUZFBabXNkSHhCa3BBcHJiLUg0SGdFSnBPYWxCa0d3aFhza0hwYjZUTkhQeHktb09tLWhBaXptTVZPZzlnTDJOSHpSdUFtb0kzVTRFd2FfR0Vub3d0ZUFRU0xlY016WjZxZ3l1ZGswcG51UnlONlAxbTNCU1ExODRXUzNqeDFDNDYwTEFKM2FySS00QWV1aW5fMFZYM3FHdmEzNDR2ZXQ4N0RSN0liTUUzS01rWWtUdXotaHpqbnhHVVQ1cXZhWnYwNzdQVHExbTVDUVBUZGVlNlNnMzRmLXlseGg3MGoxSS1OWnZ3aFAyTFZ2OTJkdVZ4SlJSN3hzbEp6UzU3NXE3aWZ1UEcwUnp0NE55M1lESno0TWVDTk5wWklwTUJKeGR2bkc3azhsbXlvQlVRYmR6OHhCdW5YT3FsRDFHU205M05LYy13bzdxZnpJanYwWjF6WVpwLW5LN0o2NEUtSnp4MkQxZ2xJRG5vZGw5R215UzlwbzMzOUlZYU9QZlJnSTNad1FTVkdwcEJQN0dNRUdsRkVxbG83bTUtNFNZWEc2SmRYYU5yM2lRVmdoUEtkQWVpLWJDTEFQbGJGSkNFQVU1NXJfSEVmS2xUNS0zNlN5ZHRlcWFTZEdvMVhGRXpadWFILV96OEJsd1hXME4wdFJpdHo3SXh1OU5BTkM4R3V0Z2t2WHVFUl9Obnc1VUlsYXJlcE02VERfWl9lOHJGRDdoYXhWMVd0b1pkOUJTd05iUm1JeXU2Y2ZaelgyeFNPVlJVSndWSEctWTNaRGRpcWtzb19XR0J2TFJKQlRWT3NvZVZucWUxWktqb0NRSzFEYUZPb3B4UDdTTWhwOVlpY29XRk9VUU5ONS1EQjMtNjhDbURzdjE1LXMzRFRxUUM1OHhpd2JZLTRuWWt0eVNRV2F5elRvYlZOWG1idmI5SzktdWowYVRWRkx6SDFHMFl2TG1oU1NTd2tfM08tY3RSUExFblhQU1FWNkdVT2p5d0xIT1hTRDZfY1lTN1JrVXR4Mmc4bV8xbmhJUW0wOFd1aTVNSkdQR0JEb0RmN0szd3oyMnRnUVFXTDEwY2J0SlVvQkYyNjJVaUg3TE5pMjJWQ2tsMElYMVVRNy13cEkwcDhkV1NvV282U25PYTdkUTVpQkliZjlQX3JRd1dhYVl1NV9aQlpwQ000VXFWY2dhR1NZVnNxRHpXRVY4LXRjazBYOE51STJyZ3JSOTRDSnhjSms5MWwtb3owbldhTUFocHJubjJfd3hSWEdOYXkzNmJqU3EzWXhNMXN0dDFNN1JjenU3UTJQei1mZGpHWUFOSHZxQUtYUTZpbUphQXNwbE50Skh1SUp1andyTlRQd0ZzNGE5bDRkWHdNMDRRSWZoYzR5em1icDlYRjdVWVU0MjNXTWhRU2RMNUpaTld5QXVxOEFuRzdtd2dTUDNUMjROVGh1U0Z6Zjd1Tk5ySmdfUFk5VUNWcmlPS3FEN1lVS0FSZ1FFQ0EtTmthbG5YU0V1VEN2azJpZkVYOEh6cTJJbDV3TEZyOVFKVjBmT19EUkNyUzVzRHVaVmJ3RDI0Y2VqT3libWd1VWFuTDhiMklqS3h6TFVPT2tlMkVPNVRRTXRQUWZjeTYydkV5c2NwQzJFYXd6YUN2V3ViMVNXS2RZVnUtcVBzdFV4eWlPUHNpcFR3V1kzTXVNRkpwclNscWFVUDFJa3N6M0Q0VGpqSElzb0c2TUFsbFRZcUItSWpuSEhmYzI2blM3cmExeVVjbHRIRWtEd3Q4R1I2bmctNk9XNWJtT0J2VFFDamRUUDhSbXZ3b2tIRXZGQTlXbGs2OVZIVFpFSlNaNGdRZXFzcW83SEJJQ0h3dlViOW16YkhnaU50bGQ1WUFHT3V1U3BOTE1UcTM5LTMzVVZoTjBLa0hLUXZCenI1OXFmaFBIU3lVRnVMZzI4b2pYMGRvb3gySlFEZ1BobHZVYkR3cGluREJqVHBiMDdsY09EYVI3ZWN2M0tDOUhJQVdreDlhV0lza21Yb0FWYVNWTDBsZ05NQzNHVkxSMURfcGVoQTZySWs2Rl9qbDY0N0w4SERqRFJEbjZRRnRIa21BYW10TU9WSzdPMS1UXy1UTldwaDZ3YVFOdTBrV1ktZXAyRERndDk2enRYUkZTVWdNOXJMMnk3OENOMkVFWW1mQUktM1VjamdUblUxRnJXaEZ3dC1JNlVmNFZwNlY4XzZxTjJzVDJyeWFLWHo0Y0JJY0NoNm8tS0RpOW95SDV3MFF5eDhWb0xTNlN0YVEyYU5FejlKamctZ0N4aVp0Q1JYeWlnaWx3NTQ5VWFWMldreHR2bDZkeWRmZmFTM2ptYUxqaDRmOXhHa1JQRUdqZmZvMVY0dUN5QkI5QkNoaVVCZG1qVGxlVlJROG5Ccm5WQW5qYXVIYTRsV3VkNkhjSzU5VjJNTlpNTVdtS0tvb0E4cWtuMzVUY25EdXluSjJITUNnZElCSnVQVU9TeTI1QnhuZnA4RU5NSlZrV19UeU9uTXk5b3JtNTVobHhmSjRENThad2FRREs0QWlFZk1IVHdJc09uZ2pnU0o0S1JDdjFRa1NVeDdYRVhNU0lNUWtUYTBqS19aNS1PQ1ZNc3NBbzEzVzg1VlFKbVpDQ0tZRzZWbS1ybnVYSUdZZlZWLTg1OG93OEJZUGhDYVRhVzRkVnBLWERDRDVfc1FsamdJSnd0Vmc0T0RKY1dxelJpWWpUaXMyVzVjdlBvT1haNUIyZnFaVTlCWGVPQWM4S3Y2a2ZDVWp0OFV5UDFTaGswN2xtZ1A5b25PMWJ0eVc5VnhQSE5uUHcxNjZDeXJmVVcxaEFHQjB1YTFNYmtEVTdfdk40SlowY3VWNV9iLW9sUm80eV9yeGQ3UGRWREJsZHBWTUxsV3haLVhiV1VqdFpTVndaT01rOEtvV2F0bld6NVI0S1ZLNkFnbWJFTHhpa1MxSjYxZ1lJNlhTcm8wRnF1N0dNM2JXdlZQYm1xR3Q4SV9UcjNHamlKeDZ3OUhvZGlLbEZQc2JMakE3OWJuSG5DcHdwSEZBWGI5d3E3dmMtSF8wTU1WVGw3eE56bzhIZ1FfR2tPWEl1OV9uMVJiZS1SRDRXUmlId1RuYm5ZbXpHNjN4b3dHTlBJN2c4R203ZkxfTnpDWGhveDdUSUhXMjh0WFFCeVk4ZmR3X3YtMUtvU2lhSjNwNHBJUnlRQm1rQnpmOTlGRlpPS2g1bUxLMnBrSE9INWFlblFFNng2cHFDakNkcW53Uzk3eGJ0Skp1TkF4M1V6UDdHM2l5WlN5ZWw4SEd0YU1UZVdITzFuaE9lZFNlcTVhaGk4dEFFeVp2MFFScUxsQTRaQUxrVGh5ZUNZckpBd1cyaUJaOW5DRUVnemxqT01wdTJndHpDRnk5WktZWUloaWZKdVQ3dlBHdVhGTUtLVlg0WFU5ZmVoOFhIMUVWbnZ4cENuRjl5eEZneThuVW5CdUdsRkVWOFVCVU5oOE5BcElZY3BlTDd5Q1F5bDZQN3Fock43SEhINEloNmhLS2lVaUItWjRNMHJUSk9mZkd6MFhGWmlaSDdYT21KazBNc3pCbEVhaEFFbjJTU1JaaVFXTThsRFRRcEdrX0p3QkpRX1FVTmtMZnhCcHpsSzBUMGFxS1d3M2doWFktT3FqelM4cTFXOHVBYzNabFRUMFZHRWdWdU8yNl9vRXpXTnZYYnpKMUVfVEFxUkVWS0xfOWFlem1zM3JqYy1GdldSR2pMV09OTXhUdGw5ZzE5RFdhbFA2alJlUlJFeEg3djBLTEdvSHV1RW5IVHNQX2hsMnZuM05WWWl3dFFualFCOXpiMjZKRmxwZzZFaEF1STN4bFZMM3hwRE9qZUlPNXM3MllKY1MzcjAzYkIzbTVHMUljRVU4SkR2WTF5MjJQaG5iOGVmNno1cmk4RDY5clVLWThFOXFraExXYVhOMjRTLTZBYjNRZUtKcmxIR09yaEc2ZkpCdElqTF93Rk9kWjJqOFo0bVBZdmJaNUNEUTdnM01yYVh1aVJ6cWdvdXk3TkliempzOEZETkQ4ZHNMR1Z0OUNLanRVMnR5a0JrSUpQZlhrZ3U0LUpSVFRETjNINGdwek9md1B5V18xOXRMdlBKNEpRbHlzbnhKaEptSW5TUEtUUTljclJHVFFlS0F3THZZemdCMG5QWkIxd2dQVWJHaXRsaHlTV1pqbWplVU5oSnNnb0Z3ZHRFdTloTjRDejROWUVLZ1ozWnBKTC1sZmVJbmp0VEIwN1A4dWtpV3FHeGNBaVI5TDRPdl94VmxNYm9hblduNENNLThVSnZjRGhVRGtpTGt0eHRJOE03Zk01bngtMkFSX3MwcnlDV0F1YmVmQUxRdHVEUnQ1MVZrZnlJZkJ2UWFyb3dINnpIX1ZfZ1lJWFdOdDlvTElMT3FrNHlqcmR5Z0ZXWTl2QXZQN1Y4Q1lraUZuSVVrWGNaeUNsT2dmcTM5bXRKeHBMM2Nzb3VaWFRIcDExZ0xibWRUNUVTbjIwRThiblpEcTVvSEVEWGxPbGZHSE9ldmx6RnRCX1V4R1h0S1lYOUoxQWlLekJyZGI3QmJvemRFcDAteHVpeTZYRFp1Yjc5LW1LcnVQTDJaWWIxaTVoVmpRQUN2RnAyUHBaT2k3eFVmSlJoT0Z3Zi00OUphVE9XTjMtYVhVb0N1a0NpMWdqODhkQ29QWWNVdWs5WmxNelpkV1hJcDlnQ1gyN196U0U1WURCYWlWQ1dPc3c0Q0pGYmMta1FUOUNaMzRkU1hiczZ4S1N0OS1haHI5b3NpY2JHY2laMUlDV182WWRLM0l6ckh1UUV6TnNDQ0tEdW9iVVFRZFpBUlFMeWFlR2w0NWczN21Gb0tQN2J4b01aY1AzRjB3MzdBR0xMVzFjVi02dU5uaWhZQ1p0dThZckZQdWF4aF9VVUxPTk1SZXN5TFVsRHVydmxuQVV5ajFVMU1TbEMxTGtPbV9VV29NdVBzX1VqU2M3SDc3RTgwcmd2QmZCQTdaMkRQMmpWOFFRUmI2Q1RieEtpRkk5TFhmRlI3MjlFcURZVXVRRUk1ZDN0Y3liN3U4TzJlQnZfVGo5TzRPREx5Wjk3Z3BMdVZ3dUpVb3FqQVJnRU91U2lHdWwxaFJxYTl5NlZ0ZmpMNE5qajJJYjFsY2JyQS5OcXpkcGU4Yjdxc2MzQmpYRlhaWVpR"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/BackupSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/BackupSecret-example.json
new file mode 100644
index 000000000000..03c778957281
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/BackupSecret-example.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "secret-name": "testsecret",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": "KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmhERDdfVW9aU1ptR2JYN1dYUTU5WDkxZ0FQb05kdDcwZE1BbmgzbjQ3eWNjbkRNOU5vTm1hY0NHZmlNeUwxU0FlZDk0UjhBNDAtVE81TDNfQ05Qal9pdWIyaW03Z21nbHNPNnFFUVVIWU1tOEh2Wl9odFRrdEl4QzRPWEowYTB0S2hscnczZlBvVVFDZHVGcFg0ekEzYTR4VTZXTUNfYjZZVXZqUjZnSGM5TFRUR2tIazh1RTY0aVQ4cmt5RDRrU3RNcXhnU2lfRVZwUUdjWGdfNE9wQ1dBOUFha0N1NkpybGRaQW9BLUtXTWpQbGhaWHFYWGMyVkJlbUJjRTQ1YzY3QWhqYjJrSi1uQ1c5dHBjWS1JZ3JEUHFzWkswOS1WbHVtcl9SbzQzcG5FeW5jVFpTdzZlX1h6VnN0dUFOZHdiM0E2OVR1c1hfYkJKZ0J2SGQ4cDJSUS5WMTlhMVRacjZ2UjJHdEVaWGtOOXJRLmhwMU5IMmwtZklWbVgwWlNfTlRzekJfUEs1aktDUU5rSnJyRUhRQmZjQ2VjdHhmVU5uVlB6MVBqRWNDblZuV0pCUk4zTlFKZm01MjFLRHp1MzBIVUFEUGVmVHJyMFVFS2x5QTM2cThoWFY3VTdoQ0dHNk85NVpYclRsZlVENDI5RTNTNTQxdVBmWGpGR2cxbHlucFNTNnAtVkFzaXFlY1lpQWNuM1hhNzRhUm5xS3N3ZzhyU1ZOX09hSVU3ak1VVUhYZWY1ZmN0NlFrdWFfYkt6Z2dtR2ZiT2RTdVdNRmVQaF9mMkJMUFNGN3k1NThEMFZxSVlNY0JJR0dMU3BQUU93Q094OFF3Y3NVUEp4ZDFuWkVYYjRVNEJZYlhBcmFMX0NwekYxZlhYWVBsdmVUSGdKNVdrR28tWXNJVzAtT3ZqVGdLN2hIamxpR1psd29HOVUtbTJSVDZfbkhseHhVRFMyY3JseGNmay1OOTlXd0tEdUxFMTM5ZE1mN2RCSEl1aTdxd0RXdm1TN2JMTHYzM05Wd19XSl9DT1VGQjgycy1ELXk0UEdIRzVackhsSDgxa25mLVpRblU0SmZfY2lhMWhmWlY3ZFMxb21UZDQtNnJwZmpTMGxFT3VfZTQ5bUpYUGFpZ0hyLWFQYkFzTXJJQ2JvOUVIR2IzMXJ5SlR2QXF2ZmJDbU10bkdLUDV6aUNiZFh3SU5ONzBJTk5lZnJLWGZkZFBUd0RSV3d1ZkxCcGNlU0U0SG5EWVZVQmdkMDl4UUZidG12UDhhTXhhUlpGSTNpWG1fbmpCNmZfdlNhZUNUakdVYVVuRE1QQkdOQWQ5T2xVX3dvUnMtalNCVnVqd1FQSGlGcm5RWElkXzBRdXRYSm54cTU4aUtlTGJvNDJtOHgwaXBRcnB4aEZoUDdHNmZOWXAwVmxXR0RxZ1Q0VlpPQkZsZWRKUU0yaDQtb2xTbXdtUms0M0Y1cjdKd3h4aENqU1JReWx1MGEyQ0ZONWMyZjIxTElZaFliLWNReWFXMDNpV3hsb04zWld5cDJIb1FlUmZPR3lXUzBiU2NBT3JndGpBYnJaUFIwMGRRNnpSOHNBczFYUzh3dzBlaVczbFpsdjJwVWFxOVpTeVhnTS14b2NTOS1ueXRaWGtWWlUwX2dDVXJBV0ZKNG5XdW9oTGM1RkkyRWFQNWR0SXVWa3dnbXlsR1gtYk9ZeHp3dzVGYmI1V3VEbnJ5aDBMSnVic3Q4VXdLdnl3bk1jQ3duMjZSVTNxQVRudGJubVhJS0FyeGkwMldQVk9oTXdpUWZuX2h1TWk5emp3MEVuaXNWdktNWUNnR2xqNWlGZW5Tc0FKUXBiLUY4bng3OWFJQlJaTUc1a0huUDR5dGxmNm9FTkRsRXNJY21aeEtOdEIzcmJPdVROYUhLTXZBNmxSNzlMMDJZSTZrcEdrUUZnaHpIaTBjTWkwbFdCejRTM1AzUEMzZElZSVlQZ0Q2S05kT2FLWHkta0dWdUlsWFNmVlVrMnpzM0NBeTJhZEJjV0NMV094ZkRoQnlwNTl4MHpBRExvdnZySHRLOWF6TGN3N0lTbVl6eUhYMkpobVdReUYtTFd1VzhfcW41SkFVYlB5Z0RTRDYyMi1PTGZQVDZmc2VTWUVBUTFLVWRwZTFnSV9hZWxVT3FaRWN1aE5SckU1YUp0LTN5TEVLVWZIWXF6WTlGbHJrUE5MUC03Y2xRbmEySEhfZmMzZV9LTGtGUDFhQTJjM0RVaERseGhsTzB2bFVmV0c5eXpXaDNZN0NmRFlFMlBaUzZBcFBlYy0wa1NDcEVKMmtCcnFzWG4yeDJDX0FDdTdCTTVGZXNJQkN0M2NqSEdQSVVQRnEteGVmT0RCXzBQcXZDTXpBOHg5Zm10Ny1sNHhVQlJaa0dtZExhZFoxVzdFUXRNRVpsSWMtbDF1V1UzTU15cFZpVWR0OWxJUHVQVUEwc1NrbWxrTGhNSjgyNE5QN0hyVi01dC1ZNDcxaWVKMHdEUjFxMmU4MU8yazdNeTFlTDY3TlY4OVBHYU81SVR5WG1ueUVXMGtVbl9qa3l1UVRkV3dsS09HZVZIYkJWNFpxSXZHWjdQUS02TEE5eXc3a0dyZFRhVFZXOEdOOV9GY1c2VUhjbzA0U3dqTzY2S2x4VlFJWWpBdEZPZlBjWW5xNzF1RndyQS1UZHVDZG1sUFBHOVpjc2tiQmdrbF8wVk90dmhuc0pwYXZKZ2Zka0d3OF9qMkQzd0Jzemd0VndHNk9nNW16eVFwM2pFc0w3UmNtcXd6WFBOaDdKYXdHVDBJMlRvZHYyQ1Z3MDkzWjJlODFXR1NxRnlIejAxdjFBaGN2T2VWdmFjUGM2Y1JJaVduNW93ZF80d2FBdjlyNjVVdmtWa1FLRXpHUmo5eTZILXdZTTMyV1JyMzBlOU9MRTNKUU5POV9kNjRTRmIwSjZHa2VxUmtnNkVXc2xqN1JYLVU1VlhrS1BtMzNpS3c5dGU2NVBqQUNnZThRVDBYVWZEaUx5a1pGeUdpZ09ZMS1TVDFxUlE1eUhMTXhEc3BPRjFXd1lMQ2c2b3hocTlWMm55Z0U1cUJ2ZnYyWUtFaDdjM1dWNjJrYkw3UXJ2d0xkMHVRZ1FwYmUza3E3dGJzcC1lNWlud3cyY0YxQzByeHNScGZJRHlJMmg4b2xHMi1RQUZkWmtlMUlmaE1FZmNfdUdXX2pqSGJSWXVzYnZCRnpKMDdaOVJsVnFMR1A2WXBnTDFsRTFOY09xUVJyYVdxckdDTWZ6SzZMVENQSl93aHJRam9WTzdVRDJIUEVnUjZ2S3U3cWlmTmo3UjE5OUJuRi1EZmlnbk1TYTFKZkZadDNuVXVZOEhMUXRoUzN4MUMxOE50d3dsaDVuNGxYS3d5MERHenljbVNweE05QkdPNTFRckFmSXRfY0xHbUlzMlJ4MzMyeDRIdEZ3Z05nRzFBazNIUno4TlJ4V3lhNWhjb1NoYURXekhES2gyOVp3Vm4wYXVzeWJpal9uNlFGcnZZbjRSOHdPNlRQV3FrS09JcHkxc1lQNWxyNDc1anZSRVZGaFdCWDBiUXdJdnNlM0Q0a0dFQzgzU3FWYkhxY3phZTNwOFNxaG5tQW5ZYzBIbWp4clJfZUMzT0hYVFBGUFZmNDlVWHdrQjIwY1lvcjJ1dzBaTzJ2TUg3S1QwcjBSWDBQVy1qcGpORFpjSGRSNVVCMXFacGlWLWxaYkw0eF9IZW14aWUxY0RPOHNQSXhIOElUSWtOV0tTR1N2eWdraHBBbGl2RzVEZXJObElkeFE2c0tHQ3RtMDEyT2xjN2thaVFaNHh0TjR5ZVpPU2xyS0s0OTlIcWhObzhkNTNsbFFfMW5ncWlHbzhUSDlzWkFrclYwclc3dkJOSF92UlhBdTc2MnlpZGhZUURYYXJXSEFUMm9DU2hEN1lOdnotekoyZGtEajJMcW5CdFNCWFh5T2xsM3o0ZWFITDd2MDZ1QTgxMVBKQU5YZUdoenNaNFVQQUQ2Q0E4cGlxSHB4WGkxODRHNEJETVU4S2VHeHZLWnJiUlNOT2pTOFNrQUJKZERfSklIZ1RhNEFhNzdPUmNZcVY3OWZ5djFZVHNma2lLR2NUYzZIUjZzUVpsamt2U0NQNjdtTTRGUHRqTHlfX1pDQlNwdnRSVWd5UlpNM1dSOUViNHkxa29uRG4zUjMzN2lpSzdfbGtIa1UtZ21VbUpZUVdnUjYzT01pZUdRUHdNR3BSZXlRWE5yckJVTDN2Z2JYdjlac1ZDcDh1NHRwQjBleXJvUXgxZC1KSWJvOWVyR1VlX0ZzU1Fpd0tIaGFIUk02Nzh5dENkcHJFbDBWeG92TFVrX0xNcTFjN1R4MG5jbFl2WE4yUjhEMXNhU2FibkJSd19CU2tZMFNMSXdhb2RpY2o2ZzdLd0ZfMXB2eThhNF9LbnJNLUNkenBvdHA0aTd4QUJuY2JRVUEwWkpsYlp1elRpR0F4ZjFnclk1Z0dZOTVoWi1XZG1lOWlSazBHRTJGN3d4MlJyLUVvS3lZRjNjak0xMWt6MWFmME9fNFdyOXJoU3JrX1NHU3l2a3ZCTW9NZ0xOX0tSS1BlTjlqUnpwRlVST2VnN2NCbGlhdy1odnZhY2lCeDN2UWRqTE5jTldQdU1UbzVmME1QbmU4TUtXcFBoWjBySElMaEVuYW1pcG82X3pzNjczcE9ma09FS0JWWE9mUDEzR0UwS25SWTBab2JPLWRub254LVdBY1dodFZvX08xbkwwTWE5ZXFMMURhRGhJU0JNbVRIM1hkY2dDTnF0emIwcVMtS1l5Mk9zRzZOakRDVEM1aEI3MXIwU09WMUprNFV2QjdYemxTTW9YUXJnTzF2ZFVwSGtxaVhUM1RJZmlQMWRKcDEweDlSMlp5R0lzUzljQUtNMEZyMGRxQmJmQy16NTJpcWZweW4zUVVqb1Fld2hPYnJwUEZGOF9lUmVNRlIwSXZjUkxnMHpwek56UzU1N1pkQkZhemxNTThLcnkwN2QyUDAyTnZtclUtN1ZjOW8wZm1qem9WOHVVTG9PMkJHdmFRdnFJNmtBTmQ5VWo1X2JkY2NVUzBhcklzcGFZa1UtUXQtNnQxYU5YUUdGZEtUbFMwSVowek54bkNIZWRySEE4SkYtOFg3d1ZpRW1McXJQbU1Sd25sbWx3SnhxLVlReWMydmdUallSbUxCVU5TS3VrZkJsa2VnMmlCRWdySksxVlNyRWswX0ZvOXkzV1EwVlZuNXhEZXlGc1JuWDI4Tkl6alFQLVNXaHhYbzdPYm5YY1cxZHlWNE1fYjdzM096cEMwOTJWcGZYQkpaTDhBeHgxNGY2TmJzTEpXLW95VEdsaTJFb2FCZHJKQ2JkQlNOdWJlbGdRRmU2V2hqSjRGdlNrYVJISjFTT3ltbGFtQmYwaVNDOGM2X1g2SkZORjNmOXYuQjc5SDJvbVIyTU52SndydHVzclJ4UQ"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/CreateCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/CreateCertificate-example.json
new file mode 100644
index 000000000000..07ec2e513607
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/CreateCertificate-example.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "selfSignedCert01",
+ "api-version": "7.1",
+ "parameters": {
+ "policy": {
+ "key_props": {
+ "exportable": true,
+ "kty": "RSA",
+ "key_size": 2048,
+ "reuse_key": false
+ },
+ "secret_props": {
+ "contentType": "application/x-pkcs12"
+ },
+ "x509_props": {
+ "subject": "CN=*.microsoft.com",
+ "sans": {
+ "dns_names": [
+ "onedrive.microsoft.com",
+ "xbox.microsoft.com"
+ ]
+ }
+ },
+ "issuer": {
+ "name": "Self"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/selfSignedCert01/pending",
+ "issuer": {
+ "name": "Self"
+ },
+ "csr": "MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqe8aINnShK+wQC8QU7fwsviQc9+yiOnqU3adXA6qNjn21HTdRBa7cyQIk1STxHIBLTT/GaEJwqsUi6UvZaPEHokOWsr1bP9M7xOPTicBcRyMrr6bOxsmGczYtu1z2TzzXDD7q7IEignE7/LowGEaIADCIU9iuWk7TiJ+1Q/VLh/B3xPsgVjY+n7zEQ53gBiDHSl7XfELfwmslOQ28TVNogUyXsxHcVxQQYJeI7HqqY448LeleK69Ld86lkBixLEm1pD7HSbEx3WI2lyUQAGR6hD3YFaiIWVpQeEyI7p1jmtQlnfZdEL4q9wdlEEcwd3h3PAZpEBhCixahF54fci3pwIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACiLeghirF+yCuYGVUPDB3wKQJn2iLY1za9ncxCehIVqOkFK09AphzoxF6Yid90AKCaa/dT/Ohm7oTyVQ+YcZnT00LUNFVG48AOE8YDiw9tjAG9OORsAz80xnv2qaLw2TCVIQ6NjrI83LqAm1GJ8rAnpdD/ZTuWM7TvSO5g/jm/Q0oSuKpMgj3YxpwgB9Ac6YEfVzOnm76OkUcpvR5MS4BoTfRv4thdSnU+uwqxM+HtdSVTbHQeC2U/hM1cyzDMpl1rZRklmiEOoPUeDasEIBVTJhAxR8xAeKJJD7Wzj4mJPw4UMvF8zQZzW8EKYvB1hkVYY+HQ85L+XcXd8lco7hU4=",
+ "cancellation_requested": false,
+ "status": "inProgress",
+ "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.",
+ "request_id": "6faacd568ab049a2803861e8dd3ae21f"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/CreateKey-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/CreateKey-example.json
new file mode 100644
index 000000000000..ae87e0222150
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/CreateKey-example.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "CreateSoftKeyTest",
+ "api-version": "7.1",
+ "parameters": {
+ "kty": "RSA",
+ "key_size": 2048,
+ "key_ops": [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "wrapKey",
+ "unwrapKey"
+ ],
+ "attributes": {},
+ "tags": {
+ "purpose": "unit test",
+ "test name ": "CreateGetDeleteKeyTest"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "key": {
+ "kid": "https://myvault.vault.azure.net/keys/CreateSoftKeyTest/78deebed173b48e48f55abf87ed4cf71",
+ "kty": "RSA",
+ "key_ops": [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "wrapKey",
+ "unwrapKey"
+ ],
+ "n": "2HJAE5fU3Cw2Rt9hEuq-F6XjINKGa-zskfISVqopqUy60GOs2eyhxbWbJBeUXNor_gf-tXtNeuqeBgitLeVa640UDvnEjYTKWjCniTxZRaU7ewY8BfTSk-7KxoDdLsPSpX_MX4rwlAx-_1UGk5t4sQgTbm9T6Fm2oqFd37dsz5-Gj27UP2GTAShfJPFD7MqU_zIgOI0pfqsbNL5xTQVM29K6rX4jSPtylZV3uWJtkoQIQnrIHhk1d0SC0KwlBV3V7R_LVYjiXLyIXsFzSNYgQ68ZjAwt8iL7I8Osa-ehQLM13DVvLASaf7Jnu3sC3CWl3Gyirgded6cfMmswJzY87w",
+ "e": "AQAB"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1493942451,
+ "updated": 1493942451,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "purpose": "unit test",
+ "test name ": "CreateGetDeleteKeyTest"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteCertificate-example.json
new file mode 100644
index 000000000000..3bf1793c6b66
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteCertificate-example.json
@@ -0,0 +1,65 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "importCert01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "recoveryId": "https://myvault.vault.azure.net/deletedcertificates/importCert01",
+ "deletedDate": 1493938558,
+ "scheduledPurgeDate": 1501714558,
+ "id": "https://myvault.vault.azure.net/certificates/importCert01/f00e72f0ddee4dddadc27c0f605d84d7",
+ "kid": "https://myvault.vault.azure.net/keys/importCert01/f00e72f0ddee4dddadc27c0f605d84d7",
+ "sid": "https://myvault.vault.azure.net/secrets/importCert01/f00e72f0ddee4dddadc27c0f605d84d7",
+ "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo",
+ "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=",
+ "attributes": {
+ "enabled": true,
+ "nbf": 1430344421,
+ "exp": 2208988799,
+ "created": 1493938557,
+ "updated": 1493938557,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "policy": {
+ "id": "https://myvault.vault.azure.net/certificates/importCert01/policy",
+ "key_props": {
+ "exportable": true,
+ "kty": "RSA",
+ "key_size": 2048,
+ "reuse_key": false
+ },
+ "secret_props": {
+ "contentType": "application/x-pkcs12"
+ },
+ "x509_props": {
+ "subject": "CN=KeyVaultTest",
+ "ekus": [],
+ "key_usage": [],
+ "validity_months": 297
+ },
+ "lifetime_actions": [
+ {
+ "trigger": {
+ "lifetime_percentage": 80
+ },
+ "action": {
+ "action_type": "EmailContacts"
+ }
+ }
+ ],
+ "issuer": {
+ "name": "Unknown"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1493938557,
+ "updated": 1493938557
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteCertificateContacts-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteCertificateContacts-example.json
new file mode 100644
index 000000000000..0f98fa5a9b94
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteCertificateContacts-example.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/contacts",
+ "contacts": [
+ {
+ "email": "admin@contoso.com",
+ "name": "John Doe",
+ "phone": "1111111111"
+ },
+ {
+ "email": "admin@contoso2.com",
+ "name": "Johnathan Doeman",
+ "phone": "2222222222"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteCertificateIssuer-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteCertificateIssuer-example.json
new file mode 100644
index 000000000000..363cf914e85e
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteCertificateIssuer-example.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "issuer-name": "issuer01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01",
+ "provider": "Test",
+ "credentials": {
+ "account_id": "keyvaultuser"
+ },
+ "org_details": {
+ "admin_details": [
+ {
+ "first_name": "John",
+ "last_name": "Doe",
+ "email": "admin@microsoft.com",
+ "phone": "4255555555"
+ }
+ ]
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1482188806,
+ "updated": 1482189526
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteCertificateOperation-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteCertificateOperation-example.json
new file mode 100644
index 000000000000..95e81055df1f
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteCertificateOperation-example.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "deletedRequestedCert01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/deletedRequestedCert01/pending",
+ "issuer": {
+ "name": "issuer03"
+ },
+ "csr": "MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApf+kGcL+5uivj/ToYbQ15zcx3caEnpzXaX2eJgL0/Kwaz4u2/bNJ9+hoXnlOFFbCp4canVoNvgu8fw5NOu9U3gJNFQwjHeAqfsg8okZGkIk0riIpp4MMb/4GQb2y3B28AcTu2FANdzLoZzBqmQs51KBe1RONkdtqDYXIvnb5G+9+P7PCy5G//Ga0JAP6Y6P8+TrE9JLEj6Sny0ljLMpMyt4rIRAtNfKYSeiWVQmYX4jZfImIW3iq91zwMsRlrzTm80mNfHPCv7V/8NmYuh0MQgCr49lLbbKCgzDyo9h8sblVQvR5TAylpIk7bSQNf4tSdVNHnsF6CJWu6Pg31hyMpQIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHVjmYFs3FmecaJ1ExhK1WCFJaQJUTVbPJ1xJ93UJlLivhzI1yhQO9nMC2DKV+E+UCxceqjae6OG5LUhXfYAziS0HTc80+ZcUqrZRb5ZRt+8HU0TPbTDDqjj8wMZ4VlgQ3eXGAGesMfZV3AqWwa5itofvqm8KAmL4Yn/XMSHcKfRx3h9WnC6RXgZ8WNYK+r5o+gHlmuF7/AaNFh8UjIsjjOZQ0Yin/vA4yBEYTt1/OC7pScs3bdL9CIf4rC98qaMSf4B2W/vfrXUo0gGPYcep25jy7xnIltSY80Trn3Mty5YQ0IT+KPQcJKhbryGg6bIy4jJDwS7zkn51MR1q3kNoOA=",
+ "cancellation_requested": false,
+ "status": "inProgress",
+ "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.",
+ "request_id": "b88791e33d9c4d609d3e3cc3d2d40d11"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteKey-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteKey-example.json
new file mode 100644
index 000000000000..5cbd4e7d9fc4
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteKey-example.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "CreateSoftKeyTest",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "recoveryId": "https://myvault.vault.azure.net/deletedkeys/CreateSoftKeyTest",
+ "deletedDate": 1493942452,
+ "scheduledPurgeDate": 1501718452,
+ "key": {
+ "kid": "https://myvault.vault.azure.net/keys/CreateSoftKeyTest/78deebed173b48e48f55abf87ed4cf71",
+ "kty": "RSA",
+ "key_ops": [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "wrapKey",
+ "unwrapKey"
+ ],
+ "n": "2HJAE5fU3Cw2Rt9hEuq-F6XjINKGa-zskfISVqopqUy60GOs2eyhxbWbJBeUXNor_gf-tXtNeuqeBgitLeVa640UDvnEjYTKWjCniTxZRaU7ewY8BfTSk-7KxoDdLsPSpX_MX4rwlAx-_1UGk5t4sQgTbm9T6Fm2oqFd37dsz5-Gj27UP2GTAShfJPFD7MqU_zIgOI0pfqsbNL5xTQVM29K6rX4jSPtylZV3uWJtkoQIQnrIHhk1d0SC0KwlBV3V7R_LVYjiXLyIXsFzSNYgQ68ZjAwt8iL7I8Osa-ehQLM13DVvLASaf7Jnu3sC3CWl3Gyirgded6cfMmswJzY87w",
+ "e": "AQAB"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1493942451,
+ "updated": 1493942451,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "purpose": "unit test",
+ "test name ": "CreateGetDeleteKeyTest"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteSecret-example.json
new file mode 100644
index 000000000000..c93d78374f4b
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/DeleteSecret-example.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "secret-name": "GetDeletedSecretTest",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "recoveryId": "https://myvault.vault.azure.net/deletedsecrets/GetDeletedSecretTest",
+ "deletedDate": 1493938433,
+ "scheduledPurgeDate": 1501714433,
+ "id": "https://myvault.vault.azure.net/secrets/GetDeletedSecretTest/b595353d9c39413d80626575b3b5d865",
+ "attributes": {
+ "enabled": true,
+ "created": 1493938433,
+ "updated": 1493938433,
+ "recoveryLevel": "Recoverable+Purgeable"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificate-example.json
new file mode 100644
index 000000000000..389bcfaff7f3
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificate-example.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "selfSignedCert01",
+ "certificate-version": "pending",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/selfSignedCert01/f60f2a4f8ae442cfb41ca2090bd4b769",
+ "kid": "https://myvault.vault.azure.net/keys/selfSignedCert01/f60f2a4f8ae442cfb41ca2090bd4b769",
+ "sid": "https://myvault.vault.azure.net/secrets/selfSignedCert01/f60f2a4f8ae442cfb41ca2090bd4b769",
+ "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo",
+ "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=",
+ "attributes": {
+ "enabled": true,
+ "nbf": 1430344421,
+ "exp": 2208988799,
+ "created": 1493938289,
+ "updated": 1493938291,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "policy": {
+ "id": "https://myvault.vault.azure.net/certificates/selfSignedCert01/policy",
+ "key_props": {
+ "exportable": true,
+ "kty": "RSA",
+ "key_size": 2048,
+ "reuse_key": false
+ },
+ "secret_props": {
+ "contentType": "application/x-pkcs12"
+ },
+ "x509_props": {
+ "subject": "CN=KeyVaultTest",
+ "ekus": [],
+ "key_usage": [],
+ "validity_months": 297
+ },
+ "lifetime_actions": [
+ {
+ "trigger": {
+ "lifetime_percentage": 80
+ },
+ "action": {
+ "action_type": "EmailContacts"
+ }
+ }
+ ],
+ "issuer": {
+ "name": "Unknown"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1493938289,
+ "updated": 1493938291
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateContacts-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateContacts-example.json
new file mode 100644
index 000000000000..0f98fa5a9b94
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateContacts-example.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/contacts",
+ "contacts": [
+ {
+ "email": "admin@contoso.com",
+ "name": "John Doe",
+ "phone": "1111111111"
+ },
+ {
+ "email": "admin@contoso2.com",
+ "name": "Johnathan Doeman",
+ "phone": "2222222222"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateIssuer-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateIssuer-example.json
new file mode 100644
index 000000000000..363cf914e85e
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateIssuer-example.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "issuer-name": "issuer01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01",
+ "provider": "Test",
+ "credentials": {
+ "account_id": "keyvaultuser"
+ },
+ "org_details": {
+ "admin_details": [
+ {
+ "first_name": "John",
+ "last_name": "Doe",
+ "email": "admin@microsoft.com",
+ "phone": "4255555555"
+ }
+ ]
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1482188806,
+ "updated": 1482189526
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateIssuers-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateIssuers-example.json
new file mode 100644
index 000000000000..b44537050a63
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateIssuers-example.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01",
+ "provider": "Test"
+ },
+ {
+ "id": "https://myvault.vault.azure.net/certificates/issuers/issuer02",
+ "provider": "Test"
+ },
+ {
+ "id": "https://myvault.vault.azure.net/certificates/issuers/issuer03",
+ "provider": "Test"
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateOperation-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateOperation-example.json
new file mode 100644
index 000000000000..4b8cbed06bd7
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateOperation-example.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "selfSignedCert01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/selfSignedCert01/pending",
+ "issuer": {
+ "name": "Self"
+ },
+ "csr": "MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqe8aINnShK+wQC8QU7fwsviQc9+yiOnqU3adXA6qNjn21HTdRBa7cyQIk1STxHIBLTT/GaEJwqsUi6UvZaPEHokOWsr1bP9M7xOPTicBcRyMrr6bOxsmGczYtu1z2TzzXDD7q7IEignE7/LowGEaIADCIU9iuWk7TiJ+1Q/VLh/B3xPsgVjY+n7zEQ53gBiDHSl7XfELfwmslOQ28TVNogUyXsxHcVxQQYJeI7HqqY448LeleK69Ld86lkBixLEm1pD7HSbEx3WI2lyUQAGR6hD3YFaiIWVpQeEyI7p1jmtQlnfZdEL4q9wdlEEcwd3h3PAZpEBhCixahF54fci3pwIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACiLeghirF+yCuYGVUPDB3wKQJn2iLY1za9ncxCehIVqOkFK09AphzoxF6Yid90AKCaa/dT/Ohm7oTyVQ+YcZnT00LUNFVG48AOE8YDiw9tjAG9OORsAz80xnv2qaLw2TCVIQ6NjrI83LqAm1GJ8rAnpdD/ZTuWM7TvSO5g/jm/Q0oSuKpMgj3YxpwgB9Ac6YEfVzOnm76OkUcpvR5MS4BoTfRv4thdSnU+uwqxM+HtdSVTbHQeC2U/hM1cyzDMpl1rZRklmiEOoPUeDasEIBVTJhAxR8xAeKJJD7Wzj4mJPw4UMvF8zQZzW8EKYvB1hkVYY+HQ85L+XcXd8lco7hU4=",
+ "cancellation_requested": false,
+ "status": "inProgress",
+ "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.",
+ "request_id": "6faacd568ab049a2803861e8dd3ae21f"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificatePolicy-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificatePolicy-example.json
new file mode 100644
index 000000000000..e2fcca362501
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificatePolicy-example.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "updateCert01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/updateCert01/policy",
+ "key_props": {
+ "exportable": true,
+ "kty": "RSA",
+ "key_size": 2048,
+ "reuse_key": false
+ },
+ "secret_props": {
+ "contentType": "application/x-pkcs12"
+ },
+ "x509_props": {
+ "subject": "CN=KeyVaultTest",
+ "ekus": [],
+ "key_usage": [],
+ "validity_months": 297
+ },
+ "lifetime_actions": [
+ {
+ "trigger": {
+ "lifetime_percentage": 80
+ },
+ "action": {
+ "action_type": "EmailContacts"
+ }
+ }
+ ],
+ "issuer": {
+ "name": "Unknown"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1482188947,
+ "updated": 1482188947
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateVersions-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateVersions-example.json
new file mode 100644
index 000000000000..ebe62bd98b65
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificateVersions-example.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "listVersionsCert01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "https://myvault.vault.azure.net/certificates/listVersionsCert01/002ade539442463aba45c0efb42e3e84",
+ "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo",
+ "attributes": {
+ "enabled": true,
+ "nbf": 1430344421,
+ "exp": 2208988799,
+ "created": 1482189534,
+ "updated": 1482189534
+ }
+ },
+ {
+ "id": "https://myvault.vault.azure.net/certificates/listVersionsCert01/7fcb3e9eb8bf43f3a6ff4b9c3740801d",
+ "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo",
+ "attributes": {
+ "enabled": true,
+ "nbf": 1430344421,
+ "exp": 2208988799,
+ "created": 1482189532,
+ "updated": 1482189532
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificates-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificates-example.json
new file mode 100644
index 000000000000..c0d986517b8b
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetCertificates-example.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "https://myvault.vault.azure.net/certificates/listCert01",
+ "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo",
+ "attributes": {
+ "enabled": true,
+ "nbf": 1430344421,
+ "exp": 2208988799,
+ "created": 1482188987,
+ "updated": 1482188987
+ }
+ },
+ {
+ "id": "https://myvault.vault.azure.net/certificates/listCert02",
+ "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo",
+ "attributes": {
+ "enabled": true,
+ "nbf": 1430344421,
+ "exp": 2208988799,
+ "created": 1482188988,
+ "updated": 1482188988
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedCertificate-example.json
new file mode 100644
index 000000000000..909f89588630
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedCertificate-example.json
@@ -0,0 +1,66 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "getDeletedCert",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "recoveryId": "https://myvault.vault.azure.net/deletedcertificates/getDeletedCert",
+ "deletedDate": 1493938292,
+ "scheduledPurgeDate": 1501714292,
+ "id": "https://myvault.vault.azure.net/certificates/getDeletedCert/f60f2a4f8ae442cfb41ca2090bd4b769",
+ "kid": "https://myvault.vault.azure.net/keys/getDeletedCert/f60f2a4f8ae442cfb41ca2090bd4b769",
+ "sid": "https://myvault.vault.azure.net/secrets/getDeletedCert/f60f2a4f8ae442cfb41ca2090bd4b769",
+ "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo",
+ "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=",
+ "attributes": {
+ "enabled": true,
+ "nbf": 1430344421,
+ "exp": 2208988799,
+ "created": 1493938289,
+ "updated": 1493938291,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "policy": {
+ "id": "https://myvault.vault.azure.net/certificates/getDeletedCert/policy",
+ "key_props": {
+ "exportable": true,
+ "kty": "RSA",
+ "key_size": 2048,
+ "reuse_key": false
+ },
+ "secret_props": {
+ "contentType": "application/x-pkcs12"
+ },
+ "x509_props": {
+ "subject": "CN=KeyVaultTest",
+ "ekus": [],
+ "key_usage": [],
+ "validity_months": 297
+ },
+ "lifetime_actions": [
+ {
+ "trigger": {
+ "lifetime_percentage": 80
+ },
+ "action": {
+ "action_type": "EmailContacts"
+ }
+ }
+ ],
+ "issuer": {
+ "name": "Unknown"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1493938289,
+ "updated": 1493938291
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedCertificates-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedCertificates-example.json
new file mode 100644
index 000000000000..f0ebb81be12e
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedCertificates-example.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "api-version": "7.1",
+ "maxresults": 1
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "recoveryId": "https://myvault.vault.azure.net/deletedcertificates/listdeletedcerttest0",
+ "deletedDate": 1493937659,
+ "scheduledPurgeDate": 1501713659,
+ "id": "https://myvault.vault.azure.net/certificates/listdeletedcerttest0",
+ "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo",
+ "attributes": {
+ "enabled": true,
+ "nbf": 1430344421,
+ "exp": 2208988799,
+ "created": 1493937658,
+ "updated": 1493937658,
+ "recoveryLevel": "Recoverable+Purgeable"
+ }
+ }
+ ],
+ "nextLink": "https://myvault.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTIhTURBd01ETTVJV05sY25ScFptbGpZWFJsTDB4SlUxUkVSVXhGVkVWRVEwVlNWRlJGVTFRd0wxQlBURWxEV1NFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ&maxresults=1"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedKey-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedKey-example.json
new file mode 100644
index 000000000000..5cbd4e7d9fc4
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedKey-example.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "CreateSoftKeyTest",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "recoveryId": "https://myvault.vault.azure.net/deletedkeys/CreateSoftKeyTest",
+ "deletedDate": 1493942452,
+ "scheduledPurgeDate": 1501718452,
+ "key": {
+ "kid": "https://myvault.vault.azure.net/keys/CreateSoftKeyTest/78deebed173b48e48f55abf87ed4cf71",
+ "kty": "RSA",
+ "key_ops": [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "wrapKey",
+ "unwrapKey"
+ ],
+ "n": "2HJAE5fU3Cw2Rt9hEuq-F6XjINKGa-zskfISVqopqUy60GOs2eyhxbWbJBeUXNor_gf-tXtNeuqeBgitLeVa640UDvnEjYTKWjCniTxZRaU7ewY8BfTSk-7KxoDdLsPSpX_MX4rwlAx-_1UGk5t4sQgTbm9T6Fm2oqFd37dsz5-Gj27UP2GTAShfJPFD7MqU_zIgOI0pfqsbNL5xTQVM29K6rX4jSPtylZV3uWJtkoQIQnrIHhk1d0SC0KwlBV3V7R_LVYjiXLyIXsFzSNYgQ68ZjAwt8iL7I8Osa-ehQLM13DVvLASaf7Jnu3sC3CWl3Gyirgded6cfMmswJzY87w",
+ "e": "AQAB"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1493942451,
+ "updated": 1493942451,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "purpose": "unit test",
+ "test name ": "CreateGetDeleteKeyTest"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedKeys-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedKeys-example.json
new file mode 100644
index 000000000000..24bea234cf78
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedKeys-example.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "api-version": "7.1",
+ "maxresults": 1,
+ "$skiptoken": "eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJeklXdGxlUzlNU1ZOVVJFVk1SVlJGUkV0RldWUkZVMVF3SVRBd01EQXlPQ0V5TURFM0xUQTFMVEEwVkRJeU9qRTJPakF5TGpnM09URXpOemxhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "recoveryId": "https://myvault.vault.azure.net/deletedkeys/listdeletedkeytest0",
+ "deletedDate": 1493938031,
+ "scheduledPurgeDate": 1501714031,
+ "kid": "https://myvault.vault.azure.net/keys/listdeletedkeytest0",
+ "attributes": {
+ "enabled": true,
+ "created": 1493938031,
+ "updated": 1493938031,
+ "recoveryLevel": "Recoverable+Purgeable"
+ }
+ }
+ ],
+ "nextLink": "https://myvault.vault.azure.net:443/deletedkeys?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzYhTURBd01EVTJJV3RsZVM5TVNWTlVSRVZNUlZSRlJFdEZXVlJGVTFRd0x6RkRRa0ZGTkVaQk5qQTBNelJGTmtZNE9FUXdORE5GTkRFM09FUkNPVFE1SVRBd01EQXlPQ0V5TURFM0xUQTFMVEEwVkRJeU9qUTNPakU1TGpVeU1UZ3dPVEZhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ&maxresults=1"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedSecret-example.json
new file mode 100644
index 000000000000..c93d78374f4b
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedSecret-example.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "secret-name": "GetDeletedSecretTest",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "recoveryId": "https://myvault.vault.azure.net/deletedsecrets/GetDeletedSecretTest",
+ "deletedDate": 1493938433,
+ "scheduledPurgeDate": 1501714433,
+ "id": "https://myvault.vault.azure.net/secrets/GetDeletedSecretTest/b595353d9c39413d80626575b3b5d865",
+ "attributes": {
+ "enabled": true,
+ "created": 1493938433,
+ "updated": 1493938433,
+ "recoveryLevel": "Recoverable+Purgeable"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedSecrets-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedSecrets-example.json
new file mode 100644
index 000000000000..10a53fd73fdf
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetDeletedSecrets-example.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "api-version": "7.1",
+ "maxresults": 1,
+ "$skiptoken": "eyJOZXh0TWFya2VyIjoiMiExMDAhTURBd01ESTVJWE5sWTNKbGRDOU1TVk5VUkVWTVJWUkZSRk5GUTFKRlZGUkZVMVF3SVRBd01EQXlPQ0V5TURFM0xUQTFMVEEwVkRFNU9qSTFPakU0TGpJNE5qUXdORFZhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "recoveryId": "https://myvault.vault.azure.net/deletedsecrets/listdeletedsecrettest0",
+ "deletedDate": 1493937855,
+ "scheduledPurgeDate": 1501713855,
+ "contentType": "plainText",
+ "id": "https://myvault.vault.azure.net/secrets/listdeletedsecrettest0",
+ "attributes": {
+ "enabled": true,
+ "created": 1493937855,
+ "updated": 1493937855,
+ "recoveryLevel": "Recoverable+Purgeable"
+ }
+ }
+ ],
+ "nextLink": "https://myvault.vault.azure.net:443/deletedsecrets?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNDQhTURBd01EWXlJWE5sWTNKbGRDOU1TVk5VUkVWTVJWUkZSRk5GUTFKRlZGUkZVMVF3THpZMU16ZERSRVJGTlRJNU5qUkRSa1pDTVRkQ1JVWXhORGszUXpSQ1JEZEVJVEF3TURBeU9DRXlNREUzTFRBMUxUQTBWREl5T2pRME9qUXdMamsxTnpZeE1UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetKey-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetKey-example.json
new file mode 100644
index 000000000000..8f70bb84f953
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetKey-example.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "CreateSoftKeyTest",
+ "key-version": "78deebed173b48e48f55abf87ed4cf71",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "key": {
+ "kid": "https://myvault.vault.azure.net/keys/CreateSoftKeyTest/78deebed173b48e48f55abf87ed4cf71",
+ "kty": "RSA",
+ "key_ops": [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "wrapKey",
+ "unwrapKey"
+ ],
+ "n": "2HJAE5fU3Cw2Rt9hEuq-F6XjINKGa-zskfISVqopqUy60GOs2eyhxbWbJBeUXNor_gf-tXtNeuqeBgitLeVa640UDvnEjYTKWjCniTxZRaU7ewY8BfTSk-7KxoDdLsPSpX_MX4rwlAx-_1UGk5t4sQgTbm9T6Fm2oqFd37dsz5-Gj27UP2GTAShfJPFD7MqU_zIgOI0pfqsbNL5xTQVM29K6rX4jSPtylZV3uWJtkoQIQnrIHhk1d0SC0KwlBV3V7R_LVYjiXLyIXsFzSNYgQ68ZjAwt8iL7I8Osa-ehQLM13DVvLASaf7Jnu3sC3CWl3Gyirgded6cfMmswJzY87w",
+ "e": "AQAB"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1493942451,
+ "updated": 1493942451,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "purpose": "unit test",
+ "test name ": "CreateGetDeleteKeyTest"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetKeyVersions-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetKeyVersions-example.json
new file mode 100644
index 000000000000..afdb4e5c8275
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetKeyVersions-example.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "listkeyversionstest",
+ "api-version": "7.1",
+ "maxresults": 1,
+ "$skiptoken": "eyJOZXh0TWFya2VyIjoiMiExMzYhTURBd01EVTJJV3RsZVM5TVNWTlVTMFZaVmtWU1UwbFBUbE5VUlZOVUx6ZERPVVJETmpjM05VUXdSVFF4TnpjNE1qZERORVk1T0VZME9ESkdRekV5SVRBd01EQXlPQ0U1T1RrNUxURXlMVE14VkRJek9qVTVPalU1TGprNU9UazVPVGxhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "kid": "https://myvault.vault.azure.net/keys/listkeyversionstest/7c9dc6775d0e4177827c4f98f482fc12",
+ "attributes": {
+ "enabled": true,
+ "created": 1493937851,
+ "updated": 1493937851,
+ "recoveryLevel": "Recoverable+Purgeable"
+ }
+ }
+ ],
+ "nextLink": "https://myvault.vault.azure.net:443/keys/listkeyversionstest/versions?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzYhTURBd01EVTJJV3RsZVM5TVNWTlVTMFZaVmtWU1UwbFBUbE5VUlZOVUwwRXdPRUZDUVVVNE1UZ3pNalF5TVRsQ05EUXpPREZFTWpoRVJURkdSVEJESVRBd01EQXlPQ0U1T1RrNUxURXlMVE14VkRJek9qVTVPalU1TGprNU9UazVPVGxhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ&maxresults=1"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetKeys-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetKeys-example.json
new file mode 100644
index 000000000000..4189e910d05b
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetKeys-example.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "api-version": "7.1",
+ "maxresults": 1,
+ "$skiptoken": "eyJOZXh0TWFya2VyIjoiMiE4MCFNREF3TURFMElXdGxlUzlUUkV0VVJWTlVTMFZaSVRBd01EQXlPQ0V5TURFM0xUQXlMVEUzVkRBd09qQXhPakEyTGpnd056azBOemhhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "kid": "https://myvault.vault.azure.net/keys/sdktestkey",
+ "attributes": {
+ "enabled": true,
+ "created": 1493937656,
+ "updated": 1493937656,
+ "recoveryLevel": "Recoverable+Purgeable"
+ }
+ }
+ ],
+ "nextLink": "https://myvault.vault.azure.net:443/keys?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5NiFNREF3TURJM0lXdGxlUzlWVUVSQlZFVkxSVmxCVkZSU1NVSlZWRVZUVkVWVFZDRXdNREF3TWpnaE1qQXhOeTB3TlMwd05GUXdNVG94TVRveE5pNDNNekE0TnpReVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=1"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetSecret-example.json
new file mode 100644
index 000000000000..3675d1e64a67
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetSecret-example.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "secret-name": "mysecretname",
+ "secret-version": "4387e9f3d6e14c459867679a90fd0f79",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": "mysecretvalue",
+ "id": "https://myvault.vault.azure.net/secrets/mysecretname/4387e9f3d6e14c459867679a90fd0f79",
+ "attributes": {
+ "enabled": true,
+ "created": 1493938410,
+ "updated": 1493938410,
+ "recoveryLevel": "Recoverable+Purgeable"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetSecretVersions-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetSecretVersions-example.json
new file mode 100644
index 000000000000..9fb168cedf05
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetSecretVersions-example.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "secret-name": "listsecretversionstest",
+ "api-version": "7.1",
+ "maxresults": 1
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "https://myvault.vault.azure.net/secrets/listsecretversionstest/11a536561da34d6b8b452d880df58f3a",
+ "attributes": {
+ "enabled": true,
+ "created": 1481851699,
+ "updated": 1481851699
+ }
+ }
+ ],
+ "nextLink": "https://myvault.vault.azure.net:443/secrets/listsecretversionstest/versions?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNDQhTURBd01EWXlJWE5sWTNKbGRDOU1TVk5VVTBWRFVrVlVWa1ZTVTBsUFRsTlVSVk5VTHpGRU5EazJNa0l4UlVRM09EUkVRa1k0T1RsR016TXpNa1UwTnpZNFFqY3dJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetSecrets-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetSecrets-example.json
new file mode 100644
index 000000000000..f8bc86ffb466
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/GetSecrets-example.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "api-version": "7.1",
+ "maxresults": 1
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "contentType": "plainText",
+ "id": "https://myvault.vault.azure.net/secrets/listsecrettest0",
+ "attributes": {
+ "enabled": true,
+ "created": 1482189047,
+ "updated": 1482189047
+ }
+ }
+ ],
+ "nextLink": "https://myvault.vault.azure.net:443/secrets?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE4OCFNREF3TURJeUlYTmxZM0psZEM5TVNWTlVVMFZEVWtWVVZFVlRWREVoTURBd01ESTRJVEl3TVRZdE1USXRNVGxVTWpNNk1UQTZORFV1T0RneE9ERXhNRm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/ImportCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/ImportCertificate-example.json
new file mode 100644
index 000000000000..e77624d6aff9
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/ImportCertificate-example.json
@@ -0,0 +1,77 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "importCert01",
+ "api-version": "7.1",
+ "parameters": {
+ "value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ",
+ "pwd": "123",
+ "policy": {
+ "key_props": {
+ "exportable": true,
+ "kty": "RSA",
+ "key_size": 2048,
+ "reuse_key": false
+ },
+ "secret_props": {
+ "contentType": "application/x-pkcs12"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/importCert01/f00e72f0ddee4dddadc27c0f605d84d7",
+ "kid": "https://myvault.vault.azure.net/keys/importCert01/f00e72f0ddee4dddadc27c0f605d84d7",
+ "sid": "https://myvault.vault.azure.net/secrets/importCert01/f00e72f0ddee4dddadc27c0f605d84d7",
+ "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo",
+ "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=",
+ "attributes": {
+ "enabled": true,
+ "nbf": 1430344421,
+ "exp": 2208988799,
+ "created": 1493938557,
+ "updated": 1493938557,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "policy": {
+ "id": "https://myvault.vault.azure.net/certificates/importCert01/policy",
+ "key_props": {
+ "exportable": true,
+ "kty": "RSA",
+ "key_size": 2048,
+ "reuse_key": false
+ },
+ "secret_props": {
+ "contentType": "application/x-pkcs12"
+ },
+ "x509_props": {
+ "subject": "CN=KeyVaultTest",
+ "ekus": [],
+ "key_usage": [],
+ "validity_months": 297
+ },
+ "lifetime_actions": [
+ {
+ "trigger": {
+ "lifetime_percentage": 80
+ },
+ "action": {
+ "action_type": "EmailContacts"
+ }
+ }
+ ],
+ "issuer": {
+ "name": "Unknown"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1493938557,
+ "updated": 1493938557
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/ImportKey-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/ImportKey-example.json
new file mode 100644
index 000000000000..030fdb4f47a7
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/ImportKey-example.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "ImportSoftKeyTest",
+ "api-version": "7.1",
+ "parameters": {
+ "key": {
+ "kty": "RSA",
+ "n": "nKAwarTrOpzd1hhH4cQNdVTgRF-b0ubPD8ZNVf0UXjb62QuAk3Dn68ESThcF7SoDYRx2QVcfoMC9WCcuQUQDieJF-lvJTSer1TwH72NBovwKlHvrXqEI0a6_uVYY5n-soGt7qFZNbwQLdWWA6PrbqTLIkv6r01dcuhTiQQAn6OWEa0JbFvWfF1kILQIaSBBBaaQ4R7hZs7-VQTHGD7J1xGteof4gw2VTiwNdcE8p5UG5b6S9KQwAeET4yB4KFPwQ3TDdzxJQ89mwYVi_sgAIggN54hTq4oEKYJHBOMtFGIN0_HQ60ZSUnpOi87xNC-8VFqnv4rfTQ7nkK6XMvjMVfw",
+ "e": "AQAB",
+ "d": "GeT1_D5LAZa7qlC7WZ0DKJnOth8kcPrN0urTEFtWCbmHQWkAad_px_VUpGp0BWDDzENbXbQcu4QCCdf4crve5eXt8dVI86OSah-RpEdBq8OFsETIhg2Tmq8MbYTJexoynRcIC62xAaCmkFMmu931gQSvWnYWTEuOPgmD2oE_F-bP9TFlGRc69a6MSbtcSRyFTsd5KsUr40QS4zf2W4kZCOWejyLuxk88SXgUqcJx86Ulc1Ol1KkTBLadvReAZCyCMwKBlNRGw46BU_iK0vK7rTD9fmEd639Gjti6eLpnyQYpnVe8uGgwVU1fHBkAKyapWoEG6VMhMntcrvgukKLIsQ",
+ "dp": "ZGnmWx-Nca71z9a9vvT4g02iv3S-3kSgmhl8JST09YQwK8tfiK7nXnNMtXJi2K4dLKKnLicGtCzB6W3mXdLcP2SUOWDOeStoBt8HEBT4MrI1psCKqnBum78WkHju90rBFj99amkP6UeQy5EASAzgmKQu2nUaUnRV0lYP8LHMCkE",
+ "dq": "dtpke0foFs04hPS6XYLA5lc7-1MAHfZKN4CkMAofwDqPmRQzCxpDJUk0gMWGJEdU_Lqfbg22Py44cci0dczH36NW3UU5BL86T2_SPPDOuyX7kDscrIJCdowxQCGJHGRBEozM_uTL46wu6UnUIv7m7cuGgodJyZBcdwpo6ziFink",
+ "qi": "Y9KD5GaHkAYmAqpOfAQUMr71QuAAaBb0APzMuUvoEYw39PD3_vJeh9HZ15QmJ8zCX10-nlzUB-bWwvK-rGcJXbK4pArilr5MiaYv7e8h5eW2zs2_itDJ6Oebi-wVbMhg7DvUTBbkCvPhhIedE4UlDQmMYP7RhzVVs7SfmkGs_DQ",
+ "p": "v1jeCPnuJQM2PW2690Q9KJk0Ulok8VFGjkcHUHVi3orKdy7y_TCIWM6ZGvgFzI6abinzYbTEPKV4wFdMAwvOWmawXj5YrsoeB44_HXJ0ak_5_iP6XXR8MLGXbd0ZqsxvAZyzMj9vyle7EN2cBod6aenI2QZoRDucPvjPwZsZotk",
+ "q": "0Yv-Dj6qnvx_LL70lUnKA6MgHE_bUC4drl5ZNDDsUdUUYfxIK4G1rGU45kHGtp-Qg-Uyf9s52ywLylhcVE3jfbjOgEozlSwKyhqfXkLpMLWHqOKj9fcfYd4PWKPOgpzWsqjA6fJbBUMYo0CU2G9cWCtVodO7sBJVSIZunWrAlBc"
+ },
+ "tags": {
+ "purpose": "unit test"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "key": {
+ "kid": "https://myvault.vault.azure.net/keys/ImportSoftKeyTest/2eb4a15d74184c6f84159c3ca90f0f4b",
+ "kty": "RSA",
+ "key_ops": [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "wrapKey",
+ "unwrapKey"
+ ],
+ "n": "nKAwarTrOpzd1hhH4cQNdVTgRF-b0ubPD8ZNVf0UXjb62QuAk3Dn68ESThcF7SoDYRx2QVcfoMC9WCcuQUQDieJF-lvJTSer1TwH72NBovwKlHvrXqEI0a6_uVYY5n-soGt7qFZNbwQLdWWA6PrbqTLIkv6r01dcuhTiQQAn6OWEa0JbFvWfF1kILQIaSBBBaaQ4R7hZs7-VQTHGD7J1xGteof4gw2VTiwNdcE8p5UG5b6S9KQwAeET4yB4KFPwQ3TDdzxJQ89mwYVi_sgAIggN54hTq4oEKYJHBOMtFGIN0_HQ60ZSUnpOi87xNC-8VFqnv4rfTQ7nkK6XMvjMVfw",
+ "e": "AQAB"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1493942691,
+ "updated": 1493942691,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "purpose": "unit test"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/MergeCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/MergeCertificate-example.json
new file mode 100644
index 000000000000..04e23e7ecee9
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/MergeCertificate-example.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "testcert",
+ "api-version": "7.1",
+ "parameters": {
+ "x5c": [
+ "MIICxTCCAb....trimmed for brevitiy...EPAQj8="
+ ]
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/mycert1/f366e1a9dd774288ad84a45a5f620352",
+ "kid": "https:// mykeyvault.vault.azure.net/keys/mycert1/f366e1a9dd774288ad84a45a5f620352",
+ "sid": " mykeyvault.vault.azure.net/secrets/mycert1/f366e1a9dd774288ad84a45a5f620352",
+ "cer": "……de34534……",
+ "x5t": "n14q2wbvyXr71Pcb58NivuiwJKk",
+ "attributes": {
+ "enabled": true,
+ "exp": 1530394215,
+ "nbf": 1435699215,
+ "created": 1435699919,
+ "updated": 1435699919
+ },
+ "policy": {
+ "id": "https:// mykeyvault.vault.azure.net/certificates/mycert1/policy",
+ "key_props": {
+ "exportable": false,
+ "kty": "RSA",
+ "key_size": 2048,
+ "reuse_key": false
+ },
+ "secret_props": {
+ "contentType": "application/x-pkcs12"
+ },
+ "x509_props": {
+ "subject": "CN=Mycert1",
+ "ekus": [
+ "1.3.6.1.5.5.7.3.1",
+ "1.3.6.1.5.5.7.3.2"
+ ],
+ "validity_months": 12
+ },
+ "lifetime_actions": [
+ {
+ "trigger": {
+ "lifetime_percentage": 80
+ },
+ "action": {
+ "action_type": "EmailContacts"
+ }
+ }
+ ],
+ "issuer": {
+ "name": "Unknown"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1435699811,
+ "updated": 1435699811
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/PurgeDeletedCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/PurgeDeletedCertificate-example.json
new file mode 100644
index 000000000000..ff246883d75b
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/PurgeDeletedCertificate-example.json
@@ -0,0 +1,10 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "deletedcertificates",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/PurgeDeletedKey-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/PurgeDeletedKey-example.json
new file mode 100644
index 000000000000..7042f4a44162
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/PurgeDeletedKey-example.json
@@ -0,0 +1,10 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "testdeletedkey",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/PurgeDeletedSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/PurgeDeletedSecret-example.json
new file mode 100644
index 000000000000..b8b83b5497a0
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/PurgeDeletedSecret-example.json
@@ -0,0 +1,10 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "secret-name": "testsecret",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RecoverDeletedCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RecoverDeletedCertificate-example.json
new file mode 100644
index 000000000000..19e8edc4e6a9
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RecoverDeletedCertificate-example.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "CertCreateDeleteRecoverPurgeTest",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/CertCreateDeleteRecoverPurgeTest/9ff2572a2c3145679057da8b7f6a4b1d",
+ "kid": "https://myvault.vault.azure.net/keys/CertCreateDeleteRecoverPurgeTest/9ff2572a2c3145679057da8b7f6a4b1d",
+ "sid": "https://myvault.vault.azure.net/secrets/CertCreateDeleteRecoverPurgeTest/9ff2572a2c3145679057da8b7f6a4b1d",
+ "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo",
+ "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=",
+ "attributes": {
+ "enabled": true,
+ "nbf": 1430344421,
+ "exp": 2208988799,
+ "created": 1493938486,
+ "updated": 1493938486,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "policy": {
+ "id": "https://myvault.vault.azure.net/certificates/CertCreateDeleteRecoverPurgeTest/policy",
+ "key_props": {
+ "exportable": true,
+ "kty": "RSA",
+ "key_size": 2048,
+ "reuse_key": false
+ },
+ "secret_props": {
+ "contentType": "application/x-pkcs12"
+ },
+ "x509_props": {
+ "subject": "CN=KeyVaultTest",
+ "ekus": [],
+ "key_usage": [],
+ "validity_months": 297
+ },
+ "lifetime_actions": [
+ {
+ "trigger": {
+ "lifetime_percentage": 80
+ },
+ "action": {
+ "action_type": "EmailContacts"
+ }
+ }
+ ],
+ "issuer": {
+ "name": "Unknown"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1493938486,
+ "updated": 1493938486
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RecoverDeletedKey-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RecoverDeletedKey-example.json
new file mode 100644
index 000000000000..4a9bfd6770c9
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RecoverDeletedKey-example.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "CreateDeleteRecoverPurgeTest",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "key": {
+ "kid": "https://myvault.vault.azure.net/keys/CreateDeleteRecoverPurgeTest/6fc2be54c6be4a7ea7bbb8a2a99a1996",
+ "kty": "RSA",
+ "key_ops": [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "wrapKey",
+ "unwrapKey"
+ ],
+ "n": "v-SWMCmPNKoK_rB_pNXUl6Iwh9Kqd3XzQlh6SXi_slBishqP7pyKEFjNbUvMSlyvPt21rJupLbJr-yhsK2Rq2V6O0doGuCsoadgNGih1aVAuUJAJls1-b-G1IJjD18ArM4RitnCvJmQFqyK2RVHa3EpEfaQW4gcRrsRAhiJDjc1L1S3skdt-E_rZfL7DIh1ZtqFyQAqIWSAG0BXDdbgfEx1kJKqH-HRokDKeMCIaJtKZof6e-DJr3e9Iy8aAR7V-BsZ7vY7JMjyeEukMzEji4MEsIyOESL67DgFllDEi4OM_3WKyxr6uXxzHDzmppWsk2ykLsYA_ALLnR3ZNZCuL9Q",
+ "e": "AQAB"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1493938342,
+ "updated": 1493938342,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "purpose": "unit test",
+ "test name ": "CreateDeleteRecoverPurgeTest"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RecoverDeletedSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RecoverDeletedSecret-example.json
new file mode 100644
index 000000000000..48bbbd51dbbc
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RecoverDeletedSecret-example.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "secret-name": "SecretCreateDeleteRecoverPurgeTest",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/secrets/SecretCreateDeleteRecoverPurgeTest/16f5f7feb7004280b7f3b8ac50cd01f9",
+ "attributes": {
+ "enabled": true,
+ "created": 1493937960,
+ "updated": 1493937960,
+ "recoveryLevel": "Recoverable+Purgeable"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RestoreCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RestoreCertificate-example.json
new file mode 100644
index 000000000000..37af30bf7030
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RestoreCertificate-example.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "parameters": {
+ "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLm85bmpNWEFSZWVla2NaRXBsVTNjdUxQcVZlWmxFbGRDM01XOWpYR0h6bnBXRTdHRGVOSXJraGZscHdTWXFnQnBYQkozMFpUQkRpRmpROENXSnJfUGlsUWNDRkZyN0xrdWJhWUs0TW1zcVh5WGIzbkRJcUJkQmZIUVNpZ1ZET0J5Ym9sUlRNNDYzYjBTbXhLVzJheEdFS2NuZzQ5WFkycG1SR0Vrb0plcHJWZ0tyRkpOUGQ3cGJIS3hQSWdDOFlnT2xudnZxR280RlRDSzh0ZWotcUt2UzBfRGV6Uk5vdTZqZ25SekpxX0g2NGxWMk1hQ0NnUy0xbTlyOGVOTVVvSlhTV1hwc0lneng1RzdEbzIya1ZEY25vMW9rajlCMXNvbklkWmtuY1JybDJBVHNRZVlzZXdkUVd1VmhxRzVLN0pNQWo5YzBRdkxhTmlpdl9PY2pFcm5qUS4zbmI4azJ3SEcyNHFJelNNb184WG13LnJzc3NMNjJ1aUNfTm9IbG5zQlgzcEEtck1uY3g5R3V2NmJYSHpKamxwOWNMUnVaSDBSWlJYVXRwU3BPQWdyZ20tU3BxeEdWSjd2bmprbV9FSzJwYy1sZHNjUWtRSDB4bVFVcGZFNzN5b1VTYTNXVVNMS2VIVnJLdUg5MUtJR0tLODE5ejc5d1Y5Y0F3UjlzcHJxbFFWZnlKdlNFM2tnZTh1RVBpRFFVMFl5WnJqVjBsMGJCU3VkeTN1MVlsVHB6Wk1EWmpUcE05ZGtMclgtaGdxZ1FGa2xFa1hNRWlzd0RDZVM3Y3J2bFg1bnVzbWh5SkZCMklCd3dxNWJieHptV1diU3JOc3lFMmJmWEpXOWN4TFlQcnJJZFpfbkd0X29RSGVQcUFZTS1iVnpTdzdBRGJjMU15NTZwclBGLW9PSm40MHptOTBaaFBTVGMyQXNKRGFBa3R5WFU4WktOYUhFVUlHLWI1SGhUdFBuZ20wN0FrWEtQNngwaDhzZ3ZIaGdCeGpfdWRfQVpQc3pLWG1HdUhFTW9lRGhpT3NkQVdRR0pwR2t0NHVlbmZyamNSeXVlaXJiTC1RV3o4MEtZUnk1QklxbzVJc19RVHpWN2dqMGstYS0td24tazNsNTJ4YjhaNkRXd2tWZ3hqUlNXOXZnV0pVd2U5M1ZrVWtHM3NLRW5SOE9ueTNjWlhQVl9LbWtBTEdlR0ZzQm53SmQwY3dueTBCN2I5VWQyQ19kWEZ0N1BvbnFVNldfT016cC1Nb1NtRzRHbEFpUkVfQ3FrWlhkalhIMVItSmpObUNfdXlPUTdaN1BVaDAtNmd2YUxpcE1CamlWR1FwdzlEZDhmVmtCbWk4VW5uOUxPYXJmSXVtcEJyUE43TTJhM05KdjN6b0NkanhZVFVUMTN1aElpYWl3aExoUFZhT2pUbFRmTkpqbHhIbG5lbGJ1RWJsZTk0bVV1bW8wcjhKRlFMSDdfRjhXMVo0OC1BcjhYYXJwMXhIY0FReHk1WWYwclktdUU1dTAyRnRHUHlPZ0JfNV9WdFlNR2VfRE1mdENLOGVMZGFnVllMRDJDNDUxTldZeVVfeHdNUWdQbXBaMWFnSEdCb2s0ejhsSFBndVhCQ3R2WFFuTHBXQTVBamdOLWNoWjNwUGJmc2RkNjBhekJuWDVaVXQza2hYaWNDdWk4b0xidEtzQUdmckNOZzFwT2Q0MHBHMEJlVy1lNVE1WWQydjY4eFh5a2RiTXhFblFCM3Fzd1djVlh1QXBIR18wREZVVmZvSlc2aVBZcDNWVE51amM5M3QtMDcxWnlZbUZ4V0RfVThMYTAtM19RLV8yZ0pwMVBaVV8tMVBRM1huLXdSWk1vb3JkZGZQa1VPZ0lqdWkwa1IwZWt5RjZvdWdLNnJrSVZHaGp3YUp0ekdKczJLdGxncnRCcEs2MXZEaE5zbFR5VHU5OUp2T2RFTXhwRG5lTEg4NnlvVnhxT3lIT3lxNjByXzdpTHgtdy03Q3FzWTloT3dmQlBZZ3BQVlM2bm9oZVBocTkwaGJTX0lrM21YbnRkRUNMREtSMi1wWFh6bjlPRjZIN09EdHB4S0VXQkdCaHJ0Ykxmd2JZS3dmWmZSVTJVUHpkLUxFd1lQdDloU203Z3lSODNoYkZiSFNBV1cySncxRWl1c3FURWRsRW1lQ3k2cFp1MVFZWko0TUQ0OG5rVXMwdmVHUVhTU2Ytb2RhQm1fYjZZdVh1cWcyWk03MlZjUTd4ZzV4MmpFenFqcllmdjdTTGJINFZBcWp0aFg5LUdRaWEwWEZaS18xempIenhkd1B0R2lSOHJfMkFFZTgtRXFoNi1FaTZKdjRFZjYyMnRrNWFJUWx3R1pETWpGSVNuUkpRdV8xcnJiY1E3enZsbWhUSWFQcUJNRFVxeHBEOXNWUlhuSHdIaTl1b1BCUTllbWJIMkV5WDV6MEhWRXlDa1JEbUd3cmR2RGdsOFVzMUhURjVwYXlYZmF2WkZUZjl3WFZyQXpsRFBEQkFJVFMzWnVJMEJWR2pJUGV1SnRiako4S1pTczRFQVNRRTVyVjViTUpNQXcwa19nYkVRTEZGSjJVb0ZzcWU1QUszM2xGXzR5cGMxU0JaWjJfUzYtbEQyNkpyRFVJSjFFRmJhbWtoUk12bWJIT1Utc0hDT0lRcHdadlJzV3Q3NExSQ1ZyQ09jMGpUdE5TT1JPUW5XRHVXRlFXSzk1TkRGMG96WjIyLVFEMU9YOE9iU3daaHdOXzNfS1pHRmtVMEhNdzNjSTI5LWUxbFltRDV3cmJ0ZlRFbllOeHJKOGpuUWFBY2FoNy14Q0JKeUQ3elo1MXIzRVVyY2VnazBzc1dLeHRPVjRLcTZENmxuVmU3bFpUT1dfTU5aZi1JSzJUbnZCaVZIMHk0SkVGaUxzSDJHbTM1d28yYlZVaXJsT1ljVEk1NlZhdDhMRWhGaEotVlUyNk84NHo2dUJFZmJucEZLbmdKc3pfYVlucW1zNWV1bmd3ek5ndjdlT0U0cUdKSURyMTRBUXRWdEYxcWdrZHNnVllWVXg4U29SQ0NobE5VUzRNRGxhc1hwS1VmV19ENWIxbDRkbXZiNEZNRHJqakJ6djk5dGJSeGZFYUVOSFlYTHZFZnJ0b0pMeW9na2tmNkxlbVoxVDZRbnRtNlR4S1IycU81WU1vMnRJZHlQNmZNRmkweEYtdE1IaHNSdVN3VEpybW1nREcteHVpZllVNkpfaElSNkMzVmo2VkFMMW1oZy0xeW1pRXZuanVLbElONzc4NmFWdVNpNmx5TjJJNzZqY0R6SHZ0VW1ibkVvWWtORHNPQXdqQk9MNFBlS0VjR1hWcm5YNDJhNW5IRWM2cmZQdjZ0Q2tVSUI0UldIdzEyUTFiNDM2N1JvRS1PTWN3TnV6ampob1M0S1ZJbHo4UEFMOW9YYTR4NXlQeG1aVzZ0UUVna1pKeFhEcS00SWRtd1UzTnpVZUoxdGpNaXFsc0xRWDdlc29fTHRtTWJ3bm83YkI3bjRlVnZ4aUtQU3p3dW94c25aaGs1b3ZSSE1xU0NtZjU2MjJvUTZvWEdmNUJLWExlQWdqaE1Sd21razEtUzlGajlyc1hlT19VYjJOMF9hVEFLemlidXIxNVcxaHI3Wk1PVFlxOFlSSGVPaWxSX3Bkdjl5NTlDRDQ1WmE0ZXFURHVrNmRxZ1d4YnoyVVVtMnpwM3pvTHVKSVZ1Y3FIaUVRTVNfMnFKcy1xQTAwT2FFY3huZTM2Q1RsZVNwZjF5cjh2VjNWNW1mQU5zRnJBa21CMnBRWTNfZ21UbldTYTJ3UWlMa2RFRllPSExTeEk5UVowNHo4ZFRfbW5QMmIwWV96N3ZLa0VGQmFpNU02UFdPWjVIOUx1M3Rnay1fR0g0ODd6ZHpuQm0weWZZY3ZIOHJUd1QyQl9UZVRFMG4xcWFRdDRiQ0diUkFQNE1DTDl0SGlIcmlzWEllejQzZlZ3b1c4R2x4YmxKanlLWkpXbmlRNjlBYks3SmYyUER6d2NVSHhkZU5HNGxEZmt6WmFxU2lybGRzZlhXOHBGLWZ6WFVVWHR4eDF4Um5nQ1hJVkxLbU5ZbV9CNnNrNGo0VzROVFMwQTBOcFhsZGJCWjZWWmFDMDNvRHVGUFY0MGtwdWQ0WEd3Q1l3M244ZjFHb0Z6Sk42QjFqOTRLeTdtNE5YT1JsQ3ZaRW5qZTl6T241T1d1ZG9USWRoRzBobXVDUTZ6TXI2YkVaTUFoV1ZFdlREY19iXzZsOWdLWmVxNmVtekxvcmptOEQzLXcyLXRBYlE2Tmpjd0J3eEhMZzlCRllRRFdvaU9UVmJKN2VBcUVFMHVxVkhBcE9KbFVIc2tmQy1uV3NzOV9fRTFURHBLcjRfRE93NFhPUGNzT3dlVU9EUWg3cVFXRE1ZcDVHU1poVWE4MVVHczhmemZKU3JPbmtaTmRVTS10Y0h3R01mX3didy11dmt4UFUtV0tvNUNqR2M2aU5KMDB4MjZZdUpCWXd6TVFyeDBJQWgxMjVBWlozX2FvaFFpLWw3a1pZVE82Q0JVOVZsYllNMndrZXp4ZGhrQ1oxd080Z1NNbDlKU3A5ejhxNV84SU1WM1pma00xV1VqSGZMQk4xRXdFMjRxZFVzcWxyU3NZN1hQaVlpcXQ5ZktXVmZDTWw4RU0yd2ZHYlhxMUI4eWl2UlpMcko0eEk2MUdVUWJFVGU4akNTYTF2aUxxZ0FIa25IYjVjVHIwbDRhTW1EZGZKWnJxZEdpb1lPb2IwdHBuc3IxanRfZm1obGhJa1NSQnREUk5XWEU1OXBjVXlULXpyVjBxZl9sOHN2TlNEV2N3d09YQ3lITWZzLWw0T29xMldVWTVLQi1nSG1HYUJod0oxa19ra3V2S0hlMl9TY0loc3JjTXV1eW5aLW14Vzl5NHBBS3pvdVFsQjR0ZGZvbHdSRk5KX0tHYWJPZXJiWFdDT0ZTd0JVTjdNaG0wOXNyVS1VWG5od1IwdTYyTjVvMDlfbGN5eThnWDg1ZUVrenhuOGZ2NHd2T0Y2dUd1cFk5UGxpSTRLMTNqSHlOd0ZuY2VmRlp2b0dxVlhkcUg5RGJkYS0zY1FhbVFlNmlMek0wRDlnLXlFc2NBTkpKS3ltelVzemZZdV8yY0p0TEhsd0I3NVhLeW1EMG9nUkRvRkRwTmNPd1dRRUlwdVJwU0pfdWtzR2EwZkd3MGVBTU4tQmc1OUs3emhRWHJISUZOckN1S1VPMVdvTkV5WkM2UGlKSUwtUlRsTFQ2WlBNZmdSZzZiUl9aQk43X2dseHBIakNDaFZXMkZ3MnJFUDJJX1pSeHFqdS1WbmVwV2o4eU1CaHZXZzdXNm9QWm1odmVtUTBkQUljNVZTbVVaelhvNFVURmJxSFN2MGlyVTNscVk2eUl1MGRPd2t2MlF4ZENfQVdRUmdLSGRUeG1xYXFUSXJwclZyUHZ1MDFQSGlFbVRnaDZZVEZ6Yllqb3JEeFExWDhlTUN5Rl80cWNjMnhOdTJRblBIdUR0RGZkSy1NV2xJUDhHUEhSMmhPMjlCa0JJSEM4TlgxZmxDN1ZSZkZsQ09McGVIeWl0MGRSd1d2S2tieGNIWl9fRE5ZLVBNQlZMZGpyR3lxT2JoQnpQZHZMeFpXWVU3THNRbnM1dmxiMTc5YXczX3VmclRIWGs0MVpjaDY2ekFRRl9tekQ3ZEVuMm1fb2tBaTh6NTRwdzdxUDAwNHkzenNPd0RmR0htYWF2c3dGMW5NMUN2YXhXajRINE45dVNUaV9DM1oza3lTRHlUNGdUZjNqc0FKUEJybXdSQVBpaU5PTTU3c0x2Y3dJRk9ENnA5QkdWbjFwbjQyZGRTU3A1M3JieTZEcnlwcHdDaDFrampQX3lCbTZRZnd6MElGUWJiSG1zVDNVa2RMb1dURjFSMF9sbjJtR1kxU0hHT2o3VHl1YnQ5d2xLVW5nczVMTWhVcHo3NU1LR3F6UkFnWXNKcHVKUVl1RVpKeGFPSHNmY2VwakdrcFdoMEtfWkhZUEJESzIwOFVqb3FqMDdlVVVueTBaXzJrNXUxTjQzWGJ3V0ZvWVBhdndheW1MYkhWdkRwbzdwMU9JT1IyNkt0SzdPeGlnZ0ZybGVISWNaODFwQzRCdlNzRnZsY1BCZEpHLTZxWTU0Q3J0R2xhaDRvQWplUXgxWS1YU0NLNnZLYUIwWnZHc2lIajhRQ0ZURjRuLUJqTWIzWDcycDJ5Q0tPRlpMRk5qcVR1aHJoYXNnMi1pWTNOTWdwVEQ5eVBSdjA2X1VpcEVfYjVsQ0R0Mmx5QU5NYVpZR1RvSmJTSVhBcFlyU1hEM1dFWllhTGUzQmFSUEJUYTAyeWpyVFZPRDRGNHRFR3c5MkZJZThOSk5NYXRXMFhPSFAwVWxKTXlQUDF2MVdvOUh5aFllaDFfdWg3SlRLcS1hWnJjOS1Xd0ItQXBKTHBQeGxmRzlGZkgwdjNwSTl0Z1VndWJmSkJQVjMwNll2MlNqQ0M2MmVYN3VFTUgzcXQ3TmFYcFVsNXZEVHpfMF9Vc3VlWERQcDNqV01XQTMwenFaYTRFT0dXdElMb0tEM1RjRWNVcmJONGV1bHFQSkFNcWdWdmk2YWRGdTgxU2w5cU1rVVUwaWpqMjZhZDFaeVlEUUZtWlJ4NjJYUW9ZdG81bXJ0eFZhYWtNNndqbkVPSUdJaHhBTnJoX0dNVzVxREhzMEV6TDU4b3lOY0Q5dE1MUC03N1FCbTZwUTFsR0swMVJ6Y3FzTk14ZzRMTzl2ZHQ3NFpIdEhMXzA1TjF2TUt4TE5GbkdhZmwxN1E0eEM0Z3NQeXpYdzBjcklyV2tIQlNQX0NoWE94SmZORWdyNjJOMXEzQVJZa0U1TVlCbzctM3djb3dNT09GcTlrakN1ZGpoekplRjRTUHdfMnFVWVhZRTZsNXJTYjYwUFlFSkJxdW82Skh5ZmdlOXFJX0Rzdmg4eEY1STJfLWtLT2pxU3FZam02NjU0cXVES3phQ3JWLUJFLWtQNF9DOU5OQ0xTaEVWUV92Z3hYdDhzbTRWNGNRMElDRmFzaWV6VnNuV1QtYmRQTGxBT2RqOS15RmhYVTRUYVF3YnZqQ0E2UHQ0aDNVWGdnQzNqWU5IMmJtRGpYSzhFdFJYRTV6cmJsTDRKMFZ1OGxHQVBZaGtOcGNOakNrNWhSSW5jT0dybE9aUk9jdTdSeVczR2JWM2Y1MGJKN0xLNHJjMnJCMTZuemhBdk41WXlydWdwQzdCOE9OR3NTY25ha1V1alJzRzZGYVpydDNzTDJMOW5RTUNoNE9INFF3VWpKWFZKUFJ2MHhPTF9jVEQtdjk0QWgwbWdtcFJ2Q1dhUkl5MXRxeDZHTmZ1R1Nyb0tObmtHYjRiRE1oblpZMmwxQWluWHlCMG5uRGlvci1EUmo1cjhRZi1iaUR6cGhTallzZTZrakdLR0ZObzU4WjFfaGxEaGFob1pQX1lRdlBtWi1Tb2pNaGhMRXZqMXEyZzZWRVd6a1FDWTdIWVEwM1Y3cHVCVm4yaXM1NXpBSGV4cGpERWoxWDgxWU92bnVTdXRhMGx3VkFEMkRoNjZDcmM2VVh2SEtUZTBCeFlsQWdVdkhQc1BkSy1OdVk4S3RaeGNqTWNDVWM0OVl6VW43RVBTamFNaHJ2Ni1mM0pwc09Na3JwREpLM0dPTUVRMUV4cnhYV1lGaGtLaHR2UXZkMXZCVS12b0pRcWJveU9vS1hMM29Xb0FRVnljWlR3Y2laeW4wbUtkVF96NDNFZGhNcDNKS3N5blJ3OVZtSzk3Q3lldGl5LV9HaWVMSngtWDladVMzOUdNa0YxaFVmYmkyc3FJZGZMZ0diem5uMTluTlRVUDlOR3dhaWhybU9Ib1lZeUJ6WE4tby1UWUxhSS01bkNuQ2FSSW9QTF9XSVhyWDZPSzdZU21IWjk4a2xJS19JNTlPSXlWSllrMVh6bGVwd1lPLXUwU0x6bTEtN0dKSE54RGVOMlZhUEk3TThVem10X0x5alliWWxocFFJQnNyUktsMmZZeExKaGt6Q3NjcWp2bVhDemRLVDNhNFV3NDJ4eDlsOWl6dFQ0UmtnV21fYV9YWWk0b0gwdjNCUXRSZ3NfUTBPaGo2T2Y2dEtyZU5XZmcxVDRjMk01SERJd3UxTkl2QXBqNzZtOXJWQkdPWTZFUnhfa2Y3d2twb1g5dWRvcjBCbEx4a1FCc0lwZXpUdzc1MTBncU81Nm1UWXlBUzFCUVdOY1Q2aWhfN3F4ZTVoUkVlZVB5YUpFMnhqR2JNWGg3V1hGYjN0ejVWVWJOTFpxMjBiM3E0UFdkdjJXX1Foc2VUY0JTRDY1eVFPYndTai1UcVpNNi1teUZHb3B6dVdfRWcxU3pzNzRaY3RMSUxyN3pMLXRyeC1WTTVfVHllMVZXbG9ZOTZVYUJyUktpQWU1SVhKMlBQd2RIY1p4SWx4N3dBRXdueXVOZXA2b2NKcXRwZUJ1elB0LTFaX3UyWjZrQmR4V0lpYlVEaGxOU3AxM1NkTGw0Z2hkemVqZWFaYVllRDVtTGltWWJ4dEhsQ1ZiTm0yNU1ZbDYxMFU3QlZnNVJJSXB6VUdmZ2Z5NnpJRzRLQjBMR3BISzNhdHRRUExvQ1VlTDRYNVdBUUFsb3BRa0RKOU5lTHFGdHN4cWpZaGJnZ1Z5am9ScjNPOVhzYzlJVEtVaXJaUDlyTVl0eFduT0tUck9YYVk2WVR2Wi05QUhpT3ZfdTRhOElTS01DVng3OUlnXzdqTjFfREhjdGd5cEEzVnpkbjNKdlJJQTlfbHZDV2dTSS1NUjlPQ19xekhIUmU5dENqWklDVzhwRURSYVhZOHc4UUQ0bXJicmFLTTNsWmtTNUF2NVp2WjFRTDJlZkExbXlJdmN2czhmekxRUFM0Nm0xX3ZPVzcxN05ydDQzeUcwbUZxZnk4aExaZEUzQ2RkMzRtVVFXWVdqSkdvQXZ0VHBXRmpwWkwwOERjQUd0RzVzdkU0Mi1WWjRqSVVYQ2JsemZaczl3N2VsNThvRkJLUng5dUJLby1PWmYxTVloVEZrSlU1V3YtUEVreXRPSVpfU09nZVM2RTVMTUZsOVpZenZ0QkJuWWF0bDY4NGpEdWx0STh4LXpmSHdwUEFwNk9CQVpxalk3S3JoSVJuVGRoc2Y1VUpCcmtvU1JGUFlaaXE4RjJLWHA2Nm1PbDMyRm5RTVprMUlDVkxiYVpnUFlWNnl5UXpZdEdhbjhOc3BFTG10RWkwMVlTZE1ySUxkUF9TVTZwXzJ1NU1oY0RPMDF0Y2hwMHp6eUVfTVp4YWJodXpMWUVIeXJvYl83cjFKdWNjZUQ4SlM5T3JBdEk1YXdsbEhGSFRRWExOWGJuTHdTQ2JrdHNiTGFoa05ya0ZXR1RDNFRzUlBfYTlHMVhFTE5DRkhaMVhvS3NsQTdMMzFGaWpyNFpEYjRQeW5hT1BrSlhCcEx6MGNLN2FmeFVxNWlySHhZNEQyVkdNT3gwUmc5UEJJeE1vdzN6TmVGZ3Y5dzRTdkJ5VUpQdjNGV3huX004M3g5dldiWFh3bU9LbHlLNVpWQi11LWxKVno5Rm81YWRfVEtwUkxqSGdNWURKNU9Ka2dhaEFQMmhOaG9lb0FicnBPNzVYT2tYZ3pONDdwVW1kdzhmZV9FN3ZSeUREZi1LNVZNS2UzOXRPSi0xRmxtemJVc0pET0lScHp5WVl0Y2Q4cGtPU3JQYnIzMWdJNFRIUjJHV2xwZWJCZ3VhYmppck9UTjI1Zy02MmRPWWVKNHVwNjI3MjdnbWNQWF9EYmJfSFdrTnVLaXBmdkJ1UmVNN2J1WE9LVzg2bllHSW5ZNzJZZ2lvYVpIaEJnY3pHbktuUUlkWTJ2U3NzQ3E2b1FSUGJqeHRQZ1gxT1h2bXNucmNBencwN01ULTNueWF1RDBfNG90RGJueF92dm1fM203ajBwcjBGUWZ6NWs1UEVNUG1sOFVhenFxX2xEU3djV2JOU21JbWF3OWt3U2NXN2xrOUViNTRLRTRhaWt2bVRxXzRuN3lkSDNQblI3bC1RMXE2X2k5VWdHUVFfSmk5UDZQbmszQzd6TTVYbDBpYllEVXVUV2FUdlRrX2ZjaXo0VUJXWkV1T0lLU2xZaHVBVzFQUTJPU3NiUWxPbDU4U3ZvTEYtS2w3TmNkRXRBODJVWjdkLVFCN2xKNWFCcnd0Vmx6TDFxX2Y1UGd6a2NtcW1pLVViM2tUQ0xlNjJYbzN1MmFvSnNTQ0c4bXhwZkJ6dVFVVkk3WXdTa2ktWUtNUnlJSGhuOG9xRDNQS0xMbHk2LVZkZy1VREE1RWhhLXA0TnZYb2lLb3ptRHdBZFFpeG1IcnJTdUEwWmh0eE14N0FSc0pqc285blZKR1BOSzhCeTMtbXQycnNOOHlMdHpyRXdkUzBtLW1sRHRKak9CWHJ1NmhWOFBPeV9vSWVzYmJtWkcxSk96Tkl5YmhPOWdNakpsNTBSQXVmcW1sSXJpOEVXQk9vdzdVT1RKQjgtTkR6VzVXdWNiS0VLOGotdWtSYXhhQklPcTJBTnI1Tl9hTEF2RFpmalp1cDl1RGNTc2FUOTNWR0dmQlhHX1BYRlhGWnNtd2NnamxsQWN3bkhCS2V6QWd3SnprRXpFaEdEOFhQMVh0dXJPZHh2YTRyd2ZtVG1yM1pHVWFmY0tTUm5malpnVERSVThVRFd4ZjRwMjB1T1h5RzBBUzlJLUF6WGN0Nm5EOFVQUlB1WDQ3UG1fN05mdWFVTkt4SEZ2RFdOdWYwcVE1OFlvZmhydjJlRDlzUFJFWV9CWjhXWm9IYy0tbVZ5MmM0aDdvTTUzQlFKbTQzRzNkaXotclRwWE0xUDExakc4em5XU3RBQkJxbW40LXdKVVl1UGpDV0VtY29qdGtRZEZmcjQzRUNqTzE1SDJaZGN6MkphZmpUcmxPdWlQOG96ZjEwa2RTYjBURTFVOXI1dHRIU0ZzOUxPVlZHVjJnQUxjUGtMU3R0clgwMXZHMWZLS1ZTRVI2TzlZM0pZYW02X0FwU2xONnlRbmlqM3NJTzdKc2xYdHhaMzY2bXI2Vnl6WmphajVVODlJSjdJUlY3eXBkOWtuZy1RRlZMT0FhRGU1eENvZG1jRjY4ZGp4LTZBVWpQWnBHOFYxVG04OXh5c3BTaU40M0lmLURacTlaMXFjSXNDOUJ4XzlxTHE2S3kwNTIydnBKWkw4NEdCZElXM0FuUUdKbFY2dkRXbThpcF9LMjg2NG8zcEg4UTdFWnpqc05KZ3p6RFU2SkU2Y2psTVdhMDR5dkVMa2dnUm9feVM1MWUzam1BNUFFdWpXLUJ6TXlzTjVkeUpiZC1HcnN4VFltck1wMWI0dFNhMXV1ZHBSdWl2cUFLdV9qbTBvYTA4UHZqRjJyNjRXYXZQZHVxcUs2VGUtMDc1RkFQNHFEZE5ocmpJSHpneWEtUWowY2NCRWtZbUo3di1mUWxneUxzaF80bHJZQmVyWnNCMDM1Z2Z2b19CakQ0Q1VWVWFTRkRya2U2OE41N1prblU0UkZXN1NNQXViaE93WjlCd1pmT0tuajV3bDhfemRFTDVLVDBQUm5IejRjQk01OTZGNXhleDFORzNqME80Y3JDbzVod0xMMUVwMnVweVlULXpfTkdkT1MwMG50bGt0dnNKMGFZSURuQy1SSDRYcUdBUXlpY3hJVzNnTXh3LUNvYlIyUGdPa1dLTVBJN2xFelNLN0VKcjZkZENmblhHRF9scE9HSXgtUTROdjFOU3E4VGw1dkRtdmdOXzZCOEhHbmV5bXdpQUlJZ3NpWWhfUmR0NnBrdWJLVF92aFkwMTI1WWZkck9NaW9keTFLbEpNR3NJNGxqX1dJYVRHQjdoY1dtY0stMy1NNWlZVnJUSktaR2RZbUFobXI3bkZVT28zWFFCZkVVZFpKb2Itc1R6eDdNYWttd2JEcHdQdHB5OXFQem03akI0ZC1yYmlncDI3azRTYlVFOXNFWTZVeVVJVk80Y2l5R3ltZThpOEdLY2dSWXJ3YTZmVlItTnNvcm16dmd5eGZVcDFGWDZuR0xNbE5VMDNEblBVU0JLT1RWTzVnM2JuNG1DNWI3anBVQnUwQTk5R2ZkTEJGaXg4dURwR2NsQm51TFhncjcyRFdCRmFKeldkZXNZbTlaLWk0WDBaUTh4cVZwdGpXTnI5Sm5sVDlLeDVKZXdRSHZkeXRRdHRaTXc3TS01Unc5UHJreklWd1JPZE5PVkxwRWl5RmVqM3YyZmJGRFVoRmg2ME00NWRMQ0hqU0k5eC15dDZ6LUVtQlBpdGtkcWpUT3hLam1qVV9WNzIta09tVndhZkY3MzdTcVRKa0lpWlVic002bEJoQ3Rxd2cwNi1DelR4U1pMYVgzOF95dE51aUY1S0JfcXVwcU54SGJ4TTVZN0l5SnJUcGR4MG9qNFZzWDlxWkFjTGxCZnRNaTFUSTVLMkJRSERSNW5FY2UwT2J1SWpjdlNrcjNYMmZwUWQ1cHlLdnBXcXpNbnNuQ3NsVnYyWUY5ZDZHVWFKeHlfQ2MzRVJqOXZIMnRJb2hBckh6VzJlN1lNUTRyQnducnowOXc0aWNnNG11TDdVSnVsVnJLcjdJS3FDYjJyWFViTDBIRUVrTUd3T0pISEVnVWxlYzRGajRNQl9ZNnh4SFJuekVKMVVBRXVTeDJaZG9Bd1JsSjMwRHZYTWMxcFo0NWktYXE5eV9oOFJxaUZSUlQwSktjYzFpeFA1Y1JWRmVpbFhKWXN0cDV6X1pKZ1FrSTdCQlBaR0M2bkZ5RC11LWh4MzhQN0IzQjdUUzdoWVlXdm9ETFpGSkI0a1ZGRUhvNlRKdWNDVlpJaEFMdHlfN3dreFFxdU1mMFNOREQtV0FPWUJkY3JpZzZmYnNKSVhvc2lMSWNDM3hOOGw2X1dzNk1UMXdXODZkcWRUWkJnN1Z6YUlnREJ2RDRNakRLdjk2M0k2c3ZmeG5FWWNEQ3dDalo5M2JwUGRJd0htZEY1ZE0xTGZVLTExMktBN3dCQTJWYjU2cFdBMWk2QXo3Z1N6RXhQRkZvVkNBdFlJUnBFcHh5SVBaQUVHV05zeDNpNEk2Z2lyZi1hUmFWejFXUURCemd3ZDd3TlpqV2xrRVlyRFBBZTFPVnl0bU9HQWlGZmZiQWVPaVF0V1lzMHYzVGFTOGcydk9peXRvakE4ZzM2dDQwQTB6T3pKYnlzUUM0Z0hjODJuVDdQUDJBTFdPU0RLTmxSX2M0eHFWTkxjdlhxZHFBNmpVRlBUY1FONzk4U1FRbGprcmd1bzhEcGxTZTBnODl1VHUwV0ttcFltSFA0WEtmeXRGRWlBR1FDSmIwZUl6NVZsTlAyVnFiRGRMcW1JSzhuNVlNSUtDY2ItY0FUdGFoRXU4QkxQcVE2VC1aa2t4MF93M2RmZjhVX3ZCZUFwS090SERMWUVqcTBnVktxUHhaUWczY3RJS2oxdXJPeTIybnJ5aTlnZWZVc2QzZUYyMnBCQkx2YWVWSk96QUZndk5YdnRiTXFsUW1CXzQxNG1tVGVtaGFlNktjOW9KRF9sLUxKWDZPU1FISlo4MHQ4Ql9VZkdacFZES1NubmFmMmY4UHYyMy1EUmlGNlNyQ0ZKN0d4TEhUNXJSNzU2MW1YUlV5Qy1leWtocVI1ZFZSZDZhOVQwSGY0TlZSbjJiaVdxeWhPR2VUa0hKazE0YllOUFdYTm5XSHl1VTdyNEZoOVVsb2lES2xIQjQ0VjlmYS1YMzE0c2VHZHRqUFNLdWhFRHBMeV90VU95aWU3aThJaGNIaE1XOHlFNi1Oa0lZSnF4cU5EbjAwdUkzSEhEUWtGYzFQV0RYdlVIcnBJUFRJcFFBQ3c1dkNWT2JpUmFoQVBJM2tFRFh4ZkY1S2VLMXRuS1hsZWRxQmRIc3lCUkZuNnp6T1p1UHdOWktKNHlYVDhoS2wyamQtNTlqdWpibDBmNF9WdVJFdmVQOW9FWWtTOHU3UmlBVEVHa1lPVkg3MkZXTzBzLVNJWGVRRkQzX3VvWjdrM0xjSm9GVjlXMDZrQUVWY1dURVZGRUlwamtNMy1FYnJSUVdMcy1heWVYQkNFSUxsQ2t0di1LblA2N0pyZFV0bTI2cnFlVXZ5MzdTMTBCTE53YjRiNHBvREhMS2FveGFuZy1iRjZUb29PR01UU01MWXUzaUlLc0R3Wm9kZG1WR0xyQ3FxNWJJR1BFZTNoMnc1RjFNZ1hyVEU2TmFubXpKckh5eHVPc0VyaGctaEpGeGVCcWE4WjZZWFduTXIxNDhLanNoYVAyeVpFSWV6OG81UEc3cWRWaHFRenhYT1c3eEQwSTUycjBvbkhxM1hzcV9SOGhFby1UYVdPbmY1NW1YYTNWMk81LV9XanZxZThWdzdwTUF5dG95dmh2NTVTVk9xcVdkNXNIdGhITzd0OWlMdDNFYVMxX0ZnaU8zVmVENmlvUVBNNjZsWmhaYkpZZHo4b1RFeU9SR09KbkpjSVpqVm1YSlJIbXF2eXZsUlpjdkVMM19KR1hEOEZGNHlBVE0zaGhlNDN6VEJVdk9oYlRjckhNQTRLZjhWczR4cU02QWFsczVBZzRUbVZSSnVLLUVRWFZCaFE0TEpBbEgxVXZzN3lKYTdLM2hsQlZEMWo5WXRWS2htMVhPNFJySTNrZmVxYmxoMTRHQ1NEdnI2OExyTk53SUZsY1JEY1pKalBOQi1GWGhUd25PbW50ZVItOFY0UTJVa19tczdTTm9ZUElWRnJqY1R6X1ZkQ3dYRTFmMjNocHpqQ2tnWGlsSUlNNEpNMkZmcDNTZTY2c1JHc1RXXzBBbF81R3Fqd3ZfZFBYWDA0RHJNMFI5dGljTHhLczBnM3hkSXF1M0huamxBRFU3S0c1Yl9NUmxUdWJCQ3pEamtJQWRRUEFwcUhaWktnODYyLWloMDE4bERfbFViWEwyMGhFNFBNbTE0eEg3R0dPQ3FWa1o3RVU4ekd5Yl9xWHV4RF9LZHFLSVR5eUc2WC00MHhOeTJ1cWpDMmlvVVpiM25Tam5kZWFiX19kbC1jMDBLWkU4RnhTRnRMN0RreWxpTWM2Yy1VQXBhUlZKQy1aa2NBaXlPZ2NBOVZQa0x5a2xlcGRNYXY1Y1J2a3FvTHhmS3RMU2FhS0taWEdveFd5OWp2am5KZHZfMmZDTXlUeFdOUWl6MzI5NG9mNkNNY09sTmc5VW5iaUlHb1JVX20tMHQzamNRWHBrZ0pDWlMwcmQyZ3RGVExYdUVlYU9ZTnJjZ2dPWkVQMkstc19kNUlCU2JqNXE1QS1HYU9hbzFuRmdFOEFlMDdEVXVzeTBYeVEzd0cxb3JIOXUtSUxpSHpyd01Ickx5ZWkwYmpYSm9HcVBuSWd5d29nWjdZRmF6a1ZSTGE4OTBZQjlXR2p2SEdqZ19yYmVabWRDWkFoalNiTlRveFN3bGkxMnh0bl93WkNWVkhlNzUtSGNkTHZHaGgyekwwVjlROG84NFI1NUFKVV9fNjI2REMxT2w0cXVLcEt1Z1EwMHowZElPbzMwcG5IT3hqa2xlcGRMM0dyN3dHNXZsSUJKbXVWMlBReC1Hc0JmX3lYbUhxOXBZZ2RJeXl3ZjNqSjlDcmROYXM1RGNseUExUS1Sa3MzdWtyU3dublN1ZE5OeTNCRlJ5ZkgtbHhWQmpYSHQxUUlQM2JLbjRvNmRPSHNLclc5XzRPVnBNREQ0UjNMRmpYNFM3MDJ5ZmdXSkk5Wld6TDFadk40X2t0Zy1iVHNYOC1zdzJfa2Y3dXVldmJmMkYzLThmM3lvNDNUZ2dQaDU2TEZjbFNidGdaNE05MDRTLWF5SGQ2NkhVbmU5T1Axc1NldGdKWXdZZVN6TTgzY2FUUXVqRVA4bFhEQWxKZGJ0MTRhZ2FValJkNlBNLVVIUGdGUmNtRTd5Y0k4YzNSdWxrVkU2Wk5qeUU4VkNnaFRoN2JMNTJNYXhUcVMzQWJKNUpHak9ESkk4ZTczV1BFZHZPZ1FPNnZvak0xNDFnSjFtaW9rTFNIbXNwVWRhSFdIdkNkc2VHeTZyZmJfYktmeGJGS3FNTEN6T3VKbjhxd3hlNUxJQms2djJCUmNzM1I4ZnI1VjBSQXB5U3J3bmRuWExFRHdVRU90YzdwSTBqajVNeGFJaWxKU1FMb00ydXpiWXZaVE1INklXSndEdU1hNW04MlFCRnV3TWFZRDd6WmNwM0RGb2dFc0N5YnFjZFd5SFBhV3NxQk5GSDRuYXdwRnMwQ2xZMWMwbGZQR1RnTWZJeTRxRnV5U012cHNkYWZORUdBdVFpYU5zRzROSnNJV2NYbFNFQ1FsLVhRaHF2YkpUWE03NldPVTVld0RneGRGeG5WREVhdFRlQWZZaUVEN1ZBelFNUXNFenU4VUx4VmI3RWJzX3RsUW5hU2hVX3E3RjNUVEV3VUpPdDNCeFdPcWFCbmhNdUdOdU5CNXJabFd3YVhrUTFNdGxwOEFmWTBXSF9kX2F3VXdQbUpCQXFEX0xKRncybWVBS25OZl85NlZiUW5iU2J1ME5uejlvTnVXVmNMcWZIeDIzX1JfVVE5enZibTlkaGlSaUxSMnVDUzN2d21XS1UzVG9vbks2c1NpeWNmYnh2QjE1TnFnN2l4UUV6M2U2emVkX3pQYy1GdF91ckRrR1dOTFJ1d2Zyb001REQ5XzQ0UFVvLU1SQ2NiVGp1emxqQmVjOXRUc1NRdnZWVnp3WHdNY004Zl8yWEJxcU5OVl91b3V6dVRPWkFfbkNVTDV0T1dFSXZIZmlDRWxJV3lrS0U1TUFUUVlUY3FRd0VwNUlBeDFDOXdudnZtVk5NcmFFNHpDSDJuZllsUGNIYWpMUGlXcHpUdUR4anJGeFhIbVBUc1JTM0Q1YU1yTmM5emwyZkR6ckJsbzV0Y1pPT0ladlR4X0ExeFA3RlFnNjMtbUZzTGlRZG16NzM1bWVjUEFmdkROMnV4dWp3YXFITGx5NGlLelljVVRjbHFhYV92X25VM09ESUxkcWt1S1pCZFZzZGwwX19YeDdkSlFHNG5nN3kxU0d1V2Z1NEdRRnV3azE5b1hJM0ptU0c2WVZHSW5wSUlNYjcwSy1BREliMlZBWjlVaUloMW1HNmpUZWRHWHJtMzF5b3Jnak1PUlRERU1rYnZCeTFaazVrR0E0V05aSmRKRnlSQUtXT3VNbVZOVXRWcTFWRHpkTkpNdGhaWUZHQUU5MEtBZVlaZDdmaFRSZlY3ZlFYdzhWOENmM3IxdmdMTXJyZ2JSOGwzeUsybFBLMnhMcFl0cVpRanFaREpvSjlwUHBlcHEwRF9Dc1JEcVlDVi0zNE5GbldXWklZQmtmZTRPSGFFZTRlXzNQOGxNVTFKUWlJY1dXWmJ1ZUJXSnlpNDQ1b24wRm0zVzdlYTRnUUJCN2c1MzU4MUJBZW9ZQVRUYnFFV0J0LWU4OS1YMDd1Nk1vSDVKUU80OV9kSW0wNU11VVlrV3ZQODFHNDMySDFPYmgxRUJBNG1WdHYtM2ZqeGVDRldiZHVzTWxxa3RYbXVodjBEVWdmWGh4OEoxS2JaMUdjN3cyT1E4S29KZXNGM2QyTzIycjFkdHRIamdmbHBUZlVXOGFaN2hPZ2otSy0wRHg5dXV3ZmNVVWMwUnd6bkNMbVdqd0lnZ2NfQWZJbVRpd1ljZWgzQzlpVnpLdkcyV3BfZHpCMjgzM3YycGI3SlRKbmFYT3VSSlhiM1JQS0pONGcyVXV1NnNYc1JBd2FlTnVtVVVpM1B5b0pCY3dhZFRsbVVrQ2JNcjJMQzBzYmZkbjNMOHk0bTd1UGg3VTJ1RE5EaGk1LTZaWUNYZE5SRVNzajVrR0QxNzJoUHRSVEV6RzhUeEN6Nlp4dE5MQ004a3pHVWtjS2FLeVctZFdaaFVWRENsZVdnQ3F0NWdvNUI1OEVaV2RJbi1SRTRxREZ5RlBDNDg3bk9nMUVyVmZBN0NHWldha1F2QXN5ZUhKb3dkc0RrdzZIV0x0Y2ZwQTJENHEyZ1Z2aDdraHVNMmwxSE5DdWxNOWJSXzZZYlhuTGlCMzIzN3Zjc1d2bHpBVmJCd0J3WHRQT3RGWEEwc0V3c3Qtb2N5V3Z4WFNsT19kdlhRNUdHa2pLcjhFX1hzM0dvZmlqaHpsZF91OWFROGNTek1XbE5xRGNPWncxdncxNUtaeFNXR1QzcDJ4S1VHLWtSZW1Jc1h6VW91TFdma2RCbk41Vk1tUTdJTXA1RkFfcmdHWnFwVHByaHJMSlVaeTNZN3I4bG1McW15Z055a2FMNWkyVEpIT3RWVHB2eHVzck1LMnUtSzdpbUJVMHlkQndFaHNOS1RWMXlGZng4Q2JZazJTeUo2QVlWeWZLM1FhVEdqb2FFMGxocGNPRUIycmpfUDhFWHAydlJ3TWZsYjBtc2daYTFCOE93d1BXRUJMdlROVjVzUEYycFpUaFlnM2xWVzFjSlZlTlBLRTJfYU1zS0p3UGVIY19YTTNrdDBXVkpMbTBnZzE2ek5EMjlsaUlfNTBjOW1VN2NpVG1hNEd5ZzJtSkUzVkg3VWxUanVkRldmNTZpSEZHNlJpU0FqVUFtMmtBTkNGMjFyb3ljVUhFTGo1aVlQZF90S09vcmJvRDlWRGcweDRDc3BQMmRKZWVzMVR6aVMwNU5qU096cnd4dG5qMTBBZ3kyd3B5XzUtbVl6dVJvYTUtNXVPSFhDRkFNSW5QQ2doakFudHVYUGw5REJRb1ZSMWYwUS1NdnJWQU1Qc3pfaXMxc2xZaTlFT3NDUWp1R2hsNGlxYmVNWWRhbFVZZllGYnd5dktaTGNlZndjaVdpY3EycWhpM2FxaWQ5WkVwVGRyR0FvRjItdmd5cWVsSjlRb2NfSG8xRldZdjFrVUR3RTBmQ2ZlV1FteHBFMTQyYmlZNVNnV01CaE9tVTBKWkt1c0hCV3B1ZWJ1TDVlc2RHVEJwRWtpcEpHWmtQSlB0YzBvTlJSVU90TVdZTTYxbXZaXzRTTFpqOW9kZ2U1akMwMHBzSHVYTUExTG5USDZ0R3FnSDlTd1Izd08zOTNTQnRMRU5oNy10UEVEVWc0dHpJeXAxTHQ4R2dWS09DTl8tc2RCbnlpSjJaNmYwSThEMXVPQnJYN0JGb3E2aHlkOWtMWnZiX2E1VHFUdzNKZDJCdHRzOHBWS3hhaXFtTW1WUmZPbU4xYmRJSHhlVUNCQzdXdE1LZUc0M2FNLXpYZDBfUmI4MkxJTVVVRDJadUxXb0MwUGZzUmpiYWNpOVhBOFlBVTE1WllTOVh1YV82NUZYT2xxcl9sT1RuUjd5Y0JZY2J5T2tIeGpIWVFmRGkyQmZRV0NkMElXaF9WcUxNZWozT3ZEUW5FZDZvNEU1N21FQ1lQUEJUSkFIZTNHTjU2UEl6T2xLNTRtVV9USUNpX0JKTkRXemJvdl8wSnVEWExZMmUxZnhCOXNURmc4c1hINUozYUhYY2dpYUdSaHlnMjRKZElJV3dkcXFRbmlLZWNfS1IxVTJhbEVqX2xPQTNNb3FadHk5Zzhnc2RCMjRmQlRLOWJZUnc5eW9OVWhrSl9fM2NxNlozVVFvc3VrWklreDJwVlRoTkU3THdEQ2gxbnVRYlpvUlZrN1NKc1pjWkZ1TTd1SUJRWUNVMGRIQzFRS2lublQxc3R5WDduM3RRLXZPWGRsSENaOEtmSERpR2tsemdKUkhVSFUwdU9JQUNuNGtUbkRzN1ZrRGtEZ2YxalBhYXVYLUR4X19Cdm5oWXIxRFp5eS01N2x3SG85c21rZDFNcGFUVGRLR0cxOVktUDh3MmcyNXJCcVlWQjhBZXRlbXQ1bEtZdE8yckhJNmZSSDZrLVhSM2I3WkVlSFA5MV9UTkc4QVZtV1djMUhaMmdYN0gySzgyUzRoUk1JcEItdkxUaFI2QmV4bTdDeXJHSFZqNHN3M0dtZWd0cG1obmJlNEZQRVo1UTZnNGhScUpmYTJvOUswZDI1aktwaURBTFllRVY3Y1VDUjhBVjRYNU5WR3hWdWppOVdYN0gwaU1mUjZHMmpIVkFZSmloSkxOSC1JSENWcVhxdng0ZWNSRmVxNGRqUjNBWjRITm5kNUJBaGlTSHRObkhlM3EzeG93cFduQVh4M0hHeFZKcUozZ0pVdDVtdGcyb29pYnJiTTVFVU1HT290QlZGT0k5eGd4RmZYT3dhYXNPNWxIbTVoQnFWZVczOHlXS1FqYU50VG16TjlITjFrRWFfS0JacHU0d3RGeGswNkdWTmFEUS1QbmZBV0FJalByQ1FjSjJMQ25kS2FBSHJyYTQ3WTI0dWJYd1hPNUZsSVh6NElaZzI3Z3NzTXpVR3kwdUtGc29LdnJrZkFLdjVWblR1WlJ6aklrZzNoZExLR2FMb3RPVmFwZkp5VnNidGh6T0JrSERUMDllcVlOYkFwbWdYWGdoVTZSb05nV3IwOURSMmZQV1FyaUVzbm9Gc21yZWc1MUUtc2JUWjJCb3FqVW1zRnlndjJZdVhpdTVXdFFUNGtKQ1NxczZZVEw0cGhoQy1sTEhubWs3Q0ZKVnNMUHpUM2ZUcVF5M2V6Sno5dUxyUWJKRXVVMGgyWHQtNGwzaENtNU1hQlVVUGU1SU0tWHZhVk5QM3FQUGN6NjEzZkt1WmwzV3NmZVVtYzl4OWhrbElxRlI4RE1aOFdpYnhJSG5CXy1vTnpvcGV3SXZkOU1RV18wQ0hJRlNWWV9lMDNfNlN4SDBiLU5DX1Y3MXZHNXpNTXpqUkc2WXB1d3hMVUQzQnV6cHNWSVR5ZTd4M1RSWFBxNE42aXF4cFlTeWpyMUUwVnk2UXhzWGc1Q0NsZEozN0p0R082b3pTY1gtdDNKOFJBbVk5Zk41WTRURUZCZkxFT3VtdkQ0WXdjd0xuVktKMnVYN3A5MWZjTTUzVVRhTVc4UTZSZ2JFaTlnZjg5SXl1OFc0WTBIQ0REbDE2dVhCSXdZR3IxX1lyRy1zOUU1dU9FbjVpVm9oY1JsX0RrZlNNenBsSUhPWkJzLVM2X0tud2lZMXZYeThhTWlqb2tFaTVOZnBMbUdZdklwdk1MUFViUzBrQXhGTWo3dktnRXR0S09pU2wxVTJleFF5d0tsYnJtUGxFamZ3YnFjRVZkbmZvTFhIYXpfNlhYTE1Qb1FobWhKUWtvVFN6UDFIb2J4UWY4Uk53VmpaeGF0enpxMGtpMjVmUXlTNTlET0wtVGtiWlFqOTByUnpCQ0hVaTZlNWFmNUN2b3p1T2NIdEJmRnJHVkw4R0JQMk1JWi1UTGsxZXcteFpBbE10UVRITEVuUE1US1Q3X0VwY2dJalNDQTVsZHFXQndZVWxJaXZWd3NzNXRlWEswQkNvWjY3OWxyTVdTOEIwUmRwbjM1djlPU1JOejh3TUFTNER4UVV3OXhOTzBrSjdCWHdUM1dOem90dVFFVDFIeWpEcDV0UHY2MVZuVlVDc3pRME1TaTcwakU2OGtnVm9TM0sxaHFxNUhyZlJoYTVEM2MzZDFBWnJzaUVsMXpMNU5OamktNnBpZENKVmxZeFNBa0gyc2VlZ3lGeUVVV2p3ejZRZzBzeWYtUGtCWVFaRGtKOGJsUWFyUjRMdVJGVmViUTZ0bnQtVThmS0M1d3kydzFXMUhiWUZOWHRzUnVkcm03WWVtUDI2eVVNRzNPUEktLS1zV3VEUW1VblIzemNaVGZkcVBkc3ZyRmtES1JESWZfN3hsbDBLVGtIbHEyRjJOTTBiYjlDb281SG5RdERpX1pJZmIxa3pZd1BHTDZMV1hsazdhcENaQ3daWVBLNWNmbHkyWU84QzRuX2w4eDJkLXdkclBMWGNMRi1xZnRtX2RzZmNrNjBrNUtGenozZEJKV0otY2l1ZWM0S010Sm1JMklxUm50MVpJRnNTOGhEcTF3b0ItLXVTX3ZfZ3lMMVRxRklNWE80b1dUZktOV0l6d1NOUVM3UGdCYXdIMHVIemZDeFJ1bmh5enRMTEdMZEtBamZxc3d6R2dDMnV0THcyOVJoZWtLWVNyaElGWFVoNFFjZF9GOUxfNXZyc3pSaXpKekRUMGVkWlhSVkZNdTFsV29zQUs2YV8wUGVZbFI5cC1XMS03eWo3dGJveGZGdzMyd3o2VlNWamJrMHlIUnpRYmtwNkp6QlIwcm1QU3VlU1QtcHNCSWVwSGI3S0dHQjA0ZmJvLXk2N3VSRkxKTHZlcTJua1o3dDFIRGozQ2taVGduUmJ0S0xYRVNkb3RFY0toQ1ZXaXNrTDZabURLVWJJTkF1MXpLMlJhZkJhNzVDNlVPX2llVnAweTBJX1JnT3hEd1Z4QzVReS0zdVZkc2trcFo5VGduUGhXQWlURF9tQlBmeWhQN2NCbFZvUUhoY1lKYWVjQ21jQmtVcTd3cmx1emdEWEduUkFveUp6MXlwZWNjWC1IUnlqOEFFYXhxSkVUeGpWTFpNODBNS0xtRjNXZWt1dVMxSDIxLTFYUFcyaDBfSkE1OTg1cm9uWnBCSUtoaXptUU44YVNndjBIbFlmVi03cTl1Vi0wLXFrNXVQWnljQkRDYnpUZnlGaEdzWGdKU0tPSm5PYkU0QWktMW14NHpJY3FSRmNiWkt1cF80clc5Z2lFX1pfYjBpTWlMTGlBUHJ5dGo5T241ckx1MnJhY2UxUHFvb2VrZzFuWWxCRllTdzA0eHBWSjNGNURCOTBDMHh0SzAyMEtEakpRU1VCZW52dUpsZ3V4WVMwWnQ1N3dKcnVXdmFpYUlIalFBTmRjMU1lSVJEZjF1Z2EwZ1NwVjZPbEltMlY2aTVDMllfcmY1eHJITmVlWjdwU3A1X3c1UTk5YlU4RkdEMHZNbXE5azc1eTdsR3NTMVlwc2stY2RZd0pSek5oa3RPeW5GOFZBNlcxSjkzVmZsa2Q0NTFnMGRJM3dGd05kY0FqWG8xdUMzWF9zdU1JOUl2ZU9jcWFqWlVNcEFCMTZzbU9waHVpQXlBcjNTbTltMTJMMVBvbzVVVDE4V1lEbFl6eXhNYkRmWmRUX0I2R2lNUnpFYVlHSENyQjJoaUhsYXlDdlpCNW9lbkVTUG1rS1c0dFNmOXhRc0R4U2U1ZnR0UGh4enJ4UWxieEM1V2dINlBibzdYdFcxdUpMUEVzVnlwdGRjS2lPSHczQ0d4dXA1NnVNdjhlRW50SGRHdVFERmVfalk5TUJYZXNsdnMtQTdBVzg0VUFvWE0xd0RYUFo0SVZjdmozSWRpbTh1WUVDU0dXMHlPcUo2MEVBYk9nM2ZERW1wbEpNVTBuc2kzREZmbWlqNkVRZ25hdk4yVUN0Z1lKVUUtUVoxU3lHTEY3OVlIRXhFVFRUZ0RheHNIYnZCX2NibWFwNC0zaGhPS041OXlQUmN1ZldZTGtrMUhpODg2c3V6VWJZa2MxTkZRWlBGekdYV28yUUFvUXlCQm5DS01YT2QyZzBPS2RaSFBYRUtVR05FM3A2blo1WVFCMUx4dXJhTVJCSUNqV2lHN1E2cC1XdXRpNHFvNnRvUjgyQlFFZUtqSC1KV2t4a0NoZ2tFaXpUSjFGcjlHRFZ0c3duOUdFcTBKZjJ0aFhKWXZUTkdTY2tTVFEwUzFIa0NlcVNLOXAyN0p3NHl4RTlocmFVdHYzaXl4MEhFZmNnTlNLVTk0WmpFa0R5UFozUXNLUUlCa0xweHJReGRsZ1hSV2ptMEpJSWQ3WmRiT3I0YUZPN2ozZlM2a3EwQk5SVzFBVnhRWXpkLThFWkV3b2w0MFNyNmFfaG5tUUo4WWZvYlFoTDBhZFBfWUNaT3dBc0g3alc4U0lKbGV1b0hLX2hPc2Fha1hkTnJPaFNoQ2VVYjNpNUQxRmxkak12SWFEajJFN1dfUDJodmVna25PNkFhOFJlZ1JRN1dvQkVpdGU4OEszeVdPOWJkdmZ1NjFJaTBIRU1RUm5LQVBILU83RVpMVWdzTmd1ak5YRW1jRmdmRmhmU1Zudko4Vjd1UnNmbE9NcEZkTmZzNU1KUDdEcEF6R3Q0aGRQaG14ZlBseDdqTXh4cnpOQ19GS0tvRDBwcWdJdWtTVnlMZzdrbXkwOE9paTk1QUNMREZsTnlQZjNtaUVUMHRfaHBmWFZrckhCZDB1Qk5Banltb2J6WmF5bW05SFhLTTFVSUFJN21WQWdUZnVUYmQ3eEY5TjlDNUJTZXVyVDJtYnNaY0JtWFNfa3hZTWtSWjFkSkdjN3FwVFBSZUxOVm10UURBVzZWdTZUWlpHNDREMHdRNllKalItNlFiVnNSR2NReGtxR09KQ2MyYm44SEdvMnZCSG50TTdEZVM0RXdLUXh0bVduVXdITTNVT0ZHaWVOVmRvZDhzcllzaE9sM2tvZlN1YUxIUkZiRGdVQlZoaHBFV3dUejF1VlhOd2VVN003N0R1dGJZYTFiRXRJY0hneXJjQUJTVW41dlh4cEhhbVY1RTJHczhEeDhYTmlBaWdYREJfbmhFZEdWWkVqSmd1TDg5VXltR0c0X3Z0cVMtN3hGYmtJaFpPMXBEVHZTMm1KM04zNUduNGI2S1FWcUEyWEY5amJwRFF0VFY0bEgwZWhiLUFyeGtGMkJjbnA0RUdNZWs0eDRXN1RfNEdtNzlFb3V0TjJzSW9iSFhXYi14bURJbUVId3ZHZkFsYkc5ZFFLZ1pDT3Rrb3EzUHJvY0hEMVFUTElpNEpQYU0zc1VFNngwcy00NXR5cEFHQ3N2MDhralVkUW5GbUVTYUhTYzJjSE5CUEFFX2ZzMGU2bm1fakRLektON095RkV5Ymd1bHZ5RTRsb2ZxWkxfcnNxWFlPN3lvT2oxX2FLVHhGa2ptallGNWhiS2FjcDhCNWstRUZUWVZYMzMzWG9OelJreDRnOFNWZW0xVUNibE1QOTJxb3BLUklPaWNJQWpmN2dkS2hhQmZTaE04UUt6bDJBVjBVU3lwMkdrUFRja0NrWEtXUXhhbl9RLWhtZ2l0V2w5ZVpOR3BpUjVSUGxqR3VRaVRYNlJENGZKcUdEQWNMSnEwYjZYZGhva24zMHd0Tmktc2J0RUN6NC1HV1ZOZVVBYThETl9haFNaMXAwT1MwMkRkbGVKOG1ZcW5vYThEbF90ZGZEV0xiNDg4WVplU3JwUmV2WlBJWm5OQ1lQUngxTDdxMVVGcWhfajVrQ1N3Q0VWTEpDUFdzaXlKSzluXzU5c3lUaW9DemxyM2tuTVZ2bDBZSnFYdXF2eW95TUZrcDdGdVdBbWtfYUR4eURaYm1mRGNLNVFnM0c2YlVwVXhPQVJyamgteWtreVpfcmxsa1hLUjVrTnJJMFFKYkw5UHBiWFNtMzZVSTFNajB4alVael9IYmx1Z3J3c2lzRUtGcGw0T0k2bUY1cUNLZVAwWmFmaW1nblhxS0d0RW9wNU9kTHNGRXNoa3BSSWh4Wk02eTVta0RZM0FrX0c5N0FuLUxzaVVWdG5IN2NYNUJPbHZIMVktREFGdzhkQTBpOFhPbkJoWnZ4aFZqdXctbWtHWjBITURVS0RMWk5uUVR1RXNnVEpDT1RQOVc5R0xtaGNfMGRSS1UwQTQ0RFVRU0l4SmxEYzNYWmdYOV9XdWxMY08tdjJib3pvLUhLcTB3blN0dmlPSU9YQ21BRW9PWDFodWROaUJmdktBc2NYTnE1bGc1YmtaN3dDR0xSQWoxUjRSelhDMnVsaUkyZ3lpMTFHZU1VanpoU0h5Ylk4NG5vWGpDODNJcGFTX1FTYl9WUFEyeWhMWExVdnp4SHJ4YldpajQ1a1VEMWJEZUkxOHhhQmd4UzJ6VlRVMF9FcW1WaU9wbjRnTWczd2oxMW5tV0JYOHVHUHlkUENhV2dtbFJTVXNxVXVGQ0dYZ3RNUFN2R09XRkl0LV82YzFWdVlzMGJDNzl3QnhwYy1MdENkRXIweVM4NWZKQTE3aktoclFINUJLQXNneUhKbzFVU21FZGMtTDRweWpkMS1obnZUYzZxRHBXQmhSREhieV9DeXBfc28ycERfYk12eFZ1YnBDX3FIT0dlaVRLSkpTcHdmMC1OdFRLSnAyUzloUXNQYnhIeUFlQy11ZThIMXA0WlcwWVVyWGpJRDVoS2pKRzQ4b1E2THBsaEJTWlNCa0xpczRqNm5nV2ozN0dLZEFNN01jNlpKVFZRdEw4RXZjWWNTSUlEN0liMHAzXzBIQzRKX21NTEtjRlZWWVp4TjlvSkVPZWJLUFVzbndwelVUX05KbjQ4VVZrMGwzeGtDaFlEVDVmMENoNl9MSmhSSzY3ckI0dXk2WTY3N2ZKN3RjRGFfWWsxZlotcmVpSlBRNHhMTnNOZ05hU0FoQ2tqZE5Nb241bmlPUFNhQUtVcWdDbkhsZzN5bDhPOXFhcVk1aXk0TzFlS1hHcmY1THkxV0lNX1luNmcyeFg4aF9TZ3hlcTdRN2ZOYlhIT0Ztd1Ywdk04aXhhRmJZYnF0N2hHT1pjWnVQaFVOaVdDSF8xb0MyUHlIUE1IcEtWcWdaOUNYYkdQNmFhY3J0UmpRMkxZdUZNSnNWRVhlN1gxNm1xMDZpd0dLUWxsUlZxXzZoZGtqUUs2SVpDVTNzMXV3cFlGeHdaTW1CQVVCaG1lb2kzUVItQlhrYnc0RU9nYXllQTJkSUV6a2g3cXFOYmNXNlNBdnp2eXd4cUlQT1FTSWYtMVlSRnZfSDBpYXN2MmQ0R0kxNHpDWXUtXzMwT0hqYzYyX0VMLWg4V29pa2Z3cTNXZWZNMTduN2hGSmZzMFNWNTVHY2U3UTdDQkxxNEVkSTlXc0t1MDlxeWhNWHJwUlZPWTBrZzdsNjYxa281c0VsN1RxYzgxNWl6OU1wS3RZU1RlV1lsd3pnb011clJDNktNYmZEV2poUmlldGo0Z0RkSW9GaUQ0dHJGNjZvU2k0WTE2WkNxYkVPMWVKNGNseWZZWk8zbzBwSk1NQ0gybUlwTVZPMkRueGJSSURIOUxiSEU2VE1qQjYtZkw1a3d3WUVoSHI3UnNaMnFFYUdWMDdXcFkwMUdoTWpEZXE5dGI3Qm0xXzFvcWtsdVcwMjZRUng5Vzcxa0RwU0xPNkxia1RWS2xuMlB4VmdZa3F5V0pHNlZUbU81T21fRWxlblhQMmx0bV9VVXN4MXgwdkxWczR1ejlHV1VYTGZKbVlzZnViQXBwVF85anZyRDlkV2xWc3NKdUMwRlVVNWxOUVUyOEJWSXpycV9ublJVRUJjc3BLR2d1RmN0Mjk0V2xFVjZzNFdTSU5vNG8zaVM1RWtfX1FsZEp3c3JKT3ZQS2M0S05OM1F2cFJDa3hPQ2VwZGpZZEMtbVdfMGxNdWVoVzVmcGUzRnhFMGhjeHFrZmkyUXA1Mk5VYkVZVWpPV2JRZ3UySVVmX3ZBMWpIRW9UTzRQNS1vYTBrRHZaUmxPQldRbTMyS0g0RkhwYWpiNndLTWVIOU1VZ2ZlS0dBNWVJRDRxaWwxWURONkRMa1BKT3FkeU91UGdqMTQ2WWJkZEtQdmFDOF9YS2w5Nm5BV1lfMVo3ZTNKYW9NNzhZR2pMaEV3alFpdHlSOElLRTV1ZmFDZHdYMWNPMG5FQlRnYTZPNzFrSEJkMEpGLTQ5X2FPX2RoWWo0WmVLWVNxOVhkQ1NHNGQzSFNxVGVsT2ozX0tzUGp5dk5ScmkzY0loVmJVWHkwcVoyN1NqdlRRcHFEaW5yMDBra1Q2OC13SXMxcXJhazQtcjZoQUFUeTM4S2FrUFJWYy1WMUQxUVppR3hFYUdrbUg5bF9YT2hFOEtHREIzZFgxNVNOREptRi1PR1dKSlJZNWhqZmpFWVNEVUhmb1NHTElNei01Wk5hVUs5cm42cFBMcWZfcTc1dkZ1TWRISzZhcTl3eWUtQTdLTjZyS0xqMlNfclV3RHk4dnBlbFBBTktNTG5Td09mV2U2eXdFRmFJTDRVLS01Z0NvczJBbGd0OWE4QmRKOVpsUDBUSzZEb0RVY0JTbE9VTWNJNGZXb0lDYkhwc3FnS1d3MUJXc0xGTFU1UnNSZVF0ZHhmSFNZdWs4azFWUlNhQnZnSEh5Uk9NemJXYzhSWmJCVjlQc1doaEpMeVpMM3RldzJ0RkhaM2h2U1A2SUVidWpxSE0tYnRWSXFqb3BEOHFDMG90YkNERnNqdXV0bFdVekgxTXhNVFFGdk1KY1Rfa0swM3NOSVBNTnc1MVlrQm1fV0hiQTNZY1V6d3BPd1JNNnQ4YWFVV2diRUkyNm93Szlhd3BUTzJmVHVncjdzNTJoWTFBNVRpMXRobDM4TU84UGNfeTFyYWJBeEVsMGloTUw3VlRFWmxhUml2VW5JS09ORDdXSXE0U2RHbjZzbXJLWW1LUGRFNy1vZzJfMXVhWkJyblRScHNrd1FiZUVlM09tT0lRUjltb3ZmNkRCdlZlVGtieG4zTHgyM2hwUVRRYlpFSTRORFFHMnlzTXcwSnQ4OHl2dEo3NkpwSEFYbWhkZUpBNWI0QTBYb2JvSW80a1JGTjNlUWlCQlB1eTVsZU1qeEZnVVE0N3Y2M0pyNmtibXpfSEVTZHowOGhNeUozakN4Q3ViNWdJVGhtbVdkQ1lIUjZRYjRtWlowMjhIT0ZCNTl6MkY4QVVENXNwU2wyZmhKZHBtUl9aZ1BsaVBuUm9YNGVPU25Dc2ZLTW95X1YwNk1KRTl3VGZPSXU1ME40cEhoTE9qQXNUX3NCSHBfYWJMb0x1ekpJZXdtV29SRThVR2xWVENOX2hJQk1pdWI1V01lbDgwa09nbHJTNXRMZnNCdW1qTTZXUEladUpjRG1jWlozdXpEeFBkRWdHbFZydXE0ZmpfMFBoUF9uNS1FcEVtYTkzZDFaLURCTXU3Wk54QWYwS1ZBOXVJOXZ1WFNQRDJOVmRpMG5QRFFjbFRCRWhKYW8wM01uc1VGbkxBNVZqQlJnQVV2Y05Cd3ZlYzRfOE9WMDJLRVRxZ0hMZ2tzbkIxdU1jZ0cxYnVQWHF5cmJJelN3WGJiTFViOTFWSkZERl9ZNGFTWGhWR0kyUzFpdGdZOVlsYzl3aFlJYU9pQy1KcTNiRUZiVnZiZnJnemMwOUtiYl9ya214ZjFpWDVRczh0blYybHpSaVB1eExibGx6dmlEYkM4ZkpMRE44VHo4NExMa0lMZHNmdjBHaWtkRThSelU5cFNnMVU5ZURUT0RnVktDRmtzaXdJbEJ5MDRqd0d5NnNwb1BudUxweG53OWhKQnpUc0M5dVRUTmlZeUk0SmxpdWs4Z3ZpR0JTT2lMeGNiRVlXTGFpN2NNQUYtcnI4VTYya2hDYlZZVU1mVGhnQjg5aklmNlZSa3pVSGs0QXVSR1k1QnpraWxBcDhHeHg2M1RacnVXR3ZMa1FKek5wNS1PVGN3V3hEN2N1VlFULU5icVNZRmZYMnZVcEt2Unp0WjNxeTJOMTRIYmdIeUZMYnl6SVVoTXdiNkY2M3dwcnlIN0hfMHp3OGRfb0N3bWVCMVBTQVBUcFhiYjhRZjluQlRXbjFCWlBMbUNVc1ZCaUFYQV8zUWp2SWkwUXlrN3gtb3BGc1E3OFdJUVpadkhsb0NRNWI4UGd0bVdaNUFwVDhPc1dXQU1sYkFzdXRLdXZjTFkzbW9DeFZIOGxzclZxOHVXSjhlQzgxUV9uOG5YNGFqcnZiNm51M2ZXTXRDNmxFeWwzSW1JSHRHd3lvVVZOVW4xZWlBQVpnYzdiQUlnNlBoV1pxS25DMkFyU19lbEVheVFUd0ZTWWxrM2Zjdlo4Z3RMOHB5THY0YkpEalI5NUprM1g4NGJEek5uSndfY2o2Y2Fqb0F3WW9nc3RRZFRnd0pqTU1WaU1Fa2hraVE2SVRUU3lDNUJmOTBCa2VXbWZwM2N3Y3c2cThwMG5NZEdnMjNDc0p4VHNla18zbFotRS1KcHZESHJnVUV4d3g1Z3lCVy1STjdrX2xnaGd3OUw3QUNTbHdGb2pHVzlZSzA4T0J3Tjg4ZEQwLVlmMkZSRmFnaFVQY0RfWXhmaC1qNDkyaGY1SnE1WWtyOGJMZENiZjdBTGgyeUp6UTRoUGREMDdnNW1uNThnT3ZMUWo4Z2tvTTBfMHVGOHBRaHpqenRjVlRaM2NBNkZobEI2a0Zkdk9OQXZVLXI5YkpFb2NOaW5fRTJmb1B4VUxqOVdEdGxaX3N2bWtEVzBjR05fRWRlR1dKLXhLcTdWNDRzck5vd0lCOEprZHE4dUhZXzFadVg3bWV6MHNYc0lNSEFFSWhkSnBJelpYQzVjYW9lTDRfalVxelB3dzJzMG1IU29CSlpQNjNWODhFQVpMVkdtaklwaC1PTkhQeU9QemFlQ21xajFlTVFaODdJSGNhYm1yUGNaWDFITTVvRi1meTZ5RFVzdUJyRkx1dmRyX0VJQ21TM0sxWEZmWVhsMkZCU1ZsRGNpUDJ0YVF1RzR0dHhjaWhoRWpERDVDcEZ4S2dha0lRSWc3VVFBTy1rUTN3THZHdW5CcG4wVy04eGpWRFBoU28zUUNOc29sNF9zWnFqVTBoeEVNTVo3YkVxTzNSVDNTVW1OM3RjdG9LWTBySzBxZmR1bk5iSXNjdG5TcUVPYzg3dWd4VTBXNHlQYjBNOEoyQUwySkV0bXlRZmN5RTBDalkzVjVZMjNlN19UVV83bEk5alBTbnhvVi0wdUhCRjZ0Z2xYN3p1akdJSG82MU5CMHo2MHpXZ01hYklqd0Rha3dPYXV2Uy1yX2RqbEZpeUUyZlJvQnNPNDN5WlI1OGJqcHhpRHJxOWdnMEtJcktBQ0gtWjliTUdxeFBIbHVrb1FGeHAtMWszQjdndE5GdGh4dEJqMng5Q1FBVUJwMFNZYXRhUmgwVlBPRGptMWhLd2FUTnUyNDlxZW0tbERiNTRhNFplaGZqVExkS1RoalFiMktwY2FCbVg4ekpQbnRhVlA2MXdDeVRGVDBSN2RIVHloZUhfS0NYbHA0WDN0ekdoRTg5VDVVWjVxVEZJWmNDR2I4YzM1c0pjYnh5bWZ0aUJJd05sUFRlbkNid3dfQXlOUWhreG95Wk1iai1lQ3NBN1M4V3FaUEp6ZVozWE5iV0ZJeS13S3hFMnVyTTJKRXd4eExXRllwOFQ1cFBQQVF1NG1NT0k3SDlfNzRTcWpMRFpCU1Myd3dUdU1YZW1aSDJuWVI0WmdCUF94UkZENzYyM204ZzRuLUdNNGhibVZPMW1LTllJbDlHdzljbkpQOHpSSWlNbUppWEdXTjktbjRPVHFRWExFVnlKbnlUQ0RCMzFTSFctTThyeUJMemEtOUxOdFZhUzVTWkM1UG1vem9EMFZyY2hFVEZmelhwREJfZGYwNk1aYS1icEpBQklTVWJidi1hM0Zobm9JUU0yRW1uT1N2Rkw1ZFdDRlZMcXAwREJOZEVOS0FiQmJaNGdaaGNEREVoSVQwQzh4dWJ5MjN1MW55ZlowRld0WXFoTTh1TS0xVzVOTlNLZGkwVFVhQ2d5OHhBdEh5Wk9YeWgzVFRMVTh2ME1rbjFRRjh5ODRsOVJlejE5VTR5Z2JqX01CVUJreGYtNnhpSFRVQkNpQmN1UnoxM1pSTkVMNUFzTUZLalQ3Y25zRDJxNS1fdDk4dEZ3SmNQejBTLVctbzFtVnBRSkFjZWZ1ZXBRcUdvVzdLNWIzMWFCVHUwWVc3MTZCeW1pSVEwTU5VdC1Cbnc0VTZtdG9wWWJVRjExVXhSSHl2R050dVVUMlp1MDFJSWlKTVRvYmxoZXlYQkFraEVUaDJTXy1Cckc4cG5oZWFZaE94a2wwZE1nZy1ISlJ6V0RXSHJTZ2tUN2plaThNNnhOY0Nwc19veC1kNkdsX1FwYnRkRGZWaGQ3clRaTzhCNTFQSVN3Yk9aYUhkZHotRlhUZmd1c3p6S0RwZmtSWjN0T010VFJ0U1ZWR2t3eG8wRWdfQW9iRVJSNnBBblRfN1hZQmpFWl9BSVVwQkhmYldjZENyUkN5YnR4b2VUU0RvS0twblJkV0E3cnpiLUtDQmVzNG9mdWhicnNldEdWXy1rT0dLc2FuT0lPbkNPQWdHc2VFb19NTnBvZVpjWmd5QlRlaHFmNXlCQ3FZN2FmM2E2Q0F0V2hfSE1IVzl4cGk1TVlZVk9sRVBWWHZHTFp4bi1xS2hzUDVwM0g4a0VHam10d21CWGFuQVhkNE1HemZtWnA2UkZ2d0VIaFJHNFJQQkZYSkZld3laMW1oSzZZVDZXYnpuUGloTC1PTjJPVnJEc25CSWdEUGVtclpnaVJIVWdnMkk0MXNnX1RMWTQ2N2NYUm1JZUc4NWpUTmRieEhkRkt5UWhNS045UUVBYXhDTGJsaF9FZFF1LWJtcnFfNVZoRmIwSDlocF93S0M2bFlOM3BFR3ZsajN5QzNIYU1LTW8xSVlBTkROcmhGM096U2VHUS1SWmZHeFQtZTNwdmRzc2ROTHE5XzNrdWdGZnB5ck1GY01iMkl5MFk1ajN2bF9vNTFvLVdiYUN1Wl9KZEZfb19JZV9zZ1ZnTUhoTVA0elIzRlBEVjVjVUR0bEtWWldSa25XMTRaZ1hnbFNRRG5kSG5lbmpqR1N0WkZnelh6c0FqX2xibm5BXzZnS2ktZHQ5SXk4aW92cFN1SzhTMmMxRFdqU2xIQ1FMS2tCdWR0REI4RFRaYjZneHJCZ0piNEpFUWp1LV9mUXlPR1NOellNZ01ISHFiVTVVbmpxOFVlQkFlclNnQnEzTWRza0xRNjlRVS04clRZbGszVEVLeFQzS3hhTUx6MmxWTkZSMzRkUDl5Zm9HMnZvOW9PS1VEb3VUaXRwNkdhV29Vdm5jWkdDME52bktJaUIzc1NiQ3pOWFdWbFpDWDhWdFhRQnB4NV9USDNhYi14bUJOUnVQMUZ4dlExNERsanZHQVBOM19DcHhxaHAwTmxzbk9xNzlqYmV0TmtqVHVrUTFZLVVhS1lUVFZOaTlQV21CbWJJTGx6X1FfQ21lSml1M1BwVVUyM28yNHlkR0JFTzZNZFg3aldMdHp5c1hxSVJyV1JUS0g1dG1rT3VwNlQzck03UGotb0NNMURacGZHdFUycU9aVW5hZF9TNGR2V3RBT0EzMVVsLU1DQjlLLUpHZEhyU1NKS0xoODNqM2d1ZDdoTUswVFJmYzVXLWdaZzdiT2xUc2EwcTB5anVKTzAxYmZQdjdQTjN2cTRkT1RabWluNnBJMzJSbzBTQU5NZzlBRkdvR1g3TElaR0Y5bVRMZkZGbkJTUlctaW5taW0yRW1NR1piQV9hNUdvTWxOamhmV2JvLW5aNHZubkI0M1NjZlNwZnI2LWRvRzd2VUZzMHlPUURuM0VvZF9ZcHBwUUwtLWtKR3VlYndlTVk4ZmdtVy14NktjRENjSEl6NU04MzhROC1KTEpPNzVLS0ZqREZGa3JtTGZfTGF5ZTJuekpKVGxhN0NnMUMyWS1kMFJGZnd3ODRHb1JjaGpVS0RPQnlFUDVlNzRpcnVSc2hjQjl4QVUweFpyZlIydmdQM2gwbG9UYjJ5UG9wekVwaXV3N01XZDA0eGhsMWhJUm1haXloRFMxc3R3WFh3aDN5SlNuWE5NMngwdnY5bGpQTmRDTzBiQ1lyZVQ1SXY3eFp0WEl1VW5jaWI3eldUQWZNZHM2cXF6Unp6Wkx5YXFTT0JrQkxJLW82R05SMm9PX3F6dTZteG5tMlJGOUlMcEdxYnRnZHhYTTdScVNkNVBEa1RfVjhrVzdOOXlfTUJuc2RpV05uelo3WndPNldrUlNvbkJPc0licVFVS3NXR1dUZ1E4ajE4dy1hd3hnWVJNQlhrY3lEakt5S0piMjZrWjhnRXNlcVQtM3RPTHdFeGM5cjh1MEtLT1M5YlROZDF3YTRFTWZHMEhFeE1SdmdqQ2N5QTlLa1pnU3Y3eTlNRm1BS2k1M3FXNnVvRHRfX1Bwa0lFLVpqUGhLLTdSa3Y1TmJUQnI1bmctTlR6ekFHc2s2enVPdnBpU05JSWxBRXNlUUJERWNES0c0M1Fsa0N0X3g0VmJ2QW9kQk9lTVJpZWNMeTVtLXo2SVZyME9xX0Jnek16ZW85Wl9xZFhWdFZobTU5ZkhDek1rcEM5WEN2dTVXaVU5UzhsV3Y0VmM1STZXa294QW9vZ081QXJFVVV4T3JsMzlma0ZpR2FvUmNBbWM0dG81anhUUjhuWVJXQ2tFdUQ1dEoxcFFUNkhpaW9XMk1OTXR0OExMTTFpeUMwejI4bWFlcmdBZUxGQ3pTODZ6QnJybXVTWFJEQlhhaW9DWGM3VkoxSEtmSUFYcDY2ZEZ3RjhRUkdUOE9LMm55dlZIMzlvRWhSX2M2T1NiRzJvYkxTOXdWM2RFSUFiY0RhR3hjVUpCU1JXeTdUR0ZhcWdhemlwRVRnejF0NThlNUZhS1AyUnoxMHV3LVRHSWN3VVJtRXhlSzVnbDZJWWdMVThKYmVNdWtpbTM4dVFXaklVQXEwOWhva3RsRFNueG8zRFg2STJjdFYtRk9xYk9rX1dLRURHRG9aRG9neG84UFNELUJWeGJrQldRZEwtTUNENUpzblBGRjZhLV9BdFBaWktKYnZoM0t5bWQwNXVfbk9qTURUdXFKU0xuNUV4MjFPbXAzQW9WZlpNYVlTV1hzaXpOWU10cEVReEMwbWp4aDFFLTNmRm5uOE9GdzVnTXFXNXN5d0ZHRklYcUF5MFlmc0Fsb0ZBTkstRVZvVmpCbjY0b0Q5X1NsNVBwZmxFZVlaSFFRS09IRmxWazVwdUhlZHdpckNfZGhkdGp2TnV2ZlNSb1BLU0VJWGxnV2owRHRrRkFiaXJkd1FNTFBUc21CT2pOYnhSWFkzVG9Qd0RSZGo3eC03VVJxY2Ftbjh2VW9UT1MxYWE4WVRMNm5FNVhsVHpuOW01MEh6ek1Rb2tnemcxQlFLSjRsMFJkbWw1a1RiX2tTRm5XY0hobHp5UGt3RUxvZnZfYnlBN0lSXzV0d21LLUZGcUVsYnE5WW1IaXNrR1BWMlpHTDFmTDFGaU1RSmtxLXNzeFlTNjZJRVZ3b1pCaGw4dUZJbnVidXhFeGJaSEpTX2xQY0pLTnQzcExWazJJSzJpc2duVFgwTnlJRWNzMG9pdDlfQVRERUJ5OHZwWTYyTjIxYk9la1lJM1o1Q0pleFFpVTc5VU1wektndTJvTGlaWnBaeXJ4TnVMa3BWSzJpT2toanNaN3gzNDhRdjBSUjdRN3p1aWM4b2hnbWYySUs5cjltOW93MTg4MlpRNFlETTdlOGlxc0t3dkZkOWZuOERlcWl2cmROQUhRcjFlQTZnN3BVSkpZZTNiUDJKLWpGSnN1azQwWXBFUXZVdGFaZjF0cUpPQlMtWlhvOE00aGEwUE5KTWx0bFhmZGJub2x6aHRnYVF5blR3WHJBRTBSZmtnWjlMaHFtenI3ay16TWEyM0t3UHdncDJmUGgzSmV0Z202Nkp4eHBnVjQ2dVl3UTVwSUFibll3MDFOTUxFTXlQaUNySlFFRWtwaXo4WG9hOGtJMkdRdkh3b1pTYlMtNzFZcHMzQ2oyLVZkRTBNaV8zUnRJUEZyaVVTUERfS2cxQ25pQlduN0IzS1pUYjd1MFFwOXl0VE1TdDNRbUNwcnR4YlktVWFwWEtESUYwYVVCN1RPaDRuN2lFZ0pQYzV5M1A1LVZkQ1VxUHJKS2VwckUxN3AzMmFyWjE4VFFwZE5rRHdXRWJWZFlMZDNvc2tTdkhCMHBmbTFablpMZzNpSGo3SmxFX0VsT0RIOVQ4MXRBS3ZyUFlzZUJsWnZQbEdUbDdRN29XN0tSZ21zVDJHMmlqOW11RlVEWEoyLU9ycFhHTWFURGxpdGNhcmpXR0tjMXFJRWhzQ0IybjI3LUlDX2FnbDdHbG4xUkdCRC02bEZGQjFuTVBWcHJpVGljQjA3THJZblNHSTVRdzFpY0pYNnV1TzYyOHRTMEh6Z0llUEdRVzhPMEtyR0xEZkktX2ozQkphbEN1eEpMeW5sdmE4MDVaWFZ3RUdCcEcyaGFOSlVleXhJeWFSamM2SGdOZzNHXzNIbFItWXhiUjBfSmtEODJwczhfd1VmZTBGOW4yYkUzWEVNeEd1bm9rbWdWbTdxQ3I0TzNxQk1HZ0dvN3ExNFRVTGhndk9GeXVZU3BKdkJ2a290NVptZS02SC1idVYySlVjNENQYUN6Y0pFSnB6QlNmTnk3eEFlQmNvbEN4Q0w2MzZDZS0yeUFGVTFFdjJ0NkN1U1BHZUlyY0RrRlUzT2RWOWxvRVlJaG5nNUdEdDdXUjN1RDJsRkh0M1dWLS1ieHkwSFU4YkZmT0c4b0hoU25NN1hsOWtGR1ROWUVxUndIUjk4eENYeXVlS1ZEMHVlN0ZPNnotY3dxV1NxX3BFb0ZUX0V4OFlHU0EtS1k4N1RCRFY1ODlYSEdMYW05bm43RXJybTdNc1p5Znp4V0NBb0U4YkktX0hRN3dTLVVTc3JuZkh0eVJCVkRMcHRSUDVXWDhTSW5jekUwbTFsZFdRUFRZdDFZTVdld1M1Wk5GWll0SFFVSU9FUzNRVlZ5dWlrcXZQczBQWE5Db1p1ZUJoVVViZlVab0E1WFpDTXFYWVdsQnBUMzRVWkRTV3RxUnRVcXhjZlk5YmpvNzZWNjRfSFAxUHJ4V2NQMFZFVi1QVmhxTE55VmRZd0VsRTB5YnlyWlNsRjRwVlM4VTdsd1VlS01UMnpHNWVDLUktakxpUEU5S1M0eWU5WEdtZjlVZEZjd1V3cXBiMjl0cVFFdXRUNFRmUU54elM1dzFqblUySF9BVmxvNm5LZGJiLWt5RjB5WGZyRXB4VHJtR1VSZTRqMEVzMHBXbU0xOVZxY05yeDJDczh0UDlGTlFxNlptQnJ1QVY5ajE0SlpOdUhvY1ozMmU3cTdsN2tfcWlseEtDN1hjR3lRS3U0YlpXdS1qWUEzdm5OSDVORnAyaEd4aWFLVmRka1pDQVlTUnBqMHVNZ1FuVGNEUkppTTJoV1piaGY0OXBUaUVwak90dmhIbHV0WDdYdmpnTDVZcWtVRzNBbUZVelZIOWs1QkFpUXo2VUtwVVJjUFVNUnFPTG5fbkpMd0VsY2xKUE0xYldZdEhZNHNTdzl0OTMzSjZxdzdENFdNRGJRLVI0QlJubkxwNUZZRUtSY2Z1cHVKWWtxV29xd3dQUzc4b1E1UmZfSF9VbVlBZEFOUXhsLVU0MUw5RTE1TEZqaFBsMUZObFhNLUp5ZVNJNjhlbUJ1NGNWY1l4d0oyMGd6Y2NuSWs5UEtjdXdUWE1IUjVIMmNtZENxRnVBY3lYUlJCaGhGRVBfNjFmbmxnRjMxMFZSdS02c3JmOVhnTGFuMEdtaVNZSC1UaVpmcUFrUjItRVlvdWxFUG9UWUw5OUhTekcwQTBveXhpc2YyaER3Z1NxNDVpbjJaTU9BQnRrNGpGT2ZKQ2kyOVZxMkV5YXVOQmRodkFQeUVzVHJpcV9ydHZPN1phUUs1Ulc3QndPZ0RsY3k5b0ROcmVfRG5mZm9jRUNmc3hMVndab0Z0Sm02eUpoNmU5SDVTOFdMcmF3MEhDTklaR2QyaWNTUTJEMG5oMjh6b3JSY1lfanpIYjBwX0VIZk1iNjhxa1hoQmREVE80ZVQxeGNtRmZuUXRCQnRCMVJYaEd6cW1MRlhTUXJRRWxHWFY0czZxNWFYRlJQNkljdGowQk02VkxHWXVpOUdZb3YxZEVrWVRaS3Y0QUtnQndySWRGazl4N0hOT29YRm8yRlgzY0hWTUpWU0hzck4xY00wekN5SVNGdDNkaHB4TnVsVHY5TkdfQWZmUUg4X3NQa05Ua1R6clcyRlM1RkZpTjVrQXJLeUZRRGlWNEZHZTRxWE5WbFhfOURtLW1Hdk03Q2lPWDg2Q3Z1OEg2c2JEckxFR2VxdVJFSHdxaE9DYnR1VDljczNIYlBsbDlvODhxTkw4TV9CSzc3aUh2a0lSQUc2Qkl3Qkt5ZFo1QUNpVnh0NVhIZ0tEUE05a1VaMTdLM3FwYXFUblk1YWw1QjF3bXVYMkwwSDVGckxxQjJTTFBPUE9zcU1RTlNidGExQXBkai1KMm0ybzFWY1JPaGhWeVJza29iLVNOUDd5WGJrbGlUOWJTSHl5YzFvbzFXcTZKYnNZd2hwdVI5aS1YX1cwYkc5M0hyYS10c2pvYmZPYjFBeW5sRXotRGpqZXl1eEt1UGVtLXVvRVlTWkZfbXRsd1JxbVNFSkFwWmlxQms5VHFTZW04LVBCZWxRR000MVhBOWtFeHc3cm41anROODZEdTdUX3JvRnRTWGxpakFQUm44ZTI4XzcyNEwyTWtrN3FPREpLMkg4Mzdvc3J5bjNXRWE5MW80OTJuTS1BcGNTZ0pfUUEzbURqUTJtaHZNVElPakh5TFRCZlBjaW4tby1UQzRhc28wdmpJUEhLZ3pUeE5oWnpYNHMySjFSRF9ldW91cHhfNXhocDdCTDZSTWt4eWVMd0o3Y2VwZFhDVmNmdzdzRDEwQnlyVGVtSnVoT2oxaWhrc1lVUmdEZFI4M3pweFl1Sk11a0ZqbjlxbEQ2a3c5YndNWnRpU2h4QjFZUHNuV1daV3U0TXFsVTg3SldZQzlEMzFUdXhiNFltYndsd1RsQTV6dFBTS3diTk1fYUI4aXZVUUhUazBPdFFwcndXMTlCdU9FbjFtWnpBYnJ0WkUyZ3NFQ2w3TTREWjZWR29nMGtza3gwSUlDVks3WkxEQmZRYXhIWmxFOFk2SGFCS0JrekhKSHE3MUNfcnMwcEo0UWZRV1NiNGdkRFpIeVpWY3JaNktPbEZsQTBma25LdEN4YnpjM3U2TUM5enFXa1ZYWWZZeWVvM1JSNUg3UVJZaUJqM1R6SjJVMVF4U1VqQjZyU19XeW9vWlhnNHNyeG5QRWdKak01TTdfMC1yY3NWVlVVdVNzT2RXMXFybjRlSy1Kd3Q0elkwUHhLYU5wZzRkMTFLUURIVXJkRjdPbnd4UmJ0NktLSFlGYW03UGh0ZVozV0dGbnBIbktzdHJYOVk2bEREYjBTLW5KQ3o4ODF5cUhUSmZ5YkhfRWFxS3R0ZU5ub3dDc190Nkt4NTVBS3o4c2VaU1psOXJnb0k1V0FrVkR5YmlfSlFFdTJnZnp0YzN0M1hCMnlTVDg4bl9BcDJNbU80X0V4QXBoVEpfNzdrYmJvWkl1Yll2ejA2Sjh5ZjR5Mk1yXzgySlFLVVBQYWhuNEozejR3eS16d2EtaDFLRkkyZThQTDZzODF3YmZ1QndrNlBHNFItZWg4UVhybEJrSXVqMkJ4eGU4VUZ3VUZONW9kbzY4VC1SWTF0bVdPRlZndnpDUkJKc1Zjb3htLU1CTGZsdW5XbTBVdDRvd0F1MlRKQ3lUaTRpWDhIM3E0X1lQTy1zMXBiQnRRaU0wQU01azVFNkdoZlc3MS1lQjJ2cHMtMjRORzE5R2gzTEhvTzNlelJtWmhwX3k3QXYxV0I5OURrbmJ6NXZ6dGxwcW92Y2hNNWRDOFNQalFkMDBDRW5NRmtwaVQ3SDZZTmFKVG5BcnVoanhTU2RKLXUxSmdGSE1ObzJpNEtfR0xxY1BlSGlIaTlPZDM5S2NGdVNQeHAxOV9wc0Z5bHRzWVp5cXhoNldJSG55bkRvdEpiOHd4dFU0bk1FMWFvazFZNk9yc1FUeGFtNnBFQnludFljbzFoLUlhanZHSGliWkV2UGdLNjgyc2RoZ295RjJ5OG1na2JTNWxHVDd6U2tYWm0yeUZwOGk0X0tVUnlYWUtqUndFZWdKTmktQ0gxWWs3ZHgwbExOaElOVzJEWkdyN3RFd1dOd2tFMzFHdWwtaXZWZzdGMTNMN2xXNW9OWTk1WXFXQlh0RzBsRHVoUlduSHg5dTNWV0twSDFmT0xDcnVIS1VXdzM3MmhtX21KS3U5UW1tQjNrWDF3SURXSkQ0SnFfeWlaekMxWEdIOEFzRmJfOFhtTGo3YW1aUmRwRFRRSmV3WlE2NXFJem44VEx0ekFhTUktUUlQZXJDSEZmeDFYWW81ZUpWdHc4MWphVHFRQWJCLVZ5X3ZXMG4zNXhUVklEOGdJUlpYakhRVEg3YTgtaDY3ZVFPdUNtS00yR2NZQjlFSmNRLVRPdUd5ck5Cd0lBckNxSGxDSzF3SjlPZjFYMjQ2cjY3dnd6MkJCQUdRWWp5dF9yZ09PcFFadGthV0pMd25ncXEwRE1pYWt5cE5LSlVJbEViX3ZkUGp6SFFKMV9IVzlMSFB2UWVHUmVJRTY2YzEyWlBBTm5tcndDaXR4M3hzcWNJZVd2d0Vya0ZzcWMteUlZbFd0V1Y4ejVmdklMY2JvSWRxVTJ4c3RqR0lvZDhudEp3RVRMeDJJQTZ6TUZHZ2E1UDZkcVhiMm85TUtxT3U3Z3UxYzBUaGtjVzB1QUFSb1F5ZzhDcnMzX0VfcC1YRXpCZGVWNzBIWUhXNk5CaV91OUVfLWVKVm13Vl9RcmJxanM4bEJxeEhsR1ZyUHVIbjd0ZU1ncXk5cjY4b0c4RVZRRFZUV0tXYWZ1U3Q1bHJpWXlTMlk5QnFqbXduUlBFR3lqTzJtLXVNRTRHQU84d0s2eFZVeWF1emlRQ0FyLnN4blQ5QmJTbklGT0RKQ1Y4WGR3RXc"
+ },
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/testcert/21983500952149bbb3129b0c60e367a6",
+ "kid": "https://myvault.vault.azure.net/keys/testcert/21983500952149bbb3129b0c60e367a6",
+ "sid": "https://myvault.vault.azure.net/secrets/testcert/21983500952149bbb3129b0c60e367a6",
+ "x5t": "Z-n6Mydb08bmyOgk7bmx5HT8tyo",
+ "cer": "MIIDMjCCAhqgAwIBAgIQGn/FrGQZT/Cd9kgXIsytEjANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDEwtleGFtcGxlLmNvbTAeFw0xODA0MTcxODI2MjZaFw0xOTA0MTcxODM2MjZaMBYxFDASBgNVBAMTC2V4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsODIu9EJhfnn57k4++j6dC1M6Egi9aZucFQ9Jc29vFG9L9BkzllPGluKKdH1ypsrAUif7yGaq5d1nDyLhZUncU8dV/YIA7oll/fC+d0H4A37kVbM/60zXhXnKRx+DRZ2hJQzNBOodCaZpyZZEuYvtWdSCSILpa0R7yXYevjLaG5LfckOzuurXqeos7WB+l2q1c+6zx1KbNXbBl7QOz2nzk9oJU7CdhPOc+LOLppmsXRwwluKtmCDyKdrKAF/dANp5zGXFsognQcRctLSGQp8FbgBVQyZ+v81n9bPpSaBoUQMcH4uG9jPO6CWwbDSWE+FVYAm5kgjuW/1hqRSnOEV8QIDAQABo3wwejAOBgNVHQ8BAf8EBAMCBaAwCQYDVR0TBAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHwYDVR0jBBgwFoAUaYJoBFokrORdsxOTA8sgrosMOmgwHQYDVR0OBBYEFGmCaARaJKzkXbMTkwPLIK6LDDpoMA0GCSqGSIb3DQEBCwUAA4IBAQAxL3t0kV1dq/PGUztjW+qK6Nh4sx7jsU59JtjON6zcibJ4hM+Q3Z+cEvW9zuGkuTbLz6fKNL9VnkF1LnlWTsyRmS7bF15/7iOgfdrr0vkJKVM1Zv/tqKEpBJ7Cbc0vW/VJQxZN+OlqGNc9bcx3cnqkRwpkgM25T0dVpoWtCgMwayUtbPFbTZWHHbpzHLF2BzYf5HyW1BoKXcVPM3r/rS7RETasRRsz2GqXXdfhjCd+HKVyv5kD9N3WcFNUsaq3TqAUZyOx9bO0Cn3gkmgz05JpfhPEylXwVpVAccOoXsNoFdxEKGO0w7pk7PwOhsW8sFprdXWp6OxtL0rrCNFF/llT",
+ "attributes": {
+ "enabled": true,
+ "nbf": 1523989586,
+ "exp": 1555526186,
+ "created": 1523990186,
+ "updated": 1523990186,
+ "recoveryLevel": "Purgeable"
+ },
+ "policy": {
+ "id": "https://myvault.vault.azure.net/certificates/testcert/policy",
+ "key_props": {
+ "exportable": true,
+ "kty": "RSA",
+ "key_size": 2048,
+ "reuse_key": false
+ },
+ "secret_props": {
+ "contentType": "application/x-pkcs12"
+ },
+ "x509_props": {
+ "subject": "CN=example.com",
+ "ekus": [
+ "1.3.6.1.5.5.7.3.1",
+ "1.3.6.1.5.5.7.3.2"
+ ],
+ "key_usage": [
+ "digitalSignature",
+ "keyEncipherment"
+ ],
+ "validity_months": 12
+ },
+ "lifetime_actions": [
+ {
+ "trigger": {
+ "lifetime_percentage": 80
+ },
+ "action": {
+ "action_type": "AutoRenew"
+ }
+ }
+ ],
+ "issuer": {
+ "name": "Self"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1523990175,
+ "updated": 1523990175
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RestoreKey-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RestoreKey-example.json
new file mode 100644
index 000000000000..b1caca2ca419
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RestoreKey-example.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "parameters": {
+ "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLllNSVBfTXJRcTQ2X2ZwRExfSDNSSkpzSUotM05oeUJkMXlrOWJCS05JOGdnTjMxYWg2cWVoY1BISExnSnJ4OGprQkxMWFBxcDVmMXpsaWxfclVrLUtrT3J5YzhaSTljc3NNNV9TeTN4cEk0Wnk2V0ljNWNqUFd1R0NDbUJwQXlydEdPVnpoalF4bzNyVFcxRFNxZ1pVdnI4VEpseTJQS3J2aUlfUmduRWQ2LVJWS3V1Vk40ZWZWYUs5WFZUbW4xdmZ5Z3pwVHJfVFdDOVBGbXpoT0p6Z1U5OF85X25WcldWSE5TMXVMWEpYbldoQU9mUll0VlJORVFJRU5lTGMtZzNjTXJLOTFzNk5XeE5xZkZfR0w2UHg2cVhHMldXQ09nMzU3ZkJnT1ZTdERLaVZINk4xTWVkUTVwaWFkeHhUVDZMSFpva0I0eDFKbEFJZkxfYlU2OVBWdy5GOVFiM3RWbE1LcHJDS0stWUVpODJ3LlQwTVFpYXV3MGw5TWJfRFdEY1hvbzFqTjZJWXU1OVk3U0VMMm1ndFUweDNYTDl5VHNqZUY0Y2I0NExBaF9vUDdnbUgzbjdKLVZEX3hKN2hXY01XNnlTNDlFX005aXlndDlTQ2w5ZjRTdWtpM0NZdkwwUUVSVFlLSW1qMi1BRkRMWkl3Tm1HYmE4RzhheFBxR2NOS3NSZ0daZ1lUVG9pWUxxQnJ5cmJ2TEp1ZENxZ2plUWRpNU1tdHlQRnBhZ0hwSHZLa3VjRkdwLVhtSjFLYk8yQTJRT1dRVFFaOUNlcmVCcXJDbjI0SXdhUXJVQzRyTkQydzBVQTFUY3dFZXVWQkdFTGRKWm9zWHM2Q0dEZmpaSHFjdnB6NzRKd3g1T0VpcV9EUHM5VEtya01ob3djRXBsWjhaSk1jTlFSZnU5Sjg5ZDdZWGdHZEI1aWtKenA1WlY4OXcxMmIwekNITllKamdkZEhTNjJmalZlYUUxT09QXzd5Zlg1dEpiNmQ1QVhpZ3ItSkozbGI3Y2JhOXE2NHBsYmlhck1LemFiNUhtMkxNRnVLQnI1TmFrbzVQMDBoUUJnR2M2aXBJSzhNT2NLc2RhQjJGcjUwX1ViNnJEUzA4NnUzNy1DSHRGRnF5LTFBaGlDaXhRakNNTF9rWGtJMHZEYmJqRi1feGtNZGFCVi1BdTc5TzZ6V2pzRGVlV0t0VXZWUW5CMGM0Qnk3SVdDTGVWdzIyaTA5WWk3MnpCcWZPRjRyTmd4VTNrSjdfLTVib1dteVlXNndNOGVzTjR4R1kzUGhVNHlLRV91RGc2dk5Od3Q1c2NXWW9TMHh4NlBDb3M4S0R0Y3ItVXlwUTkydGhVX0ZYZ3E5U3RUWXEyWWdWV0dQbnM1Q0RMT0RBSi1sMTFJNklpdGxQN0hoeUxvMzlqNzdpV2ZUS0RnTDVrcDdEOUUzX3FkUFprdGpWUER1M1pRY1Q3MzlOMnp6XzFrWHJEb20tNlBQcXdWUzZtUXpBVW1xaXhTaXZjcWJxalpJRnRPbGxLRkE2cWVyaDJlU0FZelRNU0N1d0p4REJSQjUtbjBNUWxJSGpDMTdkTFpoVnFEMVNiNlBycV95OXN2Mml2V3E5TGE5R2ZHbEhBNlZZM1QzUWRTQ3VrWVJqWFhxLUItTm5WZGhGTVZhbFZ2b3NySmZuSEZhWGZMaTBnczVVOUt1NHlqRDdRb1cxeVIxSVk5T3JaNHFSUXdrcG5tOU8ycnJIMXBtX1hTekxRVDRrWmNLYnVneHNvWXRsRE9TaW9iS0RYdTFNdENxdkRudnh6OEZ3MUdwTXJCdUxrVlFEVmVlUDJqNFp3TGxPbkxUTmk4YlNjTm1fN3ZUc1RQbTRJRDltanBXSThCYXA4M1RLaTNkelAxazFpM0dncnIxSEpVQU96Q0NjUTRnaWxES1o4UkVsUWUyMUJBcUo3eUVublZsdWN5RzZBV2E3dmlZWXV4eEJIa0RsN1hHZHZYMGpJMjZyd2NTX0ZIMnlOaWFmZDN3SkkxMzQyWEF2VDdDUWVoOGRaZWRKU3FYUUdqQjVCSGF5Vl9vZnplVXBfOEhqRkRoS1VkcmNJNGkwa0ZwcEhkUFhNQXUxMjh3RHUyTG5VenlNNEpad1NJdW1fbmpiUTNJU1R5bUVMTngzd3QyV1NFT2Q3QUt5S3lCNEJzU3NkUE1HZXdLSTFnc2otSENFb05Cd3hQQkF2VnFDSUkzbGY5NG0tRU04LVh6TnRCVXFpT3Y5ZERCa2d2ekptSTlrMk9fVmpjbUZrbkdKb2kxVnpZcGlRVTRYbElaempDd3NDRHFrYWh1YmNxWFdyMDhVdFBtV0hGRXk0Q0tvclZMN1VIaVhsVnJPR1VHdFN2dWN3S2RjS1RPeldsUngtRGNGMExDek1kR1p3Y2czZWk1bWl0bFliRjJVbGJOMmJaU0NQWDljOWxFU2RBUUhxUEVsNXJhVDY3aDlWeGxPc3doYW54SkZvNGVuRENaYWZObURGRzJMYTY5RXFCVjZLTHowXzR1S1pDNW14YXZEazZXS3lmb0ROeXFzdVZMdG83WXNqUk4xNTJYMDVYSEhuRVN6NG5lM2MwandXYXo2MFpJR0Q1TUhNUUhQeTdPNFdnYWthVnNKZU9mYUNza3diYjQ5cV9tQnNYME5mWlBjcWFiRFhoWjdCWUxROVhFUkdibndkM0pEQmgtX1RUN2s2WERpY0tUblZQdWVGN3dzVl80aE9HUkpkVEk2UFRmV2o1dWY4dTdxRU9BdUt5NmV1Vk1LeTk3TVdLT1Q4LVpRbDBoSWowcmJWR1pILVI0cnFIMXZfVmdRUGRpLXFXb3FXcWt5MGFaSzNDTkEzUXhXZnRMR3AwcUVXcHU2T1EtQ2hONy12eE4wdFVlZGREWlF5V1d0d3g2VFcxS2hDQldaR2pabTlBQzY4YlUyQnVOTUU1NW9VV0dsbmNOOUVuRnpnTm1RTVR1SzV2VGd3WkJITWpmUXpsSUdfeWZ3QXVtSHljSzVPT092eDk1SGM3d0RBRDJXMVdSb2h5MDV5TFJkbEJ2XzREUXJyTWthZEVwZjB1dHZod1V3ZXZSNU1jVkV5Yk93VUw2Z2Y5a3JDNEw0YlR1bUJRbG9Ccng1aDNuTHhZdzkwcmlqbG5LajVZYkthZWpyTXdiSW15Ri1xVk5NbWpTd2I1MlN0SjB3T0czeE9HZkJRRHhQWHJtSXhoMERSOEdzSzBkeS0xSElJZWo1LW9STWRfSjlhVkt6MFk0d3g2VjIzaC1qUDNxMjRKYmF3dndsQTZyVjVpVUZkaDZKUXJpTU5DLV9hRF91X181VTd0OENIN1pWQ3VQM25JaTV4N2dtcWFsSzNlZ0htM3BkYl9sb3dYRTRaRUJETHZ0a2lobC13LVBGc3VZb1VKSUZWcUZ2VnM1RW5TU01XMFBJWE9TZlZNWW1KWmVrYmlHX1FqeGtCMjNCaHpZclNqQ3oxcW5TTXg5a3ZicDlRaDFuZFJYSkpJUFUyamVIdUxCNE9nVzNoenluQ2FxQXZQRXVHMlhuS3B4WGZ4QUtOeldpTElOLTBsUTRfUXQ0dHctZmphWVJVVjVLVWpyYlZnazI1MDZIUG1ZVEdWUVdRX203Z1NBU1BaajZEYklua3U3SzhFWnI2b3d1SDI1M1hxazlrSWwyTE1CcHZqT2tOTWFRTXhLcjItMllkUEV5LS1mTUFQTHBfVU15MnhqbEtMS2s3blhJdV9IMXZSbmdfVlVyVkhuZUdqRmFuODdRRU9SU1Y3clRBcHJPMmZUMmpfOWhoNkptdFlrUXFnRzg2WXlKa3NValdzM3hwZGk2TlBGRUxqQWd5T0ZDLTRrTWdLbGdJM2lUSElCV1Ezamp0U2UwR2N0MUs3QnBCSlJySUFGLTFVQjZKVDZjSjI4Z01zd0k5OGt1ZDVob1hZbVQ1bEEtWmFELUk4ZE0wcUZ0SEg4a1lXX256em85bTY5LWlZZlZfd3N5Mm1CdnVlb05RZGRRS0JrbWlVTW54VjkwdEF5RWc4WXJaWUwxck9jWHFjb2VJNl84UmV0bXZZeFZNMWJwdXFfajlmTXYtelRBOUpDZXlKMXFBTjVWQWFpY0lnZzFKWElDTEI5amVTT09zUXcxYXZxdk03TjFBcndDcjZvTUhycTVaQ0VLODV5VmI1RzhjY3Rld29pSFlzdVlPT0hnSDNMbmNoV3pmSjNNaUVjTTZfVjdSZHZCUWQwM2tQekdFVjh1STJ1aDl0bUxrNkY3VUt6WU02RXhJNW1LUEM5LVFOMk14ZTB6NDZrZTJteEdHR3cteXFMNjFHR0FpS0FjcENsSzVHeHlRbVBuREo4RHFKTk9WWDNoX283YTExVW8zMmtkdEcyaHVYcERVc2F5NkU4VGJ5R1dFZ3dmWDdaVnZrN1VNM2VqdDNqWXBxYmRZSlBNTUJCMGdNOU9mSVFjS0lUcm9IMHJEbFE2Wmt4UGM0ZHBlQ21NMzg3NXBXTlFrZzFKSnVRZzN4cE9WZ0VGallabEVENTBFaVZKNzg3cUM1YUdtakxRWl9yLVA3X2hJN09lcExWZ1BHSEFTUkxsd0dOLUZwTDc4UW9VempfWHUwNlBkNkF1VExtYmpoVmlERC11ZG5xdTVVR3dKNGxZamJqSkNBN3VQT2VfdWpzUWhZd1VHQV9YQnlsbkVySWxMN09YSE9UeGFEbEpHSDQtNHdNcm9hbmhPWTVoZ2NWZHZVQlpVZ1JEVWg0MGwzejhGVWJhUmxpaEUxeXQwdU5vR3F3TWRyWnZoTkl3YVFjUFlQeVV3UTdBdWh1dl9qSXRVcWlGQm9ncnlSb3Njd3oycXR0am12OEFRWUh5QWx5OXVqdmJ1cnk1TGNJaF9FUWZUekJuSnlfcDVZdzBDWG5CSzg3ZkVIOHJhWkh4V0VUcHFseHlmWWRWZjlQakRYTGJMYWJWQ2J6TXNSMnNYZkFvNm00VmhnaEYtQ0dOV3lta25EMDBUbWU0TGE0Vy1BLU9lR2o3Mi1uOFZjNmI5Zzc4d25tYkF0dGRyUThQWVdLUXZjdXlEbHZ5RUdHSF81VW10bFN5ajJKbHRLZXN3N1dzai1hazhDWDFidGRzU2xoQldjYUJ0dGozUmp3bEN4aEQyTXlWdHR6dDIwN3JPQjdxdEFJeVg1enJZMUxaSHB3RW1NeDhkWnM3NDdlY2ZhZVM0ZFFCWmN6U3lCNFZFWVRRWGdIeWdFX3EtYndfZXhqNWs5c0RHeHNTRnF5elFCVm9VOUtlbmFtZTRESnNMWFdaaW51UEhZUVNtWDJUZFBabXNkSHhCa3BBcHJiLUg0SGdFSnBPYWxCa0d3aFhza0hwYjZUTkhQeHktb09tLWhBaXptTVZPZzlnTDJOSHpSdUFtb0kzVTRFd2FfR0Vub3d0ZUFRU0xlY016WjZxZ3l1ZGswcG51UnlONlAxbTNCU1ExODRXUzNqeDFDNDYwTEFKM2FySS00QWV1aW5fMFZYM3FHdmEzNDR2ZXQ4N0RSN0liTUUzS01rWWtUdXotaHpqbnhHVVQ1cXZhWnYwNzdQVHExbTVDUVBUZGVlNlNnMzRmLXlseGg3MGoxSS1OWnZ3aFAyTFZ2OTJkdVZ4SlJSN3hzbEp6UzU3NXE3aWZ1UEcwUnp0NE55M1lESno0TWVDTk5wWklwTUJKeGR2bkc3azhsbXlvQlVRYmR6OHhCdW5YT3FsRDFHU205M05LYy13bzdxZnpJanYwWjF6WVpwLW5LN0o2NEUtSnp4MkQxZ2xJRG5vZGw5R215UzlwbzMzOUlZYU9QZlJnSTNad1FTVkdwcEJQN0dNRUdsRkVxbG83bTUtNFNZWEc2SmRYYU5yM2lRVmdoUEtkQWVpLWJDTEFQbGJGSkNFQVU1NXJfSEVmS2xUNS0zNlN5ZHRlcWFTZEdvMVhGRXpadWFILV96OEJsd1hXME4wdFJpdHo3SXh1OU5BTkM4R3V0Z2t2WHVFUl9Obnc1VUlsYXJlcE02VERfWl9lOHJGRDdoYXhWMVd0b1pkOUJTd05iUm1JeXU2Y2ZaelgyeFNPVlJVSndWSEctWTNaRGRpcWtzb19XR0J2TFJKQlRWT3NvZVZucWUxWktqb0NRSzFEYUZPb3B4UDdTTWhwOVlpY29XRk9VUU5ONS1EQjMtNjhDbURzdjE1LXMzRFRxUUM1OHhpd2JZLTRuWWt0eVNRV2F5elRvYlZOWG1idmI5SzktdWowYVRWRkx6SDFHMFl2TG1oU1NTd2tfM08tY3RSUExFblhQU1FWNkdVT2p5d0xIT1hTRDZfY1lTN1JrVXR4Mmc4bV8xbmhJUW0wOFd1aTVNSkdQR0JEb0RmN0szd3oyMnRnUVFXTDEwY2J0SlVvQkYyNjJVaUg3TE5pMjJWQ2tsMElYMVVRNy13cEkwcDhkV1NvV282U25PYTdkUTVpQkliZjlQX3JRd1dhYVl1NV9aQlpwQ000VXFWY2dhR1NZVnNxRHpXRVY4LXRjazBYOE51STJyZ3JSOTRDSnhjSms5MWwtb3owbldhTUFocHJubjJfd3hSWEdOYXkzNmJqU3EzWXhNMXN0dDFNN1JjenU3UTJQei1mZGpHWUFOSHZxQUtYUTZpbUphQXNwbE50Skh1SUp1andyTlRQd0ZzNGE5bDRkWHdNMDRRSWZoYzR5em1icDlYRjdVWVU0MjNXTWhRU2RMNUpaTld5QXVxOEFuRzdtd2dTUDNUMjROVGh1U0Z6Zjd1Tk5ySmdfUFk5VUNWcmlPS3FEN1lVS0FSZ1FFQ0EtTmthbG5YU0V1VEN2azJpZkVYOEh6cTJJbDV3TEZyOVFKVjBmT19EUkNyUzVzRHVaVmJ3RDI0Y2VqT3libWd1VWFuTDhiMklqS3h6TFVPT2tlMkVPNVRRTXRQUWZjeTYydkV5c2NwQzJFYXd6YUN2V3ViMVNXS2RZVnUtcVBzdFV4eWlPUHNpcFR3V1kzTXVNRkpwclNscWFVUDFJa3N6M0Q0VGpqSElzb0c2TUFsbFRZcUItSWpuSEhmYzI2blM3cmExeVVjbHRIRWtEd3Q4R1I2bmctNk9XNWJtT0J2VFFDamRUUDhSbXZ3b2tIRXZGQTlXbGs2OVZIVFpFSlNaNGdRZXFzcW83SEJJQ0h3dlViOW16YkhnaU50bGQ1WUFHT3V1U3BOTE1UcTM5LTMzVVZoTjBLa0hLUXZCenI1OXFmaFBIU3lVRnVMZzI4b2pYMGRvb3gySlFEZ1BobHZVYkR3cGluREJqVHBiMDdsY09EYVI3ZWN2M0tDOUhJQVdreDlhV0lza21Yb0FWYVNWTDBsZ05NQzNHVkxSMURfcGVoQTZySWs2Rl9qbDY0N0w4SERqRFJEbjZRRnRIa21BYW10TU9WSzdPMS1UXy1UTldwaDZ3YVFOdTBrV1ktZXAyRERndDk2enRYUkZTVWdNOXJMMnk3OENOMkVFWW1mQUktM1VjamdUblUxRnJXaEZ3dC1JNlVmNFZwNlY4XzZxTjJzVDJyeWFLWHo0Y0JJY0NoNm8tS0RpOW95SDV3MFF5eDhWb0xTNlN0YVEyYU5FejlKamctZ0N4aVp0Q1JYeWlnaWx3NTQ5VWFWMldreHR2bDZkeWRmZmFTM2ptYUxqaDRmOXhHa1JQRUdqZmZvMVY0dUN5QkI5QkNoaVVCZG1qVGxlVlJROG5Ccm5WQW5qYXVIYTRsV3VkNkhjSzU5VjJNTlpNTVdtS0tvb0E4cWtuMzVUY25EdXluSjJITUNnZElCSnVQVU9TeTI1QnhuZnA4RU5NSlZrV19UeU9uTXk5b3JtNTVobHhmSjRENThad2FRREs0QWlFZk1IVHdJc09uZ2pnU0o0S1JDdjFRa1NVeDdYRVhNU0lNUWtUYTBqS19aNS1PQ1ZNc3NBbzEzVzg1VlFKbVpDQ0tZRzZWbS1ybnVYSUdZZlZWLTg1OG93OEJZUGhDYVRhVzRkVnBLWERDRDVfc1FsamdJSnd0Vmc0T0RKY1dxelJpWWpUaXMyVzVjdlBvT1haNUIyZnFaVTlCWGVPQWM4S3Y2a2ZDVWp0OFV5UDFTaGswN2xtZ1A5b25PMWJ0eVc5VnhQSE5uUHcxNjZDeXJmVVcxaEFHQjB1YTFNYmtEVTdfdk40SlowY3VWNV9iLW9sUm80eV9yeGQ3UGRWREJsZHBWTUxsV3haLVhiV1VqdFpTVndaT01rOEtvV2F0bld6NVI0S1ZLNkFnbWJFTHhpa1MxSjYxZ1lJNlhTcm8wRnF1N0dNM2JXdlZQYm1xR3Q4SV9UcjNHamlKeDZ3OUhvZGlLbEZQc2JMakE3OWJuSG5DcHdwSEZBWGI5d3E3dmMtSF8wTU1WVGw3eE56bzhIZ1FfR2tPWEl1OV9uMVJiZS1SRDRXUmlId1RuYm5ZbXpHNjN4b3dHTlBJN2c4R203ZkxfTnpDWGhveDdUSUhXMjh0WFFCeVk4ZmR3X3YtMUtvU2lhSjNwNHBJUnlRQm1rQnpmOTlGRlpPS2g1bUxLMnBrSE9INWFlblFFNng2cHFDakNkcW53Uzk3eGJ0Skp1TkF4M1V6UDdHM2l5WlN5ZWw4SEd0YU1UZVdITzFuaE9lZFNlcTVhaGk4dEFFeVp2MFFScUxsQTRaQUxrVGh5ZUNZckpBd1cyaUJaOW5DRUVnemxqT01wdTJndHpDRnk5WktZWUloaWZKdVQ3dlBHdVhGTUtLVlg0WFU5ZmVoOFhIMUVWbnZ4cENuRjl5eEZneThuVW5CdUdsRkVWOFVCVU5oOE5BcElZY3BlTDd5Q1F5bDZQN3Fock43SEhINEloNmhLS2lVaUItWjRNMHJUSk9mZkd6MFhGWmlaSDdYT21KazBNc3pCbEVhaEFFbjJTU1JaaVFXTThsRFRRcEdrX0p3QkpRX1FVTmtMZnhCcHpsSzBUMGFxS1d3M2doWFktT3FqelM4cTFXOHVBYzNabFRUMFZHRWdWdU8yNl9vRXpXTnZYYnpKMUVfVEFxUkVWS0xfOWFlem1zM3JqYy1GdldSR2pMV09OTXhUdGw5ZzE5RFdhbFA2alJlUlJFeEg3djBLTEdvSHV1RW5IVHNQX2hsMnZuM05WWWl3dFFualFCOXpiMjZKRmxwZzZFaEF1STN4bFZMM3hwRE9qZUlPNXM3MllKY1MzcjAzYkIzbTVHMUljRVU4SkR2WTF5MjJQaG5iOGVmNno1cmk4RDY5clVLWThFOXFraExXYVhOMjRTLTZBYjNRZUtKcmxIR09yaEc2ZkpCdElqTF93Rk9kWjJqOFo0bVBZdmJaNUNEUTdnM01yYVh1aVJ6cWdvdXk3TkliempzOEZETkQ4ZHNMR1Z0OUNLanRVMnR5a0JrSUpQZlhrZ3U0LUpSVFRETjNINGdwek9md1B5V18xOXRMdlBKNEpRbHlzbnhKaEptSW5TUEtUUTljclJHVFFlS0F3THZZemdCMG5QWkIxd2dQVWJHaXRsaHlTV1pqbWplVU5oSnNnb0Z3ZHRFdTloTjRDejROWUVLZ1ozWnBKTC1sZmVJbmp0VEIwN1A4dWtpV3FHeGNBaVI5TDRPdl94VmxNYm9hblduNENNLThVSnZjRGhVRGtpTGt0eHRJOE03Zk01bngtMkFSX3MwcnlDV0F1YmVmQUxRdHVEUnQ1MVZrZnlJZkJ2UWFyb3dINnpIX1ZfZ1lJWFdOdDlvTElMT3FrNHlqcmR5Z0ZXWTl2QXZQN1Y4Q1lraUZuSVVrWGNaeUNsT2dmcTM5bXRKeHBMM2Nzb3VaWFRIcDExZ0xibWRUNUVTbjIwRThiblpEcTVvSEVEWGxPbGZHSE9ldmx6RnRCX1V4R1h0S1lYOUoxQWlLekJyZGI3QmJvemRFcDAteHVpeTZYRFp1Yjc5LW1LcnVQTDJaWWIxaTVoVmpRQUN2RnAyUHBaT2k3eFVmSlJoT0Z3Zi00OUphVE9XTjMtYVhVb0N1a0NpMWdqODhkQ29QWWNVdWs5WmxNelpkV1hJcDlnQ1gyN196U0U1WURCYWlWQ1dPc3c0Q0pGYmMta1FUOUNaMzRkU1hiczZ4S1N0OS1haHI5b3NpY2JHY2laMUlDV182WWRLM0l6ckh1UUV6TnNDQ0tEdW9iVVFRZFpBUlFMeWFlR2w0NWczN21Gb0tQN2J4b01aY1AzRjB3MzdBR0xMVzFjVi02dU5uaWhZQ1p0dThZckZQdWF4aF9VVUxPTk1SZXN5TFVsRHVydmxuQVV5ajFVMU1TbEMxTGtPbV9VV29NdVBzX1VqU2M3SDc3RTgwcmd2QmZCQTdaMkRQMmpWOFFRUmI2Q1RieEtpRkk5TFhmRlI3MjlFcURZVXVRRUk1ZDN0Y3liN3U4TzJlQnZfVGo5TzRPREx5Wjk3Z3BMdVZ3dUpVb3FqQVJnRU91U2lHdWwxaFJxYTl5NlZ0ZmpMNE5qajJJYjFsY2JyQS5OcXpkcGU4Yjdxc2MzQmpYRlhaWVpR"
+ },
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "key": {
+ "kid": "https://myvault.vault.azure.net/keys/KeyBackupRestoreTest/d7a019f5da8843aea30722a7edcc37f7",
+ "kty": "RSA",
+ "key_ops": [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "wrapKey",
+ "unwrapKey"
+ ],
+ "n": "v6XXEveP0G4tVvtszozRrSSo6zYDOScH8YBVBBY1CR2MCXBk-iMnKgzUyePi9_ofP3AmOxXx-2AsLC8rxi6n3jQNbGtIvQ4oMdUEhWVcVkmwdl0XyOouofEmIHeSxRg6wXFG4tYAKLmKsO9HqmU5n7ebdDlYngcobc1xHsP0u8e0ltntlgWBlSthmY8AMKW9Sb_teEYhilbkvt_ALr00G_4XHmfq7hSOZePWbGSWQW6yC7__9MrlDfzaSlHyBIyLppPEB7u6Zewrl_eNJWoUVrouIGA32qNETIOr_wxXRVGKoerTt-wFC-CXPn30W_6CmKSxoFBNvnzijg5hAU9V0w",
+ "e": "AQAB"
+ },
+ "attributes": {
+ "enabled": false,
+ "nbf": 1262332800,
+ "exp": 1893484800,
+ "created": 1493938217,
+ "updated": 1493938217,
+ "recoveryLevel": "Recoverable+Purgeable"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RestoreSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RestoreSecret-example.json
new file mode 100644
index 000000000000..1aa3152c46cd
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/RestoreSecret-example.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "api-version": "7.1",
+ "parameters": {
+ "value": "KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmhERDdfVW9aU1ptR2JYN1dYUTU5WDkxZ0FQb05kdDcwZE1BbmgzbjQ3eWNjbkRNOU5vTm1hY0NHZmlNeUwxU0FlZDk0UjhBNDAtVE81TDNfQ05Qal9pdWIyaW03Z21nbHNPNnFFUVVIWU1tOEh2Wl9odFRrdEl4QzRPWEowYTB0S2hscnczZlBvVVFDZHVGcFg0ekEzYTR4VTZXTUNfYjZZVXZqUjZnSGM5TFRUR2tIazh1RTY0aVQ4cmt5RDRrU3RNcXhnU2lfRVZwUUdjWGdfNE9wQ1dBOUFha0N1NkpybGRaQW9BLUtXTWpQbGhaWHFYWGMyVkJlbUJjRTQ1YzY3QWhqYjJrSi1uQ1c5dHBjWS1JZ3JEUHFzWkswOS1WbHVtcl9SbzQzcG5FeW5jVFpTdzZlX1h6VnN0dUFOZHdiM0E2OVR1c1hfYkJKZ0J2SGQ4cDJSUS5WMTlhMVRacjZ2UjJHdEVaWGtOOXJRLmhwMU5IMmwtZklWbVgwWlNfTlRzekJfUEs1aktDUU5rSnJyRUhRQmZjQ2VjdHhmVU5uVlB6MVBqRWNDblZuV0pCUk4zTlFKZm01MjFLRHp1MzBIVUFEUGVmVHJyMFVFS2x5QTM2cThoWFY3VTdoQ0dHNk85NVpYclRsZlVENDI5RTNTNTQxdVBmWGpGR2cxbHlucFNTNnAtVkFzaXFlY1lpQWNuM1hhNzRhUm5xS3N3ZzhyU1ZOX09hSVU3ak1VVUhYZWY1ZmN0NlFrdWFfYkt6Z2dtR2ZiT2RTdVdNRmVQaF9mMkJMUFNGN3k1NThEMFZxSVlNY0JJR0dMU3BQUU93Q094OFF3Y3NVUEp4ZDFuWkVYYjRVNEJZYlhBcmFMX0NwekYxZlhYWVBsdmVUSGdKNVdrR28tWXNJVzAtT3ZqVGdLN2hIamxpR1psd29HOVUtbTJSVDZfbkhseHhVRFMyY3JseGNmay1OOTlXd0tEdUxFMTM5ZE1mN2RCSEl1aTdxd0RXdm1TN2JMTHYzM05Wd19XSl9DT1VGQjgycy1ELXk0UEdIRzVackhsSDgxa25mLVpRblU0SmZfY2lhMWhmWlY3ZFMxb21UZDQtNnJwZmpTMGxFT3VfZTQ5bUpYUGFpZ0hyLWFQYkFzTXJJQ2JvOUVIR2IzMXJ5SlR2QXF2ZmJDbU10bkdLUDV6aUNiZFh3SU5ONzBJTk5lZnJLWGZkZFBUd0RSV3d1ZkxCcGNlU0U0SG5EWVZVQmdkMDl4UUZidG12UDhhTXhhUlpGSTNpWG1fbmpCNmZfdlNhZUNUakdVYVVuRE1QQkdOQWQ5T2xVX3dvUnMtalNCVnVqd1FQSGlGcm5RWElkXzBRdXRYSm54cTU4aUtlTGJvNDJtOHgwaXBRcnB4aEZoUDdHNmZOWXAwVmxXR0RxZ1Q0VlpPQkZsZWRKUU0yaDQtb2xTbXdtUms0M0Y1cjdKd3h4aENqU1JReWx1MGEyQ0ZONWMyZjIxTElZaFliLWNReWFXMDNpV3hsb04zWld5cDJIb1FlUmZPR3lXUzBiU2NBT3JndGpBYnJaUFIwMGRRNnpSOHNBczFYUzh3dzBlaVczbFpsdjJwVWFxOVpTeVhnTS14b2NTOS1ueXRaWGtWWlUwX2dDVXJBV0ZKNG5XdW9oTGM1RkkyRWFQNWR0SXVWa3dnbXlsR1gtYk9ZeHp3dzVGYmI1V3VEbnJ5aDBMSnVic3Q4VXdLdnl3bk1jQ3duMjZSVTNxQVRudGJubVhJS0FyeGkwMldQVk9oTXdpUWZuX2h1TWk5emp3MEVuaXNWdktNWUNnR2xqNWlGZW5Tc0FKUXBiLUY4bng3OWFJQlJaTUc1a0huUDR5dGxmNm9FTkRsRXNJY21aeEtOdEIzcmJPdVROYUhLTXZBNmxSNzlMMDJZSTZrcEdrUUZnaHpIaTBjTWkwbFdCejRTM1AzUEMzZElZSVlQZ0Q2S05kT2FLWHkta0dWdUlsWFNmVlVrMnpzM0NBeTJhZEJjV0NMV094ZkRoQnlwNTl4MHpBRExvdnZySHRLOWF6TGN3N0lTbVl6eUhYMkpobVdReUYtTFd1VzhfcW41SkFVYlB5Z0RTRDYyMi1PTGZQVDZmc2VTWUVBUTFLVWRwZTFnSV9hZWxVT3FaRWN1aE5SckU1YUp0LTN5TEVLVWZIWXF6WTlGbHJrUE5MUC03Y2xRbmEySEhfZmMzZV9LTGtGUDFhQTJjM0RVaERseGhsTzB2bFVmV0c5eXpXaDNZN0NmRFlFMlBaUzZBcFBlYy0wa1NDcEVKMmtCcnFzWG4yeDJDX0FDdTdCTTVGZXNJQkN0M2NqSEdQSVVQRnEteGVmT0RCXzBQcXZDTXpBOHg5Zm10Ny1sNHhVQlJaa0dtZExhZFoxVzdFUXRNRVpsSWMtbDF1V1UzTU15cFZpVWR0OWxJUHVQVUEwc1NrbWxrTGhNSjgyNE5QN0hyVi01dC1ZNDcxaWVKMHdEUjFxMmU4MU8yazdNeTFlTDY3TlY4OVBHYU81SVR5WG1ueUVXMGtVbl9qa3l1UVRkV3dsS09HZVZIYkJWNFpxSXZHWjdQUS02TEE5eXc3a0dyZFRhVFZXOEdOOV9GY1c2VUhjbzA0U3dqTzY2S2x4VlFJWWpBdEZPZlBjWW5xNzF1RndyQS1UZHVDZG1sUFBHOVpjc2tiQmdrbF8wVk90dmhuc0pwYXZKZ2Zka0d3OF9qMkQzd0Jzemd0VndHNk9nNW16eVFwM2pFc0w3UmNtcXd6WFBOaDdKYXdHVDBJMlRvZHYyQ1Z3MDkzWjJlODFXR1NxRnlIejAxdjFBaGN2T2VWdmFjUGM2Y1JJaVduNW93ZF80d2FBdjlyNjVVdmtWa1FLRXpHUmo5eTZILXdZTTMyV1JyMzBlOU9MRTNKUU5POV9kNjRTRmIwSjZHa2VxUmtnNkVXc2xqN1JYLVU1VlhrS1BtMzNpS3c5dGU2NVBqQUNnZThRVDBYVWZEaUx5a1pGeUdpZ09ZMS1TVDFxUlE1eUhMTXhEc3BPRjFXd1lMQ2c2b3hocTlWMm55Z0U1cUJ2ZnYyWUtFaDdjM1dWNjJrYkw3UXJ2d0xkMHVRZ1FwYmUza3E3dGJzcC1lNWlud3cyY0YxQzByeHNScGZJRHlJMmg4b2xHMi1RQUZkWmtlMUlmaE1FZmNfdUdXX2pqSGJSWXVzYnZCRnpKMDdaOVJsVnFMR1A2WXBnTDFsRTFOY09xUVJyYVdxckdDTWZ6SzZMVENQSl93aHJRam9WTzdVRDJIUEVnUjZ2S3U3cWlmTmo3UjE5OUJuRi1EZmlnbk1TYTFKZkZadDNuVXVZOEhMUXRoUzN4MUMxOE50d3dsaDVuNGxYS3d5MERHenljbVNweE05QkdPNTFRckFmSXRfY0xHbUlzMlJ4MzMyeDRIdEZ3Z05nRzFBazNIUno4TlJ4V3lhNWhjb1NoYURXekhES2gyOVp3Vm4wYXVzeWJpal9uNlFGcnZZbjRSOHdPNlRQV3FrS09JcHkxc1lQNWxyNDc1anZSRVZGaFdCWDBiUXdJdnNlM0Q0a0dFQzgzU3FWYkhxY3phZTNwOFNxaG5tQW5ZYzBIbWp4clJfZUMzT0hYVFBGUFZmNDlVWHdrQjIwY1lvcjJ1dzBaTzJ2TUg3S1QwcjBSWDBQVy1qcGpORFpjSGRSNVVCMXFacGlWLWxaYkw0eF9IZW14aWUxY0RPOHNQSXhIOElUSWtOV0tTR1N2eWdraHBBbGl2RzVEZXJObElkeFE2c0tHQ3RtMDEyT2xjN2thaVFaNHh0TjR5ZVpPU2xyS0s0OTlIcWhObzhkNTNsbFFfMW5ncWlHbzhUSDlzWkFrclYwclc3dkJOSF92UlhBdTc2MnlpZGhZUURYYXJXSEFUMm9DU2hEN1lOdnotekoyZGtEajJMcW5CdFNCWFh5T2xsM3o0ZWFITDd2MDZ1QTgxMVBKQU5YZUdoenNaNFVQQUQ2Q0E4cGlxSHB4WGkxODRHNEJETVU4S2VHeHZLWnJiUlNOT2pTOFNrQUJKZERfSklIZ1RhNEFhNzdPUmNZcVY3OWZ5djFZVHNma2lLR2NUYzZIUjZzUVpsamt2U0NQNjdtTTRGUHRqTHlfX1pDQlNwdnRSVWd5UlpNM1dSOUViNHkxa29uRG4zUjMzN2lpSzdfbGtIa1UtZ21VbUpZUVdnUjYzT01pZUdRUHdNR3BSZXlRWE5yckJVTDN2Z2JYdjlac1ZDcDh1NHRwQjBleXJvUXgxZC1KSWJvOWVyR1VlX0ZzU1Fpd0tIaGFIUk02Nzh5dENkcHJFbDBWeG92TFVrX0xNcTFjN1R4MG5jbFl2WE4yUjhEMXNhU2FibkJSd19CU2tZMFNMSXdhb2RpY2o2ZzdLd0ZfMXB2eThhNF9LbnJNLUNkenBvdHA0aTd4QUJuY2JRVUEwWkpsYlp1elRpR0F4ZjFnclk1Z0dZOTVoWi1XZG1lOWlSazBHRTJGN3d4MlJyLUVvS3lZRjNjak0xMWt6MWFmME9fNFdyOXJoU3JrX1NHU3l2a3ZCTW9NZ0xOX0tSS1BlTjlqUnpwRlVST2VnN2NCbGlhdy1odnZhY2lCeDN2UWRqTE5jTldQdU1UbzVmME1QbmU4TUtXcFBoWjBySElMaEVuYW1pcG82X3pzNjczcE9ma09FS0JWWE9mUDEzR0UwS25SWTBab2JPLWRub254LVdBY1dodFZvX08xbkwwTWE5ZXFMMURhRGhJU0JNbVRIM1hkY2dDTnF0emIwcVMtS1l5Mk9zRzZOakRDVEM1aEI3MXIwU09WMUprNFV2QjdYemxTTW9YUXJnTzF2ZFVwSGtxaVhUM1RJZmlQMWRKcDEweDlSMlp5R0lzUzljQUtNMEZyMGRxQmJmQy16NTJpcWZweW4zUVVqb1Fld2hPYnJwUEZGOF9lUmVNRlIwSXZjUkxnMHpwek56UzU1N1pkQkZhemxNTThLcnkwN2QyUDAyTnZtclUtN1ZjOW8wZm1qem9WOHVVTG9PMkJHdmFRdnFJNmtBTmQ5VWo1X2JkY2NVUzBhcklzcGFZa1UtUXQtNnQxYU5YUUdGZEtUbFMwSVowek54bkNIZWRySEE4SkYtOFg3d1ZpRW1McXJQbU1Sd25sbWx3SnhxLVlReWMydmdUallSbUxCVU5TS3VrZkJsa2VnMmlCRWdySksxVlNyRWswX0ZvOXkzV1EwVlZuNXhEZXlGc1JuWDI4Tkl6alFQLVNXaHhYbzdPYm5YY1cxZHlWNE1fYjdzM096cEMwOTJWcGZYQkpaTDhBeHgxNGY2TmJzTEpXLW95VEdsaTJFb2FCZHJKQ2JkQlNOdWJlbGdRRmU2V2hqSjRGdlNrYVJISjFTT3ltbGFtQmYwaVNDOGM2X1g2SkZORjNmOXYuQjc5SDJvbVIyTU52SndydHVzclJ4UQ"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "contentType": "text",
+ "id": "https://myvault.vault.azure.net/secrets/SecretBackupRestoreTest/01ddd6e3a0d34d35bb5bccecb1251837",
+ "attributes": {
+ "enabled": true,
+ "nbf": 1262332800,
+ "exp": 1893484800,
+ "created": 1493938113,
+ "updated": 1493938113,
+ "recoveryLevel": "Recoverable+Purgeable"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/SetCertificateContacts-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/SetCertificateContacts-example.json
new file mode 100644
index 000000000000..4260798ad794
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/SetCertificateContacts-example.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "api-version": "7.1",
+ "contacts": {
+ "contacts": [
+ {
+ "email": "admin@contoso.com",
+ "name": "John Doe",
+ "phone": "1111111111"
+ },
+ {
+ "email": "admin@contoso2.com",
+ "name": "Johnathan Doeman",
+ "phone": "2222222222"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/contacts",
+ "contacts": [
+ {
+ "email": "admin@contoso.com",
+ "name": "John Doe",
+ "phone": "1111111111"
+ },
+ {
+ "email": "admin@contoso2.com",
+ "name": "Johnathan Doeman",
+ "phone": "2222222222"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/SetCertificateIssuer-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/SetCertificateIssuer-example.json
new file mode 100644
index 000000000000..cf3852939482
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/SetCertificateIssuer-example.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "issuer-name": "issuer01",
+ "api-version": "7.1",
+ "parameter": {
+ "provider": "Test",
+ "credentials": {
+ "account_id": "keyvaultuser",
+ "pwd": "password"
+ },
+ "org_details": {
+ "admin_details": [
+ {
+ "first_name": "John",
+ "last_name": "Doe",
+ "email": "admin@microsoft.com",
+ "phone": "4255555555"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01",
+ "provider": "Test",
+ "credentials": {
+ "account_id": "keyvaultuser"
+ },
+ "org_details": {
+ "admin_details": [
+ {
+ "first_name": "John",
+ "last_name": "Doe",
+ "email": "admin@microsoft.com",
+ "phone": "4255555555"
+ }
+ ]
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1482188806,
+ "updated": 1482189526
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/SetSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/SetSecret-example.json
new file mode 100644
index 000000000000..6835efccc6b8
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/SetSecret-example.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "secret-name": "crpsecret",
+ "api-version": "7.1",
+ "parameters": {
+ "value": "mysecretvalue"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": "mysecretvalue",
+ "id": "https://myvault.vault.azure.net/secrets/crpsecret/03bcccc7c8cf4546a0e3e21e52560441",
+ "attributes": {
+ "enabled": true,
+ "created": 1493938459,
+ "updated": 1493938459,
+ "recoveryLevel": "Recoverable+Purgeable"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateCertificate-example.json
new file mode 100644
index 000000000000..861f503c8e91
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateCertificate-example.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "updateCert01",
+ "certificate-version": "c3d31d7b36c942ad83ef36fc0785a4fc",
+ "api-version": "7.1",
+ "parameters": {
+ "attributes": {
+ "enabled": true,
+ "nbf": 1430344421,
+ "exp": 2208988799
+ },
+ "tags": {
+ "department": "KeyVaultTest"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/updateCert01/c3d31d7b36c942ad83ef36fc0785a4fc",
+ "kid": "https://myvault.vault.azure.net/keys/updateCert01/c3d31d7b36c942ad83ef36fc0785a4fc",
+ "sid": "https://myvault.vault.azure.net/secrets/updateCert01/c3d31d7b36c942ad83ef36fc0785a4fc",
+ "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo",
+ "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=",
+ "attributes": {
+ "enabled": true,
+ "nbf": 1430344421,
+ "exp": 2208988799,
+ "created": 1482188981,
+ "updated": 1482188981
+ },
+ "tags": {
+ "department": "KeyVaultTest"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateCertificateIssuer-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateCertificateIssuer-example.json
new file mode 100644
index 000000000000..85e29bf4d33e
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateCertificateIssuer-example.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "issuer-name": "issuer01",
+ "api-version": "7.1",
+ "parameter": {
+ "provider": "Test",
+ "credentials": {
+ "account_id": "newuseraccount",
+ "pwd": "newpassword"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01",
+ "provider": "Test",
+ "credentials": {
+ "account_id": "newuseraccount"
+ },
+ "org_details": {
+ "admin_details": [
+ {
+ "first_name": "John",
+ "last_name": "Doe",
+ "email": "admin@microsoft.com",
+ "phone": "4255555555"
+ }
+ ]
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1482188806,
+ "updated": 1482189526
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateCertificateOperation-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateCertificateOperation-example.json
new file mode 100644
index 000000000000..9530d9942baf
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateCertificateOperation-example.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "cancellationRequestedCert01",
+ "api-version": "7.1",
+ "certificateOperation": {
+ "cancellation_requested": true
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/cancellationRequestedCert01/pending",
+ "issuer": {
+ "name": "issuer02"
+ },
+ "csr": "MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxxM2zqnPtpH8aiHX5TdEoZLO0Y6fsjk9QcjKgnHomrwUc9vK20UYYEPKt9aGOT7HNx0do8OulPCnLPrKowci8UHu1qRW/qHvsOJQ/UrQoMCHxtXptVc7Avx8WQb045sCdgp/Cl4xO8LMZa70kE4dghZU9zmNZk8wqDIxyYdh1lqqfGe49EWOxcfszTeeKs8KCsQznjExbsudBHLLWoX4VFTGMe3VcIPcV6iFf70buHKznDMXFiRC0IYwkc/GyWIadB1CSEae8k/0evsPI5lYYZLaO/kLffEUtzysqxZNCQR+S0eVPTGTLHa+fndnPPs65XZDzSZi2fZL01oXUfCAQQIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAKto/ZF9+02fQ3sLuIsRuap/O/AZz3IhAubNfyCaWvVGVAQz/Aqpf5c/liyKhxqRG6LR9Zu50oxRK5222ezR+56vJikjdXRVShf2xYsMm1CbCM1JuzsnkTeoUHHE12xx1srH/9TH+DVZIk6NXxc4wVIagbpwxiS5gR3Nly5k0ZVv7R1B79J0GUqSwK6qjuooWrBsYMEx319hz8fB/Y4jnPE8p+Cnn3AGEqnebVngXncq/QnHxnrRVfvKFVySqRvlsvM8buILmBbIaywEUqwhNtZX2i9E7reEJ8aeZcf+lAeKF3YDvffaXGTc75aiZlBk30Lv/hn0vs9T0/FedUnIae4=",
+ "cancellation_requested": true,
+ "status": "inProgress",
+ "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.",
+ "request_id": "3dd81d528cc84c5a837c607f1a50f2e1"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateCertificatePolicy-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateCertificatePolicy-example.json
new file mode 100644
index 000000000000..f2367b1bc68b
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateCertificatePolicy-example.json
@@ -0,0 +1,80 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "certificate-name": "updateCert01",
+ "api-version": "7.1",
+ "certificatePolicy": {
+ "key_props": {
+ "exportable": true,
+ "kty": "RSA",
+ "key_size": 2048,
+ "reuse_key": false
+ },
+ "secret_props": {
+ "contentType": "application/x-pkcs12"
+ },
+ "x509_props": {
+ "subject": "CN=KeyVaultTest",
+ "ekus": [],
+ "key_usage": [],
+ "validity_months": 297
+ },
+ "lifetime_actions": [
+ {
+ "trigger": {
+ "lifetime_percentage": 80
+ },
+ "action": {
+ "action_type": "EmailContacts"
+ }
+ }
+ ],
+ "issuer": {
+ "name": "Self"
+ },
+ "attributes": {
+ "enabled": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/certificates/updateCert01/policy",
+ "key_props": {
+ "exportable": true,
+ "kty": "RSA",
+ "key_size": 2048,
+ "reuse_key": false
+ },
+ "secret_props": {
+ "contentType": "application/x-pkcs12"
+ },
+ "x509_props": {
+ "subject": "CN=KeyVaultTest",
+ "ekus": [],
+ "key_usage": [],
+ "validity_months": 297
+ },
+ "lifetime_actions": [
+ {
+ "trigger": {
+ "lifetime_percentage": 80
+ },
+ "action": {
+ "action_type": "EmailContacts"
+ }
+ }
+ ],
+ "issuer": {
+ "name": "Self"
+ },
+ "attributes": {
+ "enabled": true,
+ "created": 1482188947,
+ "updated": 1482188948
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateKey-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateKey-example.json
new file mode 100644
index 000000000000..bec794459892
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateKey-example.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "UpdateKeyAttributesTest",
+ "key-version": "3d31e6e5c4c14eaf9be8d42c00225088",
+ "api-version": "7.1",
+ "parameters": {
+ "key_ops": [
+ "decrypt",
+ "encrypt"
+ ],
+ "attributes": {
+ "enabled": false,
+ "nbf": 631180800,
+ "exp": 662716800
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "key": {
+ "kid": "https://myvault.vault.azure.net/keys/UpdateKeyAttributesTest/3d31e6e5c4c14eaf9be8d42c00225088",
+ "kty": "RSA",
+ "key_ops": [
+ "decrypt",
+ "encrypt"
+ ],
+ "n": "tHCSyq1FqGHXIFHs1m4riKYgPFNSTlJGPzxwfUyZJUxxZsFWMxmZRzbM3kcXC5N40AJfeqDOMs0gY0LZEfhw8kJHBf2GEH2Sz923E4OQjLk_ECdAiKPW_8t22cqD_pGIuB7uibjLZgFFRv7oe0t8cTXKn7IwAH5gQBLs8NNV7hx1Ozy82ekCgOovFldmD3c3P1oZQ_v_-jOP6O202aEfDcZut42J6zI8eYwvGiDKmo2fCPPeth1LYBOeUMnrEZGT_f_w3yAgqvuSkHCL0x4MjZzc2EoNI_3ooAHZohDaPHLRfz8neDPADZzbHA6SDn3GgvC1K_Je5GBmqjTH3aIMlw",
+ "e": "AQAB"
+ },
+ "attributes": {
+ "enabled": false,
+ "nbf": 631180800,
+ "exp": 662716800,
+ "created": 1493860275,
+ "updated": 1493860277,
+ "recoveryLevel": "Recoverable+Purgeable"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateSecret-example.json
new file mode 100644
index 000000000000..2c685f85ba9e
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/UpdateSecret-example.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "secret-name": "crpsecret",
+ "secret-version": "03bcccc7c8cf4546a0e3e21e52560441",
+ "api-version": "7.1",
+ "parameters": {
+ "tags": {
+ "mytag": "myvalue"
+ },
+ "contentType": "myContentType",
+ "attributes": {
+ "enabled": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "https://myvault.vault.azure.net/secrets/crpsecret/03bcccc7c8cf4546a0e3e21e52560441",
+ "contentType": "myContentType",
+ "attributes": {
+ "enabled": true,
+ "created": 1493938459,
+ "updated": 1493938459,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "mytag": "myvalue"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/backupStorageAccount.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/backupStorageAccount.json
new file mode 100644
index 000000000000..2775a680dd2a
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/backupStorageAccount.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "backupStrg01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": "KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLk1JeFMyLXh0eHAxekpaZ3ZrTUY3d2pGMWxiLVJyNWFrbHFMLXpBaVVOODJKZFJNUDFwak5iS0phRktIOXBRcDg4ODBKeERDSmdESUZHc19OOGlnYmdIZ0Q1c0xVMi1pRzdKM29Hc00taFRMb05oaUd6aGY1YVREakYzWjZpZVhxcFMzVFVOVUFkeFhpTkpIYk94YjBmWHNtcWFtNnA0dXJ3Yzl3Qnk1c2pwRnJheHNRM3NRcHBDLXZybXlVZExaelJIWS0xYnhwaFQxVUdiS0Zsd1dSODU5TmFSQ1BZOFhDWUVrX0hxNnc5S0lWSXRTTlRYYWYxUWFzUDJob0NHT19PMzkzVUNzWGp0NzRtOURqdi1vTHRoMUl6TU5sSWp0STg2MTRhTGs0RTFMUXd6ZUx2X2Y1cndKeXJOWkF1c3VWRlRieFp1Zzh6T3BfYTdCOGhGSEJyQS5rc3pPdTN3blllb1ZUUjRLc2dqMUxBLmYyY3huVE1BbU13Ty1RcmdHSUFYUFN2bEdZUDRYWmJvMFVFOGxtY2xZa3ZhRE5ab3E0Wm41MVNKTDNuUFZsVnBaRFlrUmlpd05BSUxvRS12QWtVbmZoLUczOWo3RHhqWm1zZW02bXBmOWxoZjBnZFFNTDdmejBqRDZ0dW1xSVFaWUhFalV3VG5xdDloeEw5N0lnUUV0WmtFV0VnUEJETnJJNFpYWXdNU2ZyR0FfdkgzYXU1MWpabDFTWjlGajJsTHpEblNqbFd0U05QSzc3X2RwbUxrTXNCSmMtamRteUpxYmVxdmdRcGFTSUNsOXpUUXFQM2RxN1VQV2c1R1ZDNmlNZjlTcnBoUVRKX1V2bnp4LWk4ZWR6ZUppd2hYNW9HQ043RDNDWjkxTzNLQkhmYklOX1VvQWlQVWxzazFveU9KOEVjMk5mbHhOaFlrNFRKUTFBN2xnbXlLRlNQeVMyaFlwUDA2VEpTb0JUenVTQk5OTVdmT0RaTDFfV3V5eThJcDktdlVHMW5JOENDQ1hIeEVVN2FVLW5nRVR5aFBfbWt3Q2FGLWx2WTNqZlV1Z29wSllLR3VscXZadk1VZHhLYU1oemR2a05ubFdGeXlJNXdiRUdZcWgzWEJ0MS11TThrOFZVTDdQallzVUt4S1dYbzBMblJPZmFTbTZpTm9ZTmFOTm5YbF9fVW9rd05fSWM0eVVYR3RuMFhUcTZ4anQwZUpEajlET3FyYmdiLTZoclltRmxLTUNqalVxSGtLU1VPaHVYSE9jOFdFa0JEM1hiR29idi03b3c0c0gyN0YxbHh2UVh0OVgtOUl1akN5dHBMYmt6YnJVdHZJT2puY19xTUNjMXFFTG1wZHJCTGFoMzVmWHZQZXotVk9zSXBNOGdsekhWUUgyWWZHU0UwaTJqVkxpVllkZlFHeDNwdTZPamdUc1hPUm5acldlbFExMVlNbUJkWlVqWFNlZkVlQkxuT1lBbUNtYWM0dHNTa2JHTXZzQm92OWNEc1NRLWlsQUhsT1Fsanp3Umt1bnIxdk1ITlFhRDJLUEE5eGxxZ2NKU3FGT3d3RzROSzBxamhyb0NoZDFxM2RHR2V3U2tTd2xZbW44ZlM0VEJ5VjFMYmtWb2NZZHpiWDhiZG54dHRhVDhKS0pUbjJETWxjVFpvR1hFbWQzN2ZZVnlaNm5uMXdxZExtVW9XLW5OQXc3T3RLV3hyMXJUNV9qOHZjRGhTWk1HdTF6aV81NDEyVTRLcG01dlQ3c3BpWXA4aDl3Rk5scmFjYnVjZGVlaS1zMWR6cDlqWGo2NjRuWWxoYzNjOHJubjJ4ZWlna09YLTNUSWxnbmdxeXpJWG5ROHU0dTc5TC1ObXk1VFNjLU4wTnJVTUxQVE51MnhsUlE4Y0VLT0h4QkJGQV80Nk1yVXlhbjUwODFMSlYtTVVyaXAycl9tS3FJRjJET2wxS2V1aGg5am9PeFVybUk0T19MYkduVjJTbUdoZEZSd3FxUS15U2pxcFE2OFBza3hlQmxTdDZnX28tLVl6Qkg3dDI4V3ZYYzdIT3paNFBwa0psTjVmWFRwOXgtOGNuTGptcG5Pc2hUZWxTUXRYaDMwcTU3LXJZbVJzc2t2cFZfaTZFX2JUMTk2VWtTOHo2WUp1QXh3LXdlZ2tPY1ZITUxkeW5vaDU2UUtuWDhMVFdHdjhqWWNQazlaSlNSbXljTExOcWNtRnpUU1JEbzBXMXBkQVJXY2tqRFM2VFZIdTlHSElsTG9oRnpONEU1T3FqdUMxRjEwSFZjUGxoNTc5UmczWk1SNWJoVjltSEZNOFhJZU9HTHAxZFkxbnNLY2dqRVVlUW5qcF9za0RzanJZMVVncXRkTTVNVWhNSHlEZlhaZ3libk1jSDVRaml0YjdWZktrQk1YcGRwU3pLQWx0WDNjelIwODRPVm5nVGtiV2JZQURDTUQ2N1dlLWM1ZDFONHI2WFdFb2RXelNyWlhyZmc0RVRNNG1UZnV3ZjB0d3NORkRJdW5BWDkwbnZJWm1Ualo2RktpTjBiRnVNWmRpR1NKNTZNUEZMcFd3N3p0dmVmN0xENmhjNHJESXBQbEkwTVlVWTJSLWZGakdaZ29JTmdKMkVuMGFFM0c1V1RySjRxcHhhdHB4MVk3ZUgzOUk3WTYzcEJFWEtkRWIwTmstM0tnM0ljbDJPSkp6SU1fM1VHSlJTTmRQWGlfV3ViNGRTMDV4eURzZTR0d1FXdm9rb1QybHlZNGphNlVOc3lvYWN1eGFsTUZvUFR5dHF4YlVTaXFIMEZab0pWcm84amZja2wyYklmSzRqRzN6TnJIOWU1c3VUVWJDV09wYjczeFNMMG9TLVQ0T1JSNnBRbTZHQk05bFJ0eUhtMHJUMy1sNXc0c2ItNnRDcTM4S3FRdURRTGVTcDI1Rk8zMU1uVE5nTFlUeEUwUEZDT3hmRG1RY3BOOFRoWHBGbzZLNHNrd0dmQkpKTU9BTWtIUWZnMUM0c0V5cS1PLS1FWFhjbVV6QjJGRnR4c1gwR3o0aGJSdTFiUlhXcWMxU0IyUk82d0JsWGdPUmJqZjJlLWJQUFFMdmtGcWR3bFpUTE1kaWVUdjQyQmd1SFd3dzI5OEVqcnNNUXg1WG9aRG11MDFRTzlZSjFmTEYtWjkwWEVOU2p5OTM0M3UyUHhrNjhheG10bnp2ZTdwd3Q3Z0ZMMUoxZlZEd3BqMUtBZDdwdGZoWG4yUzJmT1Bfc3JOM3QxNk1qX29qOUVLQm5VNC1jQ3RLWGRkZS1EWk5zQkNhSGZ1bEtHSkFHYmx1UWs2Yi1kQk5oUS05Z19kajdfcjZub2Z2aDRielEybGlQd1E3M1RTazNiQTdzd2EzclZ5ZTVDTVNlOVotNkVKV1phek1sN0w4VUJ3cFllN0J0eHhUNEVBVGo2SXBvYWhGNTgtRHpiMmRsc1c1ZDZIWmpYZUNMTGtVRmQ5Mll3eDBibFlCanc4eTVzM040OEJMME84WG51ak42c0F0eG04Sm9hWXFVUUd3LXNBS1pTZHAzNk1GNlZXYkpUcHBoZHQ2aEhWQjFoRzdpSGN1STBTRzY0WjczNXEzZ0tSYXFHdzhIUXItSWNyeks0VEQwenk5b01NMHpRLVFBSE1PdzAyX0ozU3pVQWZ1bzFWNU42ajB0VGsyeEt0TFp3cmlHOHJNRl9NWTJrN09mdkxqNFlCb3VNN2lBNVM4LnNfM0VabFhIb1lrV283ZzdpRUp1bHc"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/decrypt-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/decrypt-example.json
new file mode 100644
index 000000000000..a51342ba560b
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/decrypt-example.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "sdktestkey",
+ "key-version": "4eb68492b5f6421e835d961ad2be3155",
+ "api-version": "7.1",
+ "parameters": {
+ "alg": "RSA-OAEP",
+ "value": "sid-4nG3FzRIFWXLXlG-FZo6H1-kzbNX5Exe0_VRqcGLuJWjI9oSofsn-2IagDsQzkpNAXv9V8aoIizelrK_14darhxaAV8OejO7Oh7spjxa7IxMVS3e-cwcLdEHzMbMfM1uFpDyRFqEUASHI0H8F1M2m1e9TUSXOVW3KMqm7cK94ZQMFvd4AYdLfmfnStMp_MqIQh4kpIkB6h2b1M3possVrLKH_l2L3uT-qFiwQlH9-dt0Cje5mrkpsYCy4hAXNFUPhIyBWAZwOQylIE2sPuopFs55lRIHpWP2CqNe-IK8tX87BRuJ_Vy3GIFxDjD5uu74scIyQCKMImB6xQ_-mQ"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "kid": "https://myvault.vault.azure.net/keys/sdktestkey/4eb68492b5f6421e835d961ad2be3155",
+ "value": "dvDmrSBpjRjtYg"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/deleteStorageAccount.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/deleteStorageAccount.json
new file mode 100644
index 000000000000..1e557603567d
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/deleteStorageAccount.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "deleteStrg01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "https://myvault.vault.azure.net/storage/deleteStrg01",
+ "resourceId": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc",
+ "activeKeyName": "key1",
+ "autoRegenerateKey": true,
+ "regenerationPeriod": "P30D",
+ "recoveryId": "https://myvault.vault.azure.net/deletedstorage/deleteStrg01",
+ "scheduledPurgeDate": 1490790000,
+ "deletedDate": 1490760000,
+ "attributes": {
+ "enabled": true,
+ "created": 1490738386,
+ "updated": 1490738386,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "tag1": "val1",
+ "tag2": "val2"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/deleteStorageSasDefinition.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/deleteStorageSasDefinition.json
new file mode 100644
index 000000000000..116dd63fbac1
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/deleteStorageSasDefinition.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "deletesas01",
+ "sas-definition-name": "deleteStrgSasDef01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "https://myvault.vault.azure.net/storage/deletesas01/sas/deleteStrgSasDef01",
+ "sid": "https://myvault.vault.azure.net/secrets/deletesas01-deleteStrgSasDef01",
+ "templateUri": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D",
+ "sasType": "service",
+ "validityPeriod": "P15D",
+ "recoveryId": "https://myvault.vault.azure.net/deletedstorage/deletesas01/sas/deleteStrgSasDef01",
+ "scheduledPurgeDate": 1490790000,
+ "deletedDate": 1490760000,
+ "attributes": {
+ "enabled": true,
+ "created": 1490738438,
+ "updated": 1490738438,
+ "recoveryLevel": "Recoverable"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/encrypt-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/encrypt-example.json
new file mode 100644
index 000000000000..aa8747c60c0d
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/encrypt-example.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "sdktestkey",
+ "key-version": "f6bc1f3d37c14b2bb1a2ebb4b24e9535",
+ "api-version": "7.1",
+ "parameters": {
+ "alg": "RSA1_5",
+ "value": "5ka5IVsnGrzufA"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "kid": "https://myvault.vault.azure.net/keys/sdktestkey/f6bc1f3d37c14b2bb1a2ebb4b24e9535",
+ "value": "CR0Hk0z72oOit5TxObqRpo-WFGZkb5BeN1C0xJFKHxzdDCESYPCNB-OkiWVAnMcSyu6g2aC8riVRRxY5MC2CWKj-CJ_SMke5X2kTi5yi4hJ5vuOLzmg_M6Bmqib7LsI-TeJHr9rs3-tZaSCdZ2zICeFWYduWV5rPjTnAD98epTorT8AA1zMaYHMIhKpmttcj18-dHr0E0T55dgRtsjK04uC3FlRd3odl4RhO1UHAmYpDd5FUqN-20R0dK0Zk8F8sOtThLhEmuLvqPHOCUBiGUhHA4nRDq1La4SUbThu2KMQJL6BbxxEymuliaYcNNtW7MxgVOf6V3mFxVNRY622i9g"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/getDeletedStorageAccount.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/getDeletedStorageAccount.json
new file mode 100644
index 000000000000..1e557603567d
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/getDeletedStorageAccount.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "deleteStrg01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "https://myvault.vault.azure.net/storage/deleteStrg01",
+ "resourceId": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc",
+ "activeKeyName": "key1",
+ "autoRegenerateKey": true,
+ "regenerationPeriod": "P30D",
+ "recoveryId": "https://myvault.vault.azure.net/deletedstorage/deleteStrg01",
+ "scheduledPurgeDate": 1490790000,
+ "deletedDate": 1490760000,
+ "attributes": {
+ "enabled": true,
+ "created": 1490738386,
+ "updated": 1490738386,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "tag1": "val1",
+ "tag2": "val2"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/getDeletedStorageSasDefinition.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/getDeletedStorageSasDefinition.json
new file mode 100644
index 000000000000..116dd63fbac1
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/getDeletedStorageSasDefinition.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "deletesas01",
+ "sas-definition-name": "deleteStrgSasDef01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "https://myvault.vault.azure.net/storage/deletesas01/sas/deleteStrgSasDef01",
+ "sid": "https://myvault.vault.azure.net/secrets/deletesas01-deleteStrgSasDef01",
+ "templateUri": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D",
+ "sasType": "service",
+ "validityPeriod": "P15D",
+ "recoveryId": "https://myvault.vault.azure.net/deletedstorage/deletesas01/sas/deleteStrgSasDef01",
+ "scheduledPurgeDate": 1490790000,
+ "deletedDate": 1490760000,
+ "attributes": {
+ "enabled": true,
+ "created": 1490738438,
+ "updated": 1490738438,
+ "recoveryLevel": "Recoverable"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/getStorageAccount.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/getStorageAccount.json
new file mode 100644
index 000000000000..113f3ec74efb
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/getStorageAccount.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "readStrg01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "https://myvault.vault.azure.net/storage/readStrg01",
+ "resourceId": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc",
+ "activeKeyName": "key1",
+ "autoRegenerateKey": true,
+ "regenerationPeriod": "P30D",
+ "attributes": {
+ "enabled": true,
+ "created": 1490738386,
+ "updated": 1490738386,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "tag1": "val1",
+ "tag2": "val2"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/getStorageSasDefinition.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/getStorageSasDefinition.json
new file mode 100644
index 000000000000..256d6bbed0f7
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/getStorageSasDefinition.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "getsas01",
+ "sas-definition-name": "getStrgSasDef01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "https://myvault.vault.azure.net/storage/getsas01/sas/getStrgSasDef01",
+ "sid": "https://myvault.vault.azure.net/secrets/getsas01-getStrgSasDef01",
+ "templateUri": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D",
+ "sasType": "service",
+ "validityPeriod": "P15D",
+ "attributes": {
+ "enabled": true,
+ "created": 1490738438,
+ "updated": 1490738438,
+ "recoveryLevel": "Recoverable"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/listDeletedStorageAccount.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/listDeletedStorageAccount.json
new file mode 100644
index 000000000000..c9ef218cd891
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/listDeletedStorageAccount.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "https://myvault.vault.azure.net/storage/listDeletedStorage01",
+ "resourceId": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc1",
+ "recoveryId": "https://myvault.vault.azure.net/deletedstorage/listDeletedStorage01",
+ "scheduledPurgeDate": 1490790000,
+ "deletedDate": 1490760000,
+ "attributes": {
+ "enabled": true,
+ "created": 1490738386,
+ "updated": 1490738386,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "tag1": "val1",
+ "tag2": "val2"
+ }
+ },
+ {
+ "id": "https://myvault.vault.azure.net/storage/listDeletedStorage02",
+ "resourceId": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc2",
+ "recoveryId": "https://myvault.vault.azure.net/deletedstorage/listDeletedStorage02",
+ "scheduledPurgeDate": 1490790000,
+ "deletedDate": 1490760000,
+ "attributes": {
+ "enabled": true,
+ "created": 1490738386,
+ "updated": 1490738386,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "tag3": "val3",
+ "tag4": "val4"
+ }
+ }
+ ],
+ "nextLink": "https://{BaseUri}/storage?api-version=7.1&%24skiptoken="
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/listDeletedStorageSasDefinition.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/listDeletedStorageSasDefinition.json
new file mode 100644
index 000000000000..bdd30e6dab0d
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/listDeletedStorageSasDefinition.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "listsas01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "https://myvault.vault.azure.net/storage/listsas01/sas/listDeletedSasDef01",
+ "sid": "https://myvault.vault.azure.net/secrets/listsas01-listDeletedSasDef01",
+ "recoveryId": "https://myvault.vault.azure.net/deletedstorage/listsas01/sas/listDeletedSasDef01",
+ "scheduledPurgeDate": 1490790000,
+ "deletedDate": 1490760000,
+ "attributes": {
+ "enabled": true,
+ "created": 1490738438,
+ "updated": 1490738438,
+ "recoveryLevel": "Recoverable"
+ }
+ },
+ {
+ "id": "https://myvault.vault.azure.net/storage/listsas01/sas/listDeletedSasDef02",
+ "sid": "https://myvault.vault.azure.net/secrets/listsas01-listDeletedSasDef02",
+ "recoveryId": "https://myvault.vault.azure.net/deletedstorage/listsas01/sas/listDeletedSasDef02",
+ "scheduledPurgeDate": 1490790000,
+ "deletedDate": 1490760000,
+ "attributes": {
+ "enabled": true,
+ "created": 1490738438,
+ "updated": 1490738438,
+ "recoveryLevel": "Recoverable"
+ }
+ }
+ ],
+ "nextLink": "https://{BaseUri}/deletedstorage/listsas01/sas?api-version=7.1&%24skiptoken="
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/listStorageAccount.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/listStorageAccount.json
new file mode 100644
index 000000000000..15dcc98e88aa
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/listStorageAccount.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "https://myvault.vault.azure.net/storage/listStorage01",
+ "resourceId": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc1",
+ "attributes": {
+ "enabled": true,
+ "created": 1490738386,
+ "updated": 1490738386,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "tag1": "val1",
+ "tag2": "val2"
+ }
+ },
+ {
+ "id": "https://myvault.vault.azure.net/storage/listStorage02",
+ "resourceId": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc2",
+ "attributes": {
+ "enabled": true,
+ "created": 1490738386,
+ "updated": 1490738386,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "tag3": "val3",
+ "tag4": "val4"
+ }
+ }
+ ],
+ "nextLink": "https://{BaseUri}/storage?api-version=7.1&%24skiptoken="
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/listStorageSasDefinition.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/listStorageSasDefinition.json
new file mode 100644
index 000000000000..d38a475b2dee
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/listStorageSasDefinition.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "listsas01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "https://myvault.vault.azure.net/storage/listsas01/sas/listStrgSasDef01",
+ "sid": "https://myvault.vault.azure.net/secrets/listsas01-listStrgSasDef01",
+ "attributes": {
+ "enabled": true,
+ "created": 1490738438,
+ "updated": 1490738438,
+ "recoveryLevel": "Recoverable"
+ }
+ },
+ {
+ "id": "https://myvault.vault.azure.net/storage/listsas01/sas/listStrgSasDef02",
+ "sid": "https://myvault.vault.azure.net/secrets/listsas01-listStrgSasDef02",
+ "attributes": {
+ "enabled": true,
+ "created": 1490738438,
+ "updated": 1490738438,
+ "recoveryLevel": "Recoverable"
+ }
+ }
+ ],
+ "nextLink": "https://{BaseUri}/storage/listsas01/sas?api-version=7.1&%24skiptoken="
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/purgeStorageAccount.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/purgeStorageAccount.json
new file mode 100644
index 000000000000..d0dff7f5194e
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/purgeStorageAccount.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "purgeStrg01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "204": {
+ "headers": {}
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/recoverStorageAccount.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/recoverStorageAccount.json
new file mode 100644
index 000000000000..e9d8f62481cf
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/recoverStorageAccount.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "recoverStrg01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "https://myvault.vault.azure.net/storage/recoverStrg01",
+ "resourceId": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc",
+ "activeKeyName": "key1",
+ "autoRegenerateKey": true,
+ "regenerationPeriod": "P30D",
+ "attributes": {
+ "enabled": true,
+ "created": 1490738386,
+ "updated": 1490738386,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "tag1": "val1",
+ "tag2": "val2"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/recoverStorageSasDefinition.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/recoverStorageSasDefinition.json
new file mode 100644
index 000000000000..67c05a3d1f0f
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/recoverStorageSasDefinition.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "recoversas01",
+ "sas-definition-name": "recoverStrgSasDef01",
+ "api-version": "7.1"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "https://myvault.vault.azure.net/storage/recoversas01/sas/recoverStrgSasDef01",
+ "sid": "https://myvault.vault.azure.net/secrets/recoversas01-recoverStrgSasDef01",
+ "templateUri": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D",
+ "sasType": "service",
+ "validityPeriod": "P15D",
+ "attributes": {
+ "enabled": true,
+ "created": 1490738438,
+ "updated": 1490738438,
+ "recoveryLevel": "Recoverable"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/regenerateStorageAccountKey.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/regenerateStorageAccountKey.json
new file mode 100644
index 000000000000..4ae10e56b9bc
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/regenerateStorageAccountKey.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "regenerateKey01",
+ "api-version": "7.1",
+ "parameters": {
+ "keyName": "key2"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "https://myvault.vault.azure.net/storage/regenerateKey01",
+ "resourceId": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc",
+ "activeKeyName": "key2",
+ "autoRegenerateKey": true,
+ "regenerationPeriod": "P10D",
+ "attributes": {
+ "enabled": true,
+ "created": 1490738386,
+ "updated": 1490738386,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "tag1": "val1",
+ "tag2": "val2"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/restoreStorageAccount.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/restoreStorageAccount.json
new file mode 100644
index 000000000000..07b460cb9971
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/restoreStorageAccount.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "readStrg01",
+ "api-version": "7.1",
+ "parameters": {
+ "value": "KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLk1JeFMyLXh0eHAxekpaZ3ZrTUY3d2pGMWxiLVJyNWFrbHFMLXpBaVVOODJKZFJNUDFwak5iS0phRktIOXBRcDg4ODBKeERDSmdESUZHc19OOGlnYmdIZ0Q1c0xVMi1pRzdKM29Hc00taFRMb05oaUd6aGY1YVREakYzWjZpZVhxcFMzVFVOVUFkeFhpTkpIYk94YjBmWHNtcWFtNnA0dXJ3Yzl3Qnk1c2pwRnJheHNRM3NRcHBDLXZybXlVZExaelJIWS0xYnhwaFQxVUdiS0Zsd1dSODU5TmFSQ1BZOFhDWUVrX0hxNnc5S0lWSXRTTlRYYWYxUWFzUDJob0NHT19PMzkzVUNzWGp0NzRtOURqdi1vTHRoMUl6TU5sSWp0STg2MTRhTGs0RTFMUXd6ZUx2X2Y1cndKeXJOWkF1c3VWRlRieFp1Zzh6T3BfYTdCOGhGSEJyQS5rc3pPdTN3blllb1ZUUjRLc2dqMUxBLmYyY3huVE1BbU13Ty1RcmdHSUFYUFN2bEdZUDRYWmJvMFVFOGxtY2xZa3ZhRE5ab3E0Wm41MVNKTDNuUFZsVnBaRFlrUmlpd05BSUxvRS12QWtVbmZoLUczOWo3RHhqWm1zZW02bXBmOWxoZjBnZFFNTDdmejBqRDZ0dW1xSVFaWUhFalV3VG5xdDloeEw5N0lnUUV0WmtFV0VnUEJETnJJNFpYWXdNU2ZyR0FfdkgzYXU1MWpabDFTWjlGajJsTHpEblNqbFd0U05QSzc3X2RwbUxrTXNCSmMtamRteUpxYmVxdmdRcGFTSUNsOXpUUXFQM2RxN1VQV2c1R1ZDNmlNZjlTcnBoUVRKX1V2bnp4LWk4ZWR6ZUppd2hYNW9HQ043RDNDWjkxTzNLQkhmYklOX1VvQWlQVWxzazFveU9KOEVjMk5mbHhOaFlrNFRKUTFBN2xnbXlLRlNQeVMyaFlwUDA2VEpTb0JUenVTQk5OTVdmT0RaTDFfV3V5eThJcDktdlVHMW5JOENDQ1hIeEVVN2FVLW5nRVR5aFBfbWt3Q2FGLWx2WTNqZlV1Z29wSllLR3VscXZadk1VZHhLYU1oemR2a05ubFdGeXlJNXdiRUdZcWgzWEJ0MS11TThrOFZVTDdQallzVUt4S1dYbzBMblJPZmFTbTZpTm9ZTmFOTm5YbF9fVW9rd05fSWM0eVVYR3RuMFhUcTZ4anQwZUpEajlET3FyYmdiLTZoclltRmxLTUNqalVxSGtLU1VPaHVYSE9jOFdFa0JEM1hiR29idi03b3c0c0gyN0YxbHh2UVh0OVgtOUl1akN5dHBMYmt6YnJVdHZJT2puY19xTUNjMXFFTG1wZHJCTGFoMzVmWHZQZXotVk9zSXBNOGdsekhWUUgyWWZHU0UwaTJqVkxpVllkZlFHeDNwdTZPamdUc1hPUm5acldlbFExMVlNbUJkWlVqWFNlZkVlQkxuT1lBbUNtYWM0dHNTa2JHTXZzQm92OWNEc1NRLWlsQUhsT1Fsanp3Umt1bnIxdk1ITlFhRDJLUEE5eGxxZ2NKU3FGT3d3RzROSzBxamhyb0NoZDFxM2RHR2V3U2tTd2xZbW44ZlM0VEJ5VjFMYmtWb2NZZHpiWDhiZG54dHRhVDhKS0pUbjJETWxjVFpvR1hFbWQzN2ZZVnlaNm5uMXdxZExtVW9XLW5OQXc3T3RLV3hyMXJUNV9qOHZjRGhTWk1HdTF6aV81NDEyVTRLcG01dlQ3c3BpWXA4aDl3Rk5scmFjYnVjZGVlaS1zMWR6cDlqWGo2NjRuWWxoYzNjOHJubjJ4ZWlna09YLTNUSWxnbmdxeXpJWG5ROHU0dTc5TC1ObXk1VFNjLU4wTnJVTUxQVE51MnhsUlE4Y0VLT0h4QkJGQV80Nk1yVXlhbjUwODFMSlYtTVVyaXAycl9tS3FJRjJET2wxS2V1aGg5am9PeFVybUk0T19MYkduVjJTbUdoZEZSd3FxUS15U2pxcFE2OFBza3hlQmxTdDZnX28tLVl6Qkg3dDI4V3ZYYzdIT3paNFBwa0psTjVmWFRwOXgtOGNuTGptcG5Pc2hUZWxTUXRYaDMwcTU3LXJZbVJzc2t2cFZfaTZFX2JUMTk2VWtTOHo2WUp1QXh3LXdlZ2tPY1ZITUxkeW5vaDU2UUtuWDhMVFdHdjhqWWNQazlaSlNSbXljTExOcWNtRnpUU1JEbzBXMXBkQVJXY2tqRFM2VFZIdTlHSElsTG9oRnpONEU1T3FqdUMxRjEwSFZjUGxoNTc5UmczWk1SNWJoVjltSEZNOFhJZU9HTHAxZFkxbnNLY2dqRVVlUW5qcF9za0RzanJZMVVncXRkTTVNVWhNSHlEZlhaZ3libk1jSDVRaml0YjdWZktrQk1YcGRwU3pLQWx0WDNjelIwODRPVm5nVGtiV2JZQURDTUQ2N1dlLWM1ZDFONHI2WFdFb2RXelNyWlhyZmc0RVRNNG1UZnV3ZjB0d3NORkRJdW5BWDkwbnZJWm1Ualo2RktpTjBiRnVNWmRpR1NKNTZNUEZMcFd3N3p0dmVmN0xENmhjNHJESXBQbEkwTVlVWTJSLWZGakdaZ29JTmdKMkVuMGFFM0c1V1RySjRxcHhhdHB4MVk3ZUgzOUk3WTYzcEJFWEtkRWIwTmstM0tnM0ljbDJPSkp6SU1fM1VHSlJTTmRQWGlfV3ViNGRTMDV4eURzZTR0d1FXdm9rb1QybHlZNGphNlVOc3lvYWN1eGFsTUZvUFR5dHF4YlVTaXFIMEZab0pWcm84amZja2wyYklmSzRqRzN6TnJIOWU1c3VUVWJDV09wYjczeFNMMG9TLVQ0T1JSNnBRbTZHQk05bFJ0eUhtMHJUMy1sNXc0c2ItNnRDcTM4S3FRdURRTGVTcDI1Rk8zMU1uVE5nTFlUeEUwUEZDT3hmRG1RY3BOOFRoWHBGbzZLNHNrd0dmQkpKTU9BTWtIUWZnMUM0c0V5cS1PLS1FWFhjbVV6QjJGRnR4c1gwR3o0aGJSdTFiUlhXcWMxU0IyUk82d0JsWGdPUmJqZjJlLWJQUFFMdmtGcWR3bFpUTE1kaWVUdjQyQmd1SFd3dzI5OEVqcnNNUXg1WG9aRG11MDFRTzlZSjFmTEYtWjkwWEVOU2p5OTM0M3UyUHhrNjhheG10bnp2ZTdwd3Q3Z0ZMMUoxZlZEd3BqMUtBZDdwdGZoWG4yUzJmT1Bfc3JOM3QxNk1qX29qOUVLQm5VNC1jQ3RLWGRkZS1EWk5zQkNhSGZ1bEtHSkFHYmx1UWs2Yi1kQk5oUS05Z19kajdfcjZub2Z2aDRielEybGlQd1E3M1RTazNiQTdzd2EzclZ5ZTVDTVNlOVotNkVKV1phek1sN0w4VUJ3cFllN0J0eHhUNEVBVGo2SXBvYWhGNTgtRHpiMmRsc1c1ZDZIWmpYZUNMTGtVRmQ5Mll3eDBibFlCanc4eTVzM040OEJMME84WG51ak42c0F0eG04Sm9hWXFVUUd3LXNBS1pTZHAzNk1GNlZXYkpUcHBoZHQ2aEhWQjFoRzdpSGN1STBTRzY0WjczNXEzZ0tSYXFHdzhIUXItSWNyeks0VEQwenk5b01NMHpRLVFBSE1PdzAyX0ozU3pVQWZ1bzFWNU42ajB0VGsyeEt0TFp3cmlHOHJNRl9NWTJrN09mdkxqNFlCb3VNN2lBNVM4LnNfM0VabFhIb1lrV283ZzdpRUp1bHc"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "https://myvault.vault.azure.net/storage/restoreStrg01",
+ "resourceId": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc",
+ "activeKeyName": "key1",
+ "autoRegenerateKey": true,
+ "regenerationPeriod": "P30D",
+ "attributes": {
+ "enabled": true,
+ "created": 1490738386,
+ "updated": 1490738386,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "tag1": "val1",
+ "tag2": "val2"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/setStorageAccount.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/setStorageAccount.json
new file mode 100644
index 000000000000..8add0f1d5785
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/setStorageAccount.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "setStrg01",
+ "api-version": "7.1",
+ "parameters": {
+ "resourceId": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc",
+ "activeKeyName": "key2",
+ "autoRegenerateKey": true,
+ "regenerationPeriod": "P15D",
+ "attributes": {
+ "enabled": true
+ },
+ "tags": {
+ "tag1": "val1",
+ "tag2": "val2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "https://myvault.vault.azure.net/storage/setStrg01",
+ "resourceId": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc",
+ "activeKeyName": "key2",
+ "autoRegenerateKey": true,
+ "regenerationPeriod": "P15D",
+ "attributes": {
+ "enabled": true,
+ "created": 1490738386,
+ "updated": 1490738386,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "tag1": "val1",
+ "tag2": "val2"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/setStorageSasDefinition.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/setStorageSasDefinition.json
new file mode 100644
index 000000000000..51613c803afe
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/setStorageSasDefinition.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "setsas01",
+ "sas-definition-name": "setStrgSasDef01",
+ "api-version": "7.1",
+ "parameters": {
+ "templateUri": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D",
+ "sasType": "service",
+ "validityPeriod": "P15D",
+ "attributes": {
+ "enabled": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "https://myvault.vault.azure.net/storage/setsas01/sas/setStrgSasDef01",
+ "sid": "https://myvault.vault.azure.net/secrets/setsas01-setStrgSasDef01",
+ "templateUri": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D",
+ "sasType": "service",
+ "validityPeriod": "P15D",
+ "attributes": {
+ "enabled": true,
+ "created": 1490738438,
+ "updated": 1490738438,
+ "recoveryLevel": "Recoverable"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/sign-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/sign-example.json
new file mode 100644
index 000000000000..106979d81a71
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/sign-example.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "testkey",
+ "key-version": "9885aa558e8d448789683188f8c194b0",
+ "api-version": "7.1",
+ "parameters": {
+ "alg": "RS512",
+ "value": "RUE3Nzg4NTQ4QjQ5RjFFN0U2NzAyQzhDNEMwMkJDOTA1MTYyOTUzNjI5NDhBNzZDQTlFOTM1NDA2M0ZGMjk2Mg"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "kid": "https://myvault.vault.azure.net/keys/testkey/9885aa558e8d448789683188f8c194b0",
+ "value": "aKFG8NXcfTzqyR44rW42484K_zZI_T7zZuebvWuNgAoEI1gXYmxrshp42CunSmmu4oqo4-IrCikPkNIBkHXnAW2cv03Ad0UpwXhVfepK8zzDBaJPMKVGS-ZRz8CshEyGDKaLlb3J3zEkXpM3RrSEr0mdV6hndHD_mznLB5RmFui5DsKAhez4vUqajgtkgcPfCekMqeSwp6r9ItVL-gEoAohx8XMDsPedqu-7BuZcBcdayaPuBRL4wWoTDULA11P-UN_sJ5qMj3BbiRYhIlBWGR04wIGfZ3pkJjHJUpOvgH2QajdYPzUBauOCewMYbq9XkLRSzI_A7HkkDVycugSeAA"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/unwrapKey-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/unwrapKey-example.json
new file mode 100644
index 000000000000..19acbf2b5033
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/unwrapKey-example.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "sdktestkey",
+ "key-version": "0698c2156c1a4e1da5b6bab6f6422fd6",
+ "api-version": "7.1",
+ "parameters": {
+ "alg": "RSA1_5",
+ "value": "khwIe26NuAZazS7upywDBpGRmRNMW5-4h_JQKxOdB78nYVxZWnBXwCxOv7a3Sr_mCjiVzKsoQQZwL-CJzhYa0512tfYem56zls5a44y5QsdcfvuSzOvpthVhA9XkEfCJSqSY_sip5d8BelT_w_ikvd_8KqiQ_0H54RqYUN8svCpu28paHgBocHFNXTQ9NtU9ec2qgESXk7Jp4OTy9HJtQJavKDUqTJ3YmtLxUgsgBCe0FNMHUSEYC0Ys6PavYzdTwIzYCq84idmAxJOj-O_6eALJFH2sDTOQYHjzOae2t8eFmw6C-t55qjrCI91a9mUJEGPhYixiG4gR4PaEJ7wGvw"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "kid": "https://myvault.vault.azure.net/keys/sdktestkey/0698c2156c1a4e1da5b6bab6f6422fd6",
+ "value": "ovQIlbB0DgWhZA7sgkPxbg9H-Ly-VlNGPSgGrrZvlIo"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/updateStorageAccount.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/updateStorageAccount.json
new file mode 100644
index 000000000000..69f6dea87646
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/updateStorageAccount.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "patchStrg01",
+ "api-version": "7.1",
+ "parameters": {
+ "activeKeyName": "key1",
+ "regenerationPeriod": "P10D"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "https://myvault.vault.azure.net/storage/patchStrg01",
+ "resourceId": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc",
+ "activeKeyName": "key1",
+ "autoRegenerateKey": true,
+ "regenerationPeriod": "P10D",
+ "attributes": {
+ "enabled": true,
+ "created": 1490738386,
+ "updated": 1490738386,
+ "recoveryLevel": "Recoverable+Purgeable"
+ },
+ "tags": {
+ "tag1": "val1",
+ "tag2": "val2"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/updateStorageSasDefinition.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/updateStorageSasDefinition.json
new file mode 100644
index 000000000000..be1d4ce95f1e
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/updateStorageSasDefinition.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "storage-account-name": "patchsas01",
+ "sas-definition-name": "patchStrgSasDef01",
+ "api-version": "7.1",
+ "parameters": {
+ "templateUri": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D",
+ "sasType": "service",
+ "validityPeriod": "P15D",
+ "attributes": {
+ "enabled": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "https://myvault.vault.azure.net/storage/patchsas01/sas/patchStrgSasDef01",
+ "sid": "https://myvault.vault.azure.net/secrets/patchsas01-patchStrgSasDef01",
+ "templateUri": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D",
+ "sasType": "service",
+ "validityPeriod": "P15D",
+ "attributes": {
+ "enabled": true,
+ "created": 1490738438,
+ "updated": 1490738438,
+ "recoveryLevel": "Recoverable"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/verify-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/verify-example.json
new file mode 100644
index 000000000000..ce937805097a
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/verify-example.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "testkey",
+ "key-version": "9885aa558e8d448789683188f8c194b0",
+ "api-version": "7.1",
+ "parameters": {
+ "alg": "RS512",
+ "value": "RUE3Nzg4NTQ4QjQ5RjFFN0U2NzAyQzhDNEMwMkJDOTA1MTYyOTUzNjI5NDhBNzZDQTlFOTM1NDA2M0ZGMjk2Mg",
+ "digest": "aKFG8NXcfTzqyR44rW42484K_zZI_T7zZuebvWuNgAoEI1gXYmxrshp42CunSmmu4oqo4-IrCikPkNIBkHXnAW2cv03Ad0UpwXhVfepK8zzDBaJPMKVGS-ZRz8CshEyGDKaLlb3J3zEkXpM3RrSEr0mdV6hndHD_mznLB5RmFui5DsKAhez4vUqajgtkgcPfCekMqeSwp6r9ItVL-gEoAohx8XMDsPedqu-7BuZcBcdayaPuBRL4wWoTDULA11P-UN_sJ5qMj3BbiRYhIlBWGR04wIGfZ3pkJjHJUpOvgH2QajdYPzUBauOCewMYbq9XkLRSzI_A7HkkDVycugSeAA"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": true
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/wrapKey-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/wrapKey-example.json
new file mode 100644
index 000000000000..7fe02213f38a
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/examples/wrapKey-example.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "vaultBaseUrl": "https://myvault.vault.azure.net/",
+ "key-name": "sdktestkey",
+ "key-version": "0698c2156c1a4e1da5b6bab6f6422fd6",
+ "api-version": "7.1",
+ "parameters": {
+ "alg": "RSA1_5",
+ "value": "ovQIlbB0DgWhZA7sgkPxbg9H-Ly-VlNGPSgGrrZvlIo"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "kid": "https://myvault.vault.azure.net/keys/sdktestkey/0698c2156c1a4e1da5b6bab6f6422fd6",
+ "value": "khwIe26NuAZazS7upywDBpGRmRNMW5-4h_JQKxOdB78nYVxZWnBXwCxOv7a3Sr_mCjiVzKsoQQZwL-CJzhYa0512tfYem56zls5a44y5QsdcfvuSzOvpthVhA9XkEfCJSqSY_sip5d8BelT_w_ikvd_8KqiQ_0H54RqYUN8svCpu28paHgBocHFNXTQ9NtU9ec2qgESXk7Jp4OTy9HJtQJavKDUqTJ3YmtLxUgsgBCe0FNMHUSEYC0Ys6PavYzdTwIzYCq84idmAxJOj-O_6eALJFH2sDTOQYHjzOae2t8eFmw6C-t55qjrCI91a9mUJEGPhYixiG4gR4PaEJ7wGvw"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/index.md b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/index.md
new file mode 100644
index 000000000000..1d8c9d77ab0e
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/index.md
@@ -0,0 +1,26 @@
+---
+ms.assetid: 357c9947-1098-4a03-9f1e-7b27e5aa75bf
+ms.title: Azure Key Vault REST Reference
+ms.prod:
+ms.service: azure-keyvault
+author: BrucePerlerMS
+ms.author: bruceper
+ms.manager: mbaldwin
+---
+
+# Azure Key Vault
+
+Azure Key Vault enables users to store and use cryptographic keys within the Microsoft Azure environment. Azure Key Vault supports multiple key types and algorithms, and enables the use of Hardware Security Modules (HSM) for high value customer keys. Key Vault also supports storage of secrets, limited size octet objects. Certificate management is also available through Key Vault including support for renewal processing and working with a range of certificate authorities.
+
+## REST Operation Groups
+
+| Operation Group | Description |
+|-----------------|-------------|
+|Keys | Operations for interacting with keys including create, import, update, and delete.|
+|Secrets | Operations for interacting with secrets including create, update, and delete.|
+|Certificates | Operations for interacting with certificates including create, import, update, delete and a set of contact and renewal management tasks.|
+|Storage | Operations for interacting with storage accounts including create, read, update, delete, list, regeneratekey and a set of sas definition related tasks.|
+
+## See Also
+
+- [About keys, secrets, certificates and storage](link)
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/keys.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/keys.json
new file mode 100644
index 000000000000..6d4a85db9488
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/keys.json
@@ -0,0 +1,1734 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "KeyVaultClient",
+ "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.",
+ "version": "7.1"
+ },
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{vaultBaseUrl}",
+ "useSchemePrefix": false,
+ "positionInOperation": "first",
+ "parameters": [
+ {
+ "name": "vaultBaseUrl",
+ "description": "The vault name, for example https://myvault.vault.azure.net.",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ }
+ ]
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/keys/{key-name}/create": {
+ "post": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "CreateKey",
+ "summary": "Creates a new key, stores it, then returns key parameters and attributes to the client.",
+ "description": "The create key operation can be used to create any key type in Azure Key Vault. If the named key already exists, Azure Key Vault creates a new version of the key. It requires the keys/create permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z-]+$",
+ "description": "The name for the new key. The system will generate the version name for the new key."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/KeyCreateParameters"
+ },
+ "description": "The parameters to create a key."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A key bundle containing the result of the create key request.",
+ "schema": {
+ "$ref": "#/definitions/KeyBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create key": {
+ "$ref": "./examples/CreateKey-example.json"
+ }
+ }
+ }
+ },
+ "/keys/{key-name}": {
+ "put": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "ImportKey",
+ "summary": "Imports an externally created key, stores it, and returns key parameters and attributes to the client.",
+ "description": "The import key operation may be used to import any key type into an Azure Key Vault. If the named key already exists, Azure Key Vault creates a new version of the key. This operation requires the keys/import permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z-]+$",
+ "description": "Name for the imported key."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/KeyImportParameters"
+ },
+ "description": "The parameters to import a key."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Imported key bundle to the vault.",
+ "schema": {
+ "$ref": "#/definitions/KeyBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Import key": {
+ "$ref": "./examples/ImportKey-example.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "DeleteKey",
+ "summary": "Deletes a key of any type from storage in Azure Key Vault.",
+ "description": "The delete key operation cannot be used to remove individual versions of a key. This operation removes the cryptographic material associated with the key, which means the key is not usable for Sign/Verify, Wrap/Unwrap or Encrypt/Decrypt operations. This operation requires the keys/delete permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the key to delete."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The public part of the deleted key and deletion information on when the key will be purged.",
+ "schema": {
+ "$ref": "#/definitions/DeletedKeyBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete key": {
+ "$ref": "./examples/DeleteKey-example.json"
+ }
+ }
+ }
+ },
+ "/keys/{key-name}/{key-version}": {
+ "patch": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "UpdateKey",
+ "summary": "The update key operation changes specified attributes of a stored key and can be applied to any key type and key version stored in Azure Key Vault.",
+ "description": "In order to perform this operation, the key must already exist in the Key Vault. Note: The cryptographic material of a key itself cannot be changed. This operation requires the keys/update permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of key to update."
+ },
+ {
+ "name": "key-version",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The version of the key to update."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/KeyUpdateParameters"
+ },
+ "description": "The parameters of the key to update."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The updated key.",
+ "schema": {
+ "$ref": "#/definitions/KeyBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update key": {
+ "$ref": "./examples/UpdateKey-example.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "GetKey",
+ "summary": "Gets the public part of a stored key.",
+ "description": "The get key operation is applicable to all key types. If the requested key is symmetric, then no key material is released in the response. This operation requires the keys/get permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the key to get."
+ },
+ {
+ "name": "key-version",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Adding the version parameter retrieves a specific version of a key. This URI fragment is optional. If not specified, the latest version of the key is returned."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A key bundle containing the key and its attributes.",
+ "schema": {
+ "$ref": "#/definitions/KeyBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get key": {
+ "$ref": "./examples/GetKey-example.json"
+ }
+ }
+ }
+ },
+ "/keys/{key-name}/versions": {
+ "get": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "GetKeyVersions",
+ "summary": "Retrieves a list of individual key versions with the same key name.",
+ "description": "The full key identifier, attributes, and tags are provided in the response. This operation requires the keys/list permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the key."
+ },
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 25,
+ "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A response message containing a list of keys along with a link to the next page of keys.",
+ "schema": {
+ "$ref": "#/definitions/KeyListResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetKeyVersions": {
+ "$ref": "./examples/GetKeyVersions-example.json"
+ }
+ }
+ }
+ },
+ "/keys": {
+ "get": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "GetKeys",
+ "summary": "List keys in the specified vault.",
+ "description": "Retrieves a list of the keys in the Key Vault as JSON Web Key structures that contain the public part of a stored key. The LIST operation is applicable to all key types, however only the base key identifier, attributes, and tags are provided in the response. Individual versions of a key are not listed in the response. This operation requires the keys/list permission.",
+ "parameters": [
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 25,
+ "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A response message containing a list of keys in the vault along with a link to the next page of keys.",
+ "schema": {
+ "$ref": "#/definitions/KeyListResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetKeys": {
+ "$ref": "./examples/GetKeys-example.json"
+ }
+ }
+ }
+ },
+ "/keys/{key-name}/backup": {
+ "post": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "BackupKey",
+ "summary": "Requests that a backup of the specified key be downloaded to the client.",
+ "description": "The Key Backup operation exports a key from Azure Key Vault in a protected form. Note that this operation does NOT return key material in a form that can be used outside the Azure Key Vault system, the returned key material is either protected to a Azure Key Vault HSM or to Azure Key Vault itself. The intent of this operation is to allow a client to GENERATE a key in one Azure Key Vault instance, BACKUP the key, and then RESTORE it into another Azure Key Vault instance. The BACKUP operation may be used to export, in protected form, any key type from Azure Key Vault. Individual versions of a key cannot be backed up. BACKUP / RESTORE can be performed within geographical boundaries only; meaning that a BACKUP from one geographical area cannot be restored to another geographical area. For example, a backup from the US geographical area cannot be restored in an EU geographical area. This operation requires the key/backup permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the key."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The backup blob containing the backed up key.",
+ "schema": {
+ "$ref": "#/definitions/BackupKeyResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "BackupKey": {
+ "$ref": "./examples/BackupKey-example.json"
+ }
+ }
+ }
+ },
+ "/keys/restore": {
+ "post": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "RestoreKey",
+ "summary": "Restores a backed up key to a vault.",
+ "description": "Imports a previously backed up key into Azure Key Vault, restoring the key, its key identifier, attributes and access control policies. The RESTORE operation may be used to import a previously backed up key. Individual versions of a key cannot be restored. The key is restored in its entirety with the same key name as it had when it was backed up. If the key name is not available in the target Key Vault, the RESTORE operation will be rejected. While the key name is retained during restore, the final key identifier will change if the key is restored to a different vault. Restore will restore all versions and preserve version identifiers. The RESTORE operation is subject to security constraints: The target Key Vault must be owned by the same Microsoft Azure Subscription as the source Key Vault The user must have RESTORE permission in the target Key Vault. This operation requires the keys/restore permission.",
+ "parameters": [
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/KeyRestoreParameters"
+ },
+ "description": "The parameters to restore the key."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Restored key bundle in the vault.",
+ "schema": {
+ "$ref": "#/definitions/KeyBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "RestoreKey": {
+ "$ref": "./examples/RestoreKey-example.json"
+ }
+ }
+ }
+ },
+ "/keys/{key-name}/{key-version}/encrypt": {
+ "post": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "encrypt",
+ "summary": "Encrypts an arbitrary sequence of bytes using an encryption key that is stored in a key vault.",
+ "description": "The ENCRYPT operation encrypts an arbitrary sequence of bytes using an encryption key that is stored in Azure Key Vault. Note that the ENCRYPT operation only supports a single block of data, the size of which is dependent on the target key and the encryption algorithm to be used. The ENCRYPT operation is only strictly necessary for symmetric keys stored in Azure Key Vault since protection with an asymmetric key can be performed using public portion of the key. This operation is supported for asymmetric keys as a convenience for callers that have a key-reference but do not have access to the public key material. This operation requires the keys/encrypt permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the key."
+ },
+ {
+ "name": "key-version",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The version of the key."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/KeyOperationsParameters"
+ },
+ "description": "The parameters for the encryption operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The encryption result.",
+ "schema": {
+ "$ref": "#/definitions/KeyOperationResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Encrypt example": {
+ "$ref": "./examples/encrypt-example.json"
+ }
+ }
+ }
+ },
+ "/keys/{key-name}/{key-version}/decrypt": {
+ "post": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "decrypt",
+ "summary": "Decrypts a single block of encrypted data.",
+ "description": "The DECRYPT operation decrypts a well-formed block of ciphertext using the target encryption key and specified algorithm. This operation is the reverse of the ENCRYPT operation; only a single block of data may be decrypted, the size of this block is dependent on the target key and the algorithm to be used. The DECRYPT operation applies to asymmetric and symmetric keys stored in Azure Key Vault since it uses the private portion of the key. This operation requires the keys/decrypt permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the key."
+ },
+ {
+ "name": "key-version",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The version of the key."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/KeyOperationsParameters"
+ },
+ "description": "The parameters for the decryption operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The decryption result.",
+ "schema": {
+ "$ref": "#/definitions/KeyOperationResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Decrypt example": {
+ "$ref": "./examples/decrypt-example.json"
+ }
+ }
+ }
+ },
+ "/keys/{key-name}/{key-version}/sign": {
+ "post": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "sign",
+ "summary": "Creates a signature from a digest using the specified key.",
+ "description": "The SIGN operation is applicable to asymmetric and symmetric keys stored in Azure Key Vault since this operation uses the private portion of the key. This operation requires the keys/sign permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the key."
+ },
+ {
+ "name": "key-version",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The version of the key."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/KeySignParameters"
+ },
+ "description": "The parameters for the signing operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The signature value.",
+ "schema": {
+ "$ref": "#/definitions/KeyOperationResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Sign": {
+ "$ref": "./examples/sign-example.json"
+ }
+ }
+ }
+ },
+ "/keys/{key-name}/{key-version}/verify": {
+ "post": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "verify",
+ "summary": "Verifies a signature using a specified key.",
+ "description": "The VERIFY operation is applicable to symmetric keys stored in Azure Key Vault. VERIFY is not strictly necessary for asymmetric keys stored in Azure Key Vault since signature verification can be performed using the public portion of the key but this operation is supported as a convenience for callers that only have a key-reference and not the public portion of the key. This operation requires the keys/verify permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the key."
+ },
+ {
+ "name": "key-version",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The version of the key."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/KeyVerifyParameters"
+ },
+ "description": "The parameters for verify operations."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The verification result.",
+ "schema": {
+ "$ref": "#/definitions/KeyVerifyResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Verify": {
+ "$ref": "./examples/verify-example.json"
+ }
+ }
+ }
+ },
+ "/keys/{key-name}/{key-version}/wrapkey": {
+ "post": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "wrapKey",
+ "summary": "Wraps a symmetric key using a specified key.",
+ "description": "The WRAP operation supports encryption of a symmetric key using a key encryption key that has previously been stored in an Azure Key Vault. The WRAP operation is only strictly necessary for symmetric keys stored in Azure Key Vault since protection with an asymmetric key can be performed using the public portion of the key. This operation is supported for asymmetric keys as a convenience for callers that have a key-reference but do not have access to the public key material. This operation requires the keys/wrapKey permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the key."
+ },
+ {
+ "name": "key-version",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The version of the key."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/KeyOperationsParameters"
+ },
+ "description": "The parameters for wrap operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The wrapped symmetric key.",
+ "schema": {
+ "$ref": "#/definitions/KeyOperationResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Wrapkey": {
+ "$ref": "./examples/wrapKey-example.json"
+ }
+ }
+ }
+ },
+ "/keys/{key-name}/{key-version}/unwrapkey": {
+ "post": {
+ "tags": [
+ "Keys"
+ ],
+ "operationId": "unwrapKey",
+ "summary": "Unwraps a symmetric key using the specified key that was initially used for wrapping that key.",
+ "description": "The UNWRAP operation supports decryption of a symmetric key using the target key encryption key. This operation is the reverse of the WRAP operation. The UNWRAP operation applies to asymmetric and symmetric keys stored in Azure Key Vault since it uses the private portion of the key. This operation requires the keys/unwrapKey permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the key."
+ },
+ {
+ "name": "key-version",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The version of the key."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/KeyOperationsParameters"
+ },
+ "description": "The parameters for the key operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The unwrapped symmetric key.",
+ "schema": {
+ "$ref": "#/definitions/KeyOperationResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Unwrapkey": {
+ "$ref": "./examples/unwrapKey-example.json"
+ }
+ }
+ }
+ },
+ "/deletedkeys": {
+ "get": {
+ "tags": [
+ "DeletedKeys"
+ ],
+ "operationId": "GetDeletedKeys",
+ "summary": "Lists the deleted keys in the specified vault.",
+ "description": "Retrieves a list of the keys in the Key Vault as JSON Web Key structures that contain the public part of a deleted key. This operation includes deletion-specific information. The Get Deleted Keys operation is applicable for vaults enabled for soft-delete. While the operation can be invoked on any vault, it will return an error if invoked on a non soft-delete enabled vault. This operation requires the keys/list permission.",
+ "parameters": [
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 25,
+ "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A response message containing a list of deleted keys in the vault along with a link to the next page of deleted keys.",
+ "schema": {
+ "$ref": "#/definitions/DeletedKeyListResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetDeletedKeys": {
+ "$ref": "./examples/GetDeletedKeys-example.json"
+ }
+ }
+ }
+ },
+ "/deletedkeys/{key-name}": {
+ "get": {
+ "tags": [
+ "DeletedKeys"
+ ],
+ "operationId": "GetDeletedKey",
+ "summary": "Gets the public part of a deleted key.",
+ "description": "The Get Deleted Key operation is applicable for soft-delete enabled vaults. While the operation can be invoked on any vault, it will return an error if invoked on a non soft-delete enabled vault. This operation requires the keys/get permission. ",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the key."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A DeletedKeyBundle consisting of a WebKey plus its Attributes and deletion information.",
+ "schema": {
+ "$ref": "#/definitions/DeletedKeyBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetDeletedKey": {
+ "$ref": "./examples/GetDeletedKey-example.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DeletedKeys"
+ ],
+ "operationId": "PurgeDeletedKey",
+ "summary": "Permanently deletes the specified key.",
+ "description": "The Purge Deleted Key operation is applicable for soft-delete enabled vaults. While the operation can be invoked on any vault, it will return an error if invoked on a non soft-delete enabled vault. This operation requires the keys/purge permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the key"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No content, signaling that the key was permanently purged."
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PurgeDeletedKey": {
+ "$ref": "./examples/PurgeDeletedKey-example.json"
+ }
+ }
+ }
+ },
+ "/deletedkeys/{key-name}/recover": {
+ "post": {
+ "tags": [
+ "DeletedKeys"
+ ],
+ "operationId": "RecoverDeletedKey",
+ "summary": "Recovers the deleted key to its latest version.",
+ "description": "The Recover Deleted Key operation is applicable for deleted keys in soft-delete enabled vaults. It recovers the deleted key back to its latest version under /keys. An attempt to recover an non-deleted key will return an error. Consider this the inverse of the delete operation on soft-delete enabled vaults. This operation requires the keys/recover permission.",
+ "parameters": [
+ {
+ "name": "key-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the deleted key."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A Key bundle of the original key and its attributes",
+ "schema": {
+ "$ref": "#/definitions/KeyBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "RecoverDeletedKey": {
+ "$ref": "./examples/RecoverDeletedKey-example.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "JsonWebKey": {
+ "properties": {
+ "kid": {
+ "type": "string",
+ "description": "Key identifier."
+ },
+ "kty": {
+ "type": "string",
+ "description": "JsonWebKey Key Type (kty), as defined in https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40.",
+ "enum": [
+ "EC",
+ "EC-HSM",
+ "RSA",
+ "RSA-HSM",
+ "oct"
+ ],
+ "x-ms-enum": {
+ "name": "JsonWebKeyType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "EC",
+ "description": "Elliptic Curve."
+ },
+ {
+ "value": "EC-HSM",
+ "description": "Elliptic Curve with a private key which is not exportable from the HSM."
+ },
+ {
+ "value": "RSA",
+ "description": "RSA (https://tools.ietf.org/html/rfc3447)"
+ },
+ {
+ "value": "RSA-HSM",
+ "description": "RSA with a private key which is not exportable from the HSM."
+ },
+ {
+ "value": "oct",
+ "description": "Octet sequence (used to represent symmetric keys)"
+ }
+ ]
+ }
+ },
+ "key_ops": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "Supported key operations."
+ }
+ },
+ "n": {
+ "type": "string",
+ "format": "base64url",
+ "description": "RSA modulus."
+ },
+ "e": {
+ "type": "string",
+ "format": "base64url",
+ "description": "RSA public exponent."
+ },
+ "d": {
+ "type": "string",
+ "format": "base64url",
+ "description": "RSA private exponent, or the D component of an EC private key."
+ },
+ "dp": {
+ "x-ms-client-name": "DP",
+ "type": "string",
+ "format": "base64url",
+ "description": "RSA private key parameter."
+ },
+ "dq": {
+ "x-ms-client-name": "DQ",
+ "type": "string",
+ "format": "base64url",
+ "description": "RSA private key parameter."
+ },
+ "qi": {
+ "x-ms-client-name": "QI",
+ "type": "string",
+ "format": "base64url",
+ "description": "RSA private key parameter."
+ },
+ "p": {
+ "type": "string",
+ "format": "base64url",
+ "description": "RSA secret prime."
+ },
+ "q": {
+ "type": "string",
+ "format": "base64url",
+ "description": "RSA secret prime, with p < q."
+ },
+ "k": {
+ "type": "string",
+ "format": "base64url",
+ "description": "Symmetric key."
+ },
+ "key_hsm": {
+ "x-ms-client-name": "t",
+ "type": "string",
+ "format": "base64url",
+ "description": "HSM Token, used with 'Bring Your Own Key'."
+ },
+ "crv": {
+ "type": "string",
+ "description": "Elliptic curve name. For valid values, see JsonWebKeyCurveName.",
+ "enum": [
+ "P-256",
+ "P-384",
+ "P-521",
+ "P-256K"
+ ],
+ "x-ms-enum": {
+ "name": "JsonWebKeyCurveName",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "P-256",
+ "description": "The NIST P-256 elliptic curve, AKA SECG curve SECP256R1."
+ },
+ {
+ "value": "P-384",
+ "description": "The NIST P-384 elliptic curve, AKA SECG curve SECP384R1."
+ },
+ {
+ "value": "P-521",
+ "description": "The NIST P-521 elliptic curve, AKA SECG curve SECP521R1."
+ },
+ {
+ "value": "P-256K",
+ "description": "The SECG SECP256K1 elliptic curve."
+ }
+ ]
+ }
+ },
+ "x": {
+ "type": "string",
+ "format": "base64url",
+ "description": "X component of an EC public key."
+ },
+ "y": {
+ "type": "string",
+ "format": "base64url",
+ "description": "Y component of an EC public key."
+ }
+ },
+ "description": "As of http://tools.ietf.org/html/draft-ietf-jose-json-web-key-18"
+ },
+ "KeyAttributes": {
+ "allOf": [
+ {
+ "$ref": "common.json#/definitions/Attributes"
+ }
+ ],
+ "properties": {
+ "recoverableDays": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "description": "softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0."
+ },
+ "recoveryLevel": {
+ "type": "string",
+ "description": "Reflects the deletion recovery level currently in effect for keys in the current vault. If it contains 'Purgeable' the key can be permanently deleted by a privileged user; otherwise, only the system can purge the key, at the end of the retention interval.",
+ "enum": [
+ "Purgeable",
+ "Recoverable+Purgeable",
+ "Recoverable",
+ "Recoverable+ProtectedSubscription",
+ "CustomizedRecoverable+Purgeable",
+ "CustomizedRecoverable",
+ "CustomizedRecoverable+ProtectedSubscription"
+ ],
+ "x-ms-enum": {
+ "name": "DeletionRecoveryLevel",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Purgeable",
+ "description": "Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.)"
+ },
+ {
+ "value": "Recoverable+Purgeable",
+ "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered"
+ },
+ {
+ "value": "Recoverable",
+ "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval(90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not recovered"
+ },
+ {
+ "value": "Recoverable+ProtectedSubscription",
+ "description": "Denotes a vault and subscription state in which deletion is recoverable within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered"
+ },
+ {
+ "value": "CustomizedRecoverable+Purgeable",
+ "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription is cancelled."
+ },
+ {
+ "value": "CustomizedRecoverable",
+ "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval and while the subscription is still available."
+ },
+ {
+ "value": "CustomizedRecoverable+ProtectedSubscription",
+ "description": "Denotes a vault and subscription state in which deletion is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7<= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled."
+ }
+ ]
+ },
+ "readOnly": true,
+ "x-nullable": false
+ }
+ },
+ "description": "The attributes of a key managed by the key vault service."
+ },
+ "KeyBundle": {
+ "properties": {
+ "key": {
+ "$ref": "#/definitions/JsonWebKey",
+ "description": "The Json web key."
+ },
+ "attributes": {
+ "$ref": "#/definitions/KeyAttributes",
+ "description": "The key management attributes."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ },
+ "managed": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "True if the key's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true."
+ }
+ },
+ "description": "A KeyBundle consisting of a WebKey plus its attributes."
+ },
+ "KeyItem": {
+ "properties": {
+ "kid": {
+ "type": "string",
+ "description": "Key identifier."
+ },
+ "attributes": {
+ "$ref": "#/definitions/KeyAttributes",
+ "description": "The key management attributes."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ },
+ "managed": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "True if the key's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true."
+ }
+ },
+ "description": "The key item containing key metadata."
+ },
+ "DeletedKeyBundle": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/KeyBundle"
+ }
+ ],
+ "properties": {
+ "recoveryId": {
+ "type": "string",
+ "description": "The url of the recovery object, used to identify and recover the deleted key."
+ },
+ "scheduledPurgeDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the key is scheduled to be purged, in UTC"
+ },
+ "deletedDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the key was deleted, in UTC"
+ }
+ },
+ "description": "A DeletedKeyBundle consisting of a WebKey plus its Attributes and deletion info"
+ },
+ "DeletedKeyItem": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/KeyItem"
+ }
+ ],
+ "properties": {
+ "recoveryId": {
+ "type": "string",
+ "description": "The url of the recovery object, used to identify and recover the deleted key."
+ },
+ "scheduledPurgeDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the key is scheduled to be purged, in UTC"
+ },
+ "deletedDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the key was deleted, in UTC"
+ }
+ },
+ "description": "The deleted key item containing the deleted key metadata and information about deletion."
+ },
+ "KeyProperties": {
+ "properties": {
+ "exportable": {
+ "type": "boolean",
+ "description": "Indicates if the private key can be exported."
+ },
+ "kty": {
+ "x-ms-client-name": "keyType",
+ "type": "string",
+ "description": "The type of key pair to be used for the certificate.",
+ "enum": [
+ "EC",
+ "EC-HSM",
+ "RSA",
+ "RSA-HSM",
+ "oct"
+ ],
+ "x-ms-enum": {
+ "name": "JsonWebKeyType",
+ "modelAsString": true
+ }
+ },
+ "key_size": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The key size in bits. For example: 2048, 3072, or 4096 for RSA."
+ },
+ "reuse_key": {
+ "type": "boolean",
+ "description": "Indicates if the same key pair will be used on certificate renewal."
+ },
+ "crv": {
+ "x-ms-client-name": "curve",
+ "type": "string",
+ "description": "Elliptic curve name. For valid values, see JsonWebKeyCurveName.",
+ "enum": [
+ "P-256",
+ "P-384",
+ "P-521",
+ "P-256K"
+ ],
+ "x-ms-enum": {
+ "name": "JsonWebKeyCurveName",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Properties of the key pair backing a certificate."
+ },
+ "KeyCreateParameters": {
+ "properties": {
+ "kty": {
+ "type": "string",
+ "minLength": 1,
+ "description": "The type of key to create. For valid values, see JsonWebKeyType.",
+ "enum": [
+ "EC",
+ "EC-HSM",
+ "RSA",
+ "RSA-HSM",
+ "oct"
+ ],
+ "x-ms-enum": {
+ "name": "JsonWebKeyType",
+ "modelAsString": true
+ }
+ },
+ "key_size": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The key size in bits. For example: 2048, 3072, or 4096 for RSA."
+ },
+ "key_ops": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "JSON web key operations. For more information, see JsonWebKeyOperation.",
+ "enum": [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "wrapKey",
+ "unwrapKey",
+ "import"
+ ],
+ "x-ms-enum": {
+ "name": "JsonWebKeyOperation",
+ "modelAsString": true
+ }
+ }
+ },
+ "attributes": {
+ "x-ms-client-name": "keyAttributes",
+ "$ref": "#/definitions/KeyAttributes"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ },
+ "crv": {
+ "x-ms-client-name": "curve",
+ "type": "string",
+ "description": "Elliptic curve name. For valid values, see JsonWebKeyCurveName.",
+ "enum": [
+ "P-256",
+ "P-384",
+ "P-521",
+ "P-256K"
+ ],
+ "x-ms-enum": {
+ "name": "JsonWebKeyCurveName",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "The key create parameters.",
+ "required": [
+ "kty"
+ ]
+ },
+ "KeyImportParameters": {
+ "properties": {
+ "Hsm": {
+ "type": "boolean",
+ "description": "Whether to import as a hardware key (HSM) or software key."
+ },
+ "key": {
+ "$ref": "#/definitions/JsonWebKey",
+ "description": "The Json web key"
+ },
+ "attributes": {
+ "x-ms-client-name": "keyAttributes",
+ "$ref": "#/definitions/KeyAttributes",
+ "description": "The key management attributes."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ }
+ },
+ "description": "The key import parameters.",
+ "required": [
+ "key"
+ ]
+ },
+ "KeyOperationsParameters": {
+ "properties": {
+ "alg": {
+ "x-ms-client-name": "algorithm",
+ "type": "string",
+ "minLength": 1,
+ "description": "algorithm identifier",
+ "enum": [
+ "RSA-OAEP",
+ "RSA-OAEP-256",
+ "RSA1_5"
+ ],
+ "x-ms-enum": {
+ "name": "JsonWebKeyEncryptionAlgorithm",
+ "modelAsString": true
+ }
+ },
+ "value": {
+ "type": "string",
+ "format": "base64url"
+ }
+ },
+ "description": "The key operations parameters.",
+ "required": [
+ "alg",
+ "value"
+ ]
+ },
+ "KeySignParameters": {
+ "properties": {
+ "alg": {
+ "x-ms-client-name": "algorithm",
+ "type": "string",
+ "minLength": 1,
+ "description": "The signing/verification algorithm identifier. For more information on possible algorithm types, see JsonWebKeySignatureAlgorithm.",
+ "enum": [
+ "PS256",
+ "PS384",
+ "PS512",
+ "RS256",
+ "RS384",
+ "RS512",
+ "RSNULL",
+ "ES256",
+ "ES384",
+ "ES512",
+ "ES256K"
+ ],
+ "x-ms-enum": {
+ "name": "JsonWebKeySignatureAlgorithm",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "PS256",
+ "description": "RSASSA-PSS using SHA-256 and MGF1 with SHA-256, as described in https://tools.ietf.org/html/rfc7518"
+ },
+ {
+ "value": "PS384",
+ "description": "RSASSA-PSS using SHA-384 and MGF1 with SHA-384, as described in https://tools.ietf.org/html/rfc7518"
+ },
+ {
+ "value": "PS512",
+ "description": "RSASSA-PSS using SHA-512 and MGF1 with SHA-512, as described in https://tools.ietf.org/html/rfc7518"
+ },
+ {
+ "value": "RS256",
+ "description": "RSASSA-PKCS1-v1_5 using SHA-256, as described in https://tools.ietf.org/html/rfc7518"
+ },
+ {
+ "value": "RS384",
+ "description": "RSASSA-PKCS1-v1_5 using SHA-384, as described in https://tools.ietf.org/html/rfc7518"
+ },
+ {
+ "value": "RS512",
+ "description": "RSASSA-PKCS1-v1_5 using SHA-512, as described in https://tools.ietf.org/html/rfc7518"
+ },
+ {
+ "value": "RSNULL",
+ "description": "Reserved"
+ },
+ {
+ "value": "ES256",
+ "description": "ECDSA using P-256 and SHA-256, as described in https://tools.ietf.org/html/rfc7518."
+ },
+ {
+ "value": "ES384",
+ "description": "ECDSA using P-384 and SHA-384, as described in https://tools.ietf.org/html/rfc7518"
+ },
+ {
+ "value": "ES512",
+ "description": "ECDSA using P-521 and SHA-512, as described in https://tools.ietf.org/html/rfc7518"
+ },
+ {
+ "value": "ES256K",
+ "description": "ECDSA using P-256K and SHA-256, as described in https://tools.ietf.org/html/rfc7518"
+ }
+ ]
+ }
+ },
+ "value": {
+ "type": "string",
+ "format": "base64url"
+ }
+ },
+ "description": "The key operations parameters.",
+ "required": [
+ "alg",
+ "value"
+ ]
+ },
+ "KeyVerifyParameters": {
+ "properties": {
+ "alg": {
+ "x-ms-client-name": "algorithm",
+ "type": "string",
+ "minLength": 1,
+ "description": "The signing/verification algorithm. For more information on possible algorithm types, see JsonWebKeySignatureAlgorithm.",
+ "enum": [
+ "PS256",
+ "PS384",
+ "PS512",
+ "RS256",
+ "RS384",
+ "RS512",
+ "RSNULL",
+ "ES256",
+ "ES384",
+ "ES512",
+ "ES256K"
+ ],
+ "x-ms-enum": {
+ "name": "JsonWebKeySignatureAlgorithm",
+ "modelAsString": true
+ }
+ },
+ "digest": {
+ "type": "string",
+ "format": "base64url",
+ "description": "The digest used for signing."
+ },
+ "value": {
+ "x-ms-client-name": "signature",
+ "type": "string",
+ "format": "base64url",
+ "description": "The signature to be verified."
+ }
+ },
+ "description": "The key verify parameters.",
+ "required": [
+ "alg",
+ "digest",
+ "value"
+ ]
+ },
+ "KeyUpdateParameters": {
+ "properties": {
+ "key_ops": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "JSON web key operations. For more information, see JsonWebKeyOperation.",
+ "enum": [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "wrapKey",
+ "unwrapKey",
+ "import"
+ ],
+ "x-ms-enum": {
+ "name": "JsonWebKeyOperation",
+ "modelAsString": true
+ }
+ },
+ "description": "Json web key operations. For more information on possible key operations, see JsonWebKeyOperation."
+ },
+ "attributes": {
+ "x-ms-client-name": "keyAttributes",
+ "$ref": "#/definitions/KeyAttributes"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ }
+ },
+ "description": "The key update parameters."
+ },
+ "KeyRestoreParameters": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "x-ms-client-name": "keyBundleBackup",
+ "format": "base64url",
+ "description": "The backup blob associated with a key bundle."
+ }
+ },
+ "description": "The key restore parameters.",
+ "required": [
+ "value"
+ ]
+ },
+ "KeyOperationResult": {
+ "properties": {
+ "kid": {
+ "type": "string",
+ "description": "Key identifier",
+ "readOnly": true
+ },
+ "value": {
+ "x-ms-client-name": "result",
+ "type": "string",
+ "format": "base64url",
+ "readOnly": true
+ }
+ },
+ "description": "The key operation result."
+ },
+ "KeyVerifyResult": {
+ "properties": {
+ "value": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "True if the signature is verified, otherwise false."
+ }
+ },
+ "description": "The key verify result."
+ },
+ "KeyListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/KeyItem"
+ },
+ "readOnly": true,
+ "description": "A response message containing a list of keys in the key vault along with a link to the next page of keys."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get the next set of keys."
+ }
+ },
+ "description": "The key list result."
+ },
+ "DeletedKeyListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeletedKeyItem"
+ },
+ "readOnly": true,
+ "description": "A response message containing a list of deleted keys in the vault along with a link to the next page of deleted keys"
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get the next set of deleted keys."
+ }
+ },
+ "description": "A list of keys that have been deleted in this vault."
+ },
+ "BackupKeyResult": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "format": "base64url",
+ "readOnly": true,
+ "description": "The backup blob containing the backed up key."
+ }
+ },
+ "description": "The backup key result, containing the backup blob."
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client API version."
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/secrets.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/secrets.json
new file mode 100644
index 000000000000..a6b3ce99de60
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/secrets.json
@@ -0,0 +1,891 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "KeyVaultClient",
+ "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.",
+ "version": "7.1"
+ },
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{vaultBaseUrl}",
+ "useSchemePrefix": false,
+ "positionInOperation": "first",
+ "parameters": [
+ {
+ "name": "vaultBaseUrl",
+ "description": "The vault name, for example https://myvault.vault.azure.net.",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ }
+ ]
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/secrets/{secret-name}": {
+ "put": {
+ "tags": [
+ "Secrets"
+ ],
+ "operationId": "SetSecret",
+ "summary": "Sets a secret in a specified key vault.",
+ "description": " The SET operation adds a secret to the Azure Key Vault. If the named secret already exists, Azure Key Vault creates a new version of that secret. This operation requires the secrets/set permission.",
+ "parameters": [
+ {
+ "name": "secret-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z-]+$",
+ "description": "The name of the secret."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/SecretSetParameters"
+ },
+ "description": "The parameters for setting the secret."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A secret bundle containing the result of the set secret request.",
+ "schema": {
+ "$ref": "#/definitions/SecretBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "SetSecret": {
+ "$ref": "./examples/SetSecret-example.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Secrets"
+ ],
+ "operationId": "DeleteSecret",
+ "summary": "Deletes a secret from a specified key vault.",
+ "description": "The DELETE operation applies to any secret stored in Azure Key Vault. DELETE cannot be applied to an individual version of a secret. This operation requires the secrets/delete permission.",
+ "parameters": [
+ {
+ "name": "secret-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the secret."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The deleted secret and information on when the secret will be deleted, and how to recover the deleted secret.",
+ "schema": {
+ "$ref": "#/definitions/DeletedSecretBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DeleteSecret": {
+ "$ref": "./examples/DeleteSecret-example.json"
+ }
+ }
+ }
+ },
+ "/secrets/{secret-name}/{secret-version}": {
+ "patch": {
+ "tags": [
+ "Secrets"
+ ],
+ "operationId": "UpdateSecret",
+ "summary": "Updates the attributes associated with a specified secret in a given key vault.",
+ "description": "The UPDATE operation changes specified attributes of an existing stored secret. Attributes that are not specified in the request are left unchanged. The value of a secret itself cannot be changed. This operation requires the secrets/set permission.",
+ "parameters": [
+ {
+ "name": "secret-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the secret."
+ },
+ {
+ "name": "secret-version",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The version of the secret."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/SecretUpdateParameters"
+ },
+ "description": "The parameters for update secret operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The updated secret.",
+ "schema": {
+ "$ref": "#/definitions/SecretBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "UpdateSecret": {
+ "$ref": "./examples/UpdateSecret-example.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Secrets"
+ ],
+ "operationId": "GetSecret",
+ "summary": "Get a specified secret from a given key vault.",
+ "description": "The GET operation is applicable to any secret stored in Azure Key Vault. This operation requires the secrets/get permission.",
+ "parameters": [
+ {
+ "name": "secret-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the secret."
+ },
+ {
+ "name": "secret-version",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The version of the secret. This URI fragment is optional. If not specified, the latest version of the secret is returned."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The retrieved secret.",
+ "schema": {
+ "$ref": "#/definitions/SecretBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetSecret": {
+ "$ref": "./examples/GetSecret-example.json"
+ }
+ }
+ }
+ },
+ "/secrets": {
+ "get": {
+ "tags": [
+ "Secrets"
+ ],
+ "operationId": "GetSecrets",
+ "summary": "List secrets in a specified key vault.",
+ "description": "The Get Secrets operation is applicable to the entire vault. However, only the base secret identifier and its attributes are provided in the response. Individual secret versions are not listed in the response. This operation requires the secrets/list permission.",
+ "parameters": [
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 25,
+ "description": "Maximum number of results to return in a page. If not specified, the service will return up to 25 results."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A response message containing a list of secrets in the vault along with a link to the next page of secrets.",
+ "schema": {
+ "$ref": "#/definitions/SecretListResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetSecrets": {
+ "$ref": "./examples/GetSecrets-example.json"
+ }
+ }
+ }
+ },
+ "/secrets/{secret-name}/versions": {
+ "get": {
+ "tags": [
+ "Secrets"
+ ],
+ "operationId": "GetSecretVersions",
+ "summary": "List all versions of the specified secret.",
+ "description": "The full secret identifier and attributes are provided in the response. No values are returned for the secrets. This operations requires the secrets/list permission.",
+ "parameters": [
+ {
+ "name": "secret-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the secret."
+ },
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 25,
+ "description": "Maximum number of results to return in a page. If not specified, the service will return up to 25 results."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A response message containing a list of secrets along with a link to the next page of secrets.",
+ "schema": {
+ "$ref": "#/definitions/SecretListResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetSecretVersions": {
+ "$ref": "./examples/GetSecretVersions-example.json"
+ }
+ }
+ }
+ },
+ "/deletedsecrets": {
+ "get": {
+ "tags": [
+ "DeletedSecrets"
+ ],
+ "operationId": "GetDeletedSecrets",
+ "summary": "Lists deleted secrets for the specified vault.",
+ "description": "The Get Deleted Secrets operation returns the secrets that have been deleted for a vault enabled for soft-delete. This operation requires the secrets/list permission.",
+ "parameters": [
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 25,
+ "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A response message containing a list of deleted secrets in the vault, along with a link to the next page of deleted secrets.",
+ "schema": {
+ "$ref": "#/definitions/DeletedSecretListResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetDeletedSecrets": {
+ "$ref": "./examples/GetDeletedSecrets-example.json"
+ }
+ }
+ }
+ },
+ "/deletedsecrets/{secret-name}": {
+ "get": {
+ "tags": [
+ "DeletedSecrets"
+ ],
+ "operationId": "GetDeletedSecret",
+ "summary": "Gets the specified deleted secret.",
+ "description": "The Get Deleted Secret operation returns the specified deleted secret along with its attributes. This operation requires the secrets/get permission.",
+ "parameters": [
+ {
+ "name": "secret-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the secret."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A secret bundle of the secret and its attributes.",
+ "schema": {
+ "$ref": "#/definitions/DeletedSecretBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetDeletedSecret": {
+ "$ref": "./examples/GetDeletedSecret-example.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DeletedSecrets"
+ ],
+ "operationId": "PurgeDeletedSecret",
+ "summary": "Permanently deletes the specified secret.",
+ "description": "The purge deleted secret operation removes the secret permanently, without the possibility of recovery. This operation can only be enabled on a soft-delete enabled vault. This operation requires the secrets/purge permission.",
+ "parameters": [
+ {
+ "name": "secret-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the secret."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No content signaling that the secret was purged forever."
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PurgeDeletedSecret": {
+ "$ref": "./examples/PurgeDeletedSecret-example.json"
+ }
+ }
+ }
+ },
+ "/deletedsecrets/{secret-name}/recover": {
+ "post": {
+ "tags": [
+ "DeletedSecrets"
+ ],
+ "operationId": "RecoverDeletedSecret",
+ "summary": "Recovers the deleted secret to the latest version.",
+ "description": "Recovers the deleted secret in the specified vault. This operation can only be performed on a soft-delete enabled vault. This operation requires the secrets/recover permission.",
+ "parameters": [
+ {
+ "name": "secret-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the deleted secret."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A Secret bundle of the original secret and its attributes.",
+ "schema": {
+ "$ref": "#/definitions/SecretBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "RecoverDeletedSecret": {
+ "$ref": "./examples/RecoverDeletedSecret-example.json"
+ }
+ }
+ }
+ },
+ "/secrets/{secret-name}/backup": {
+ "post": {
+ "tags": [
+ "Secrets"
+ ],
+ "operationId": "BackupSecret",
+ "summary": "Backs up the specified secret.",
+ "description": "Requests that a backup of the specified secret be downloaded to the client. All versions of the secret will be downloaded. This operation requires the secrets/backup permission.",
+ "parameters": [
+ {
+ "name": "secret-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the secret."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The backup blob containing the backed up secret.",
+ "schema": {
+ "$ref": "#/definitions/BackupSecretResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "BackupSecret": {
+ "$ref": "./examples/BackupSecret-example.json"
+ }
+ }
+ }
+ },
+ "/secrets/restore": {
+ "post": {
+ "tags": [
+ "Secrets"
+ ],
+ "operationId": "RestoreSecret",
+ "summary": "Restores a backed up secret to a vault.",
+ "description": "Restores a backed up secret, and all its versions, to a vault. This operation requires the secrets/restore permission.",
+ "parameters": [
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/SecretRestoreParameters"
+ },
+ "description": "The parameters to restore the secret."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Restored secret bundle in the vault.",
+ "schema": {
+ "$ref": "#/definitions/SecretBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "RestoreSecret": {
+ "$ref": "./examples/RestoreSecret-example.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "SecretBundle": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "The secret value."
+ },
+ "id": {
+ "type": "string",
+ "description": "The secret id."
+ },
+ "contentType": {
+ "type": "string",
+ "description": "The content type of the secret."
+ },
+ "attributes": {
+ "$ref": "#/definitions/SecretAttributes",
+ "description": "The secret management attributes."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ },
+ "kid": {
+ "type": "string",
+ "readOnly": true,
+ "description": "If this is a secret backing a KV certificate, then this field specifies the corresponding key backing the KV certificate."
+ },
+ "managed": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "True if the secret's lifetime is managed by key vault. If this is a secret backing a certificate, then managed will be true."
+ }
+ },
+ "description": "A secret consisting of a value, id and its attributes."
+ },
+ "SecretItem": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Secret identifier."
+ },
+ "attributes": {
+ "$ref": "#/definitions/SecretAttributes",
+ "description": "The secret management attributes."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ },
+ "contentType": {
+ "type": "string",
+ "description": "Type of the secret value such as a password."
+ },
+ "managed": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "True if the secret's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true."
+ }
+ },
+ "description": "The secret item containing secret metadata."
+ },
+ "DeletedSecretBundle": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/SecretBundle"
+ }
+ ],
+ "properties": {
+ "recoveryId": {
+ "type": "string",
+ "description": "The url of the recovery object, used to identify and recover the deleted secret."
+ },
+ "scheduledPurgeDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the secret is scheduled to be purged, in UTC"
+ },
+ "deletedDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the secret was deleted, in UTC"
+ }
+ },
+ "description": "A Deleted Secret consisting of its previous id, attributes and its tags, as well as information on when it will be purged."
+ },
+ "DeletedSecretItem": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/SecretItem"
+ }
+ ],
+ "properties": {
+ "recoveryId": {
+ "type": "string",
+ "description": "The url of the recovery object, used to identify and recover the deleted secret."
+ },
+ "scheduledPurgeDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the secret is scheduled to be purged, in UTC"
+ },
+ "deletedDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the secret was deleted, in UTC"
+ }
+ },
+ "description": "The deleted secret item containing metadata about the deleted secret."
+ },
+ "SecretAttributes": {
+ "allOf": [
+ {
+ "$ref": "common.json#/definitions/Attributes"
+ }
+ ],
+ "properties": {
+ "recoverableDays": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "description": "softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0."
+ },
+ "recoveryLevel": {
+ "type": "string",
+ "description": "Reflects the deletion recovery level currently in effect for secrets in the current vault. If it contains 'Purgeable', the secret can be permanently deleted by a privileged user; otherwise, only the system can purge the secret, at the end of the retention interval.",
+ "enum": [
+ "Purgeable",
+ "Recoverable+Purgeable",
+ "Recoverable",
+ "Recoverable+ProtectedSubscription",
+ "CustomizedRecoverable+Purgeable",
+ "CustomizedRecoverable",
+ "CustomizedRecoverable+ProtectedSubscription"
+ ],
+ "x-ms-enum": {
+ "name": "DeletionRecoveryLevel",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Purgeable",
+ "description": "Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.)"
+ },
+ {
+ "value": "Recoverable+Purgeable",
+ "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered"
+ },
+ {
+ "value": "Recoverable",
+ "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval(90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not recovered"
+ },
+ {
+ "value": "Recoverable+ProtectedSubscription",
+ "description": "Denotes a vault and subscription state in which deletion is recoverable within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered"
+ },
+ {
+ "value": "CustomizedRecoverable+Purgeable",
+ "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription is cancelled."
+ },
+ {
+ "value": "CustomizedRecoverable",
+ "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval and while the subscription is still available."
+ },
+ {
+ "value": "CustomizedRecoverable+ProtectedSubscription",
+ "description": "Denotes a vault and subscription state in which deletion is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7<= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled."
+ }
+ ]
+ },
+ "readOnly": true,
+ "x-nullable": false
+ }
+ },
+ "description": "The secret management attributes."
+ },
+ "SecretRestoreParameters": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "x-ms-client-name": "secretBundleBackup",
+ "format": "base64url",
+ "description": "The backup blob associated with a secret bundle."
+ }
+ },
+ "description": "The secret restore parameters.",
+ "required": [
+ "value"
+ ]
+ },
+ "SecretProperties": {
+ "properties": {
+ "contentType": {
+ "type": "string",
+ "description": "The media type (MIME type)."
+ }
+ },
+ "description": "Properties of the key backing a certificate."
+ },
+ "SecretSetParameters": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "The value of the secret."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ },
+ "contentType": {
+ "type": "string",
+ "description": "Type of the secret value such as a password."
+ },
+ "attributes": {
+ "x-ms-client-name": "secretAttributes",
+ "$ref": "#/definitions/SecretAttributes",
+ "description": "The secret management attributes."
+ }
+ },
+ "description": "The secret set parameters.",
+ "required": [
+ "value"
+ ]
+ },
+ "SecretUpdateParameters": {
+ "properties": {
+ "contentType": {
+ "type": "string",
+ "description": "Type of the secret value such as a password."
+ },
+ "attributes": {
+ "x-ms-client-name": "secretAttributes",
+ "$ref": "#/definitions/SecretAttributes",
+ "description": "The secret management attributes."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ }
+ },
+ "description": "The secret update parameters."
+ },
+ "SecretListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SecretItem"
+ },
+ "readOnly": true,
+ "description": "A response message containing a list of secrets in the key vault along with a link to the next page of secrets."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get the next set of secrets."
+ }
+ },
+ "description": "The secret list result."
+ },
+ "DeletedSecretListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeletedSecretItem"
+ },
+ "readOnly": true,
+ "description": "A response message containing a list of the deleted secrets in the vault along with a link to the next page of deleted secrets"
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get the next set of deleted secrets."
+ }
+ },
+ "description": "The deleted secret list result"
+ },
+ "BackupSecretResult": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "format": "base64url",
+ "readOnly": true,
+ "description": "The backup blob containing the backed up secret."
+ }
+ },
+ "description": "The backup secret result, containing the backup blob."
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client API version."
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/storage.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/storage.json
new file mode 100644
index 000000000000..7c166455b1fd
--- /dev/null
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/storage.json
@@ -0,0 +1,1622 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "KeyVaultClient",
+ "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.",
+ "version": "7.1"
+ },
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{vaultBaseUrl}",
+ "useSchemePrefix": false,
+ "positionInOperation": "first",
+ "parameters": [
+ {
+ "name": "vaultBaseUrl",
+ "description": "The vault name, for example https://myvault.vault.azure.net.",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ }
+ ]
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/storage": {
+ "get": {
+ "tags": [
+ "Storage"
+ ],
+ "operationId": "GetStorageAccounts",
+ "description": "List storage accounts managed by the specified key vault. This operation requires the storage/list permission.",
+ "parameters": [
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 25,
+ "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A response message containing a list of storage accounts along with a link to the next page of storage accounts.",
+ "schema": {
+ "$ref": "#/definitions/StorageListResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Storage account": {
+ "$ref": "./examples/listStorageAccount.json"
+ }
+ }
+ }
+ },
+ "/deletedstorage": {
+ "get": {
+ "tags": [
+ "DeletedStorage"
+ ],
+ "operationId": "GetDeletedStorageAccounts",
+ "summary": "Lists deleted storage accounts for the specified vault.",
+ "description": "The Get Deleted Storage Accounts operation returns the storage accounts that have been deleted for a vault enabled for soft-delete. This operation requires the storage/list permission.",
+ "parameters": [
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 25,
+ "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A response message containing a list of deleted storage accounts in the vault, along with a link to the next page of deleted storage accounts.",
+ "schema": {
+ "$ref": "#/definitions/DeletedStorageListResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Deleted Storage Accounts": {
+ "$ref": "./examples/listDeletedStorageAccount.json"
+ }
+ }
+ }
+ },
+ "/deletedstorage/{storage-account-name}": {
+ "get": {
+ "tags": [
+ "DeletedStorage"
+ ],
+ "operationId": "GetDeletedStorageAccount",
+ "summary": "Gets the specified deleted storage account.",
+ "description": "The Get Deleted Storage Account operation returns the specified deleted storage account along with its attributes. This operation requires the storage/get permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The deleted storage account and information on when it will be purged, and how to recover the deleted storage account.",
+ "schema": {
+ "$ref": "#/definitions/DeletedStorageBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Deleted Storage": {
+ "$ref": "./examples/getDeletedStorageAccount.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DeletedStorage"
+ ],
+ "operationId": "PurgeDeletedStorageAccount",
+ "summary": "Permanently deletes the specified storage account.",
+ "description": "The purge deleted storage account operation removes the secret permanently, without the possibility of recovery. This operation can only be performed on a soft-delete enabled vault. This operation requires the storage/purge permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No content signaling that the storage account was purged forever."
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Purge Deleted Storage Account": {
+ "$ref": "./examples/purgeStorageAccount.json"
+ }
+ }
+ }
+ },
+ "/deletedstorage/{storage-account-name}/recover": {
+ "post": {
+ "tags": [
+ "DeletedStorage"
+ ],
+ "operationId": "RecoverDeletedStorageAccount",
+ "summary": "Recovers the deleted storage account.",
+ "description": "Recovers the deleted storage account in the specified vault. This operation can only be performed on a soft-delete enabled vault. This operation requires the storage/recover permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A storage bundle of the original storage account and its attributes.",
+ "schema": {
+ "$ref": "#/definitions/StorageBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Recover Deleted Storage Account": {
+ "$ref": "./examples/recoverStorageAccount.json"
+ }
+ }
+ }
+ },
+ "/storage/{storage-account-name}/backup": {
+ "post": {
+ "tags": [
+ "Storage"
+ ],
+ "operationId": "BackupStorageAccount",
+ "summary": "Backs up the specified storage account.",
+ "description": "Requests that a backup of the specified storage account be downloaded to the client. This operation requires the storage/backup permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the storage account."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The backup blob containing the backed up storage account.",
+ "schema": {
+ "$ref": "#/definitions/BackupStorageResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Backup Storage Account": {
+ "$ref": "./examples/backupStorageAccount.json"
+ }
+ }
+ }
+ },
+ "/storage/restore": {
+ "post": {
+ "tags": [
+ "Storage"
+ ],
+ "operationId": "RestoreStorageAccount",
+ "summary": "Restores a backed up storage account to a vault.",
+ "description": "Restores a backed up storage account to a vault. This operation requires the storage/restore permission.",
+ "parameters": [
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/StorageRestoreParameters"
+ },
+ "description": "The parameters to restore the storage account."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Restored storage account bundle in the vault.",
+ "schema": {
+ "$ref": "#/definitions/StorageBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Restore Storage Account": {
+ "$ref": "./examples/restoreStorageAccount.json"
+ }
+ }
+ }
+ },
+ "/storage/{storage-account-name}": {
+ "delete": {
+ "tags": [
+ "Storage"
+ ],
+ "operationId": "DeleteStorageAccount",
+ "description": "Deletes a storage account. This operation requires the storage/delete permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The deleted storage account and information on when the storage account will be deleted, and how to recover the deleted storage account.",
+ "schema": {
+ "$ref": "#/definitions/DeletedStorageBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete Storage account": {
+ "$ref": "./examples/deleteStorageAccount.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Storage"
+ ],
+ "operationId": "GetStorageAccount",
+ "description": "Gets information about a specified storage account. This operation requires the storage/get permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The retrieved storage account.",
+ "schema": {
+ "$ref": "#/definitions/StorageBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Storage account": {
+ "$ref": "./examples/getStorageAccount.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Storage"
+ ],
+ "operationId": "SetStorageAccount",
+ "description": "Creates or updates a new storage account. This operation requires the storage/set permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/StorageAccountCreateParameters"
+ },
+ "description": "The parameters to create a storage account."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The created storage account.",
+ "schema": {
+ "$ref": "#/definitions/StorageBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Set Storage account": {
+ "$ref": "./examples/setStorageAccount.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Storage"
+ ],
+ "operationId": "UpdateStorageAccount",
+ "description": "Updates the specified attributes associated with the given storage account. This operation requires the storage/set/update permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/StorageAccountUpdateParameters"
+ },
+ "description": "The parameters to update a storage account."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The updated storage account.",
+ "schema": {
+ "$ref": "#/definitions/StorageBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update Storage account": {
+ "$ref": "./examples/updateStorageAccount.json"
+ }
+ }
+ }
+ },
+ "/storage/{storage-account-name}/regeneratekey": {
+ "post": {
+ "tags": [
+ "Storage"
+ ],
+ "operationId": "RegenerateStorageAccountKey",
+ "description": "Regenerates the specified key value for the given storage account. This operation requires the storage/regeneratekey permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/StorageAccountRegenerteKeyParameters"
+ },
+ "description": "The parameters to regenerate storage account key."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The updated storage account.",
+ "schema": {
+ "$ref": "#/definitions/StorageBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Regenerate Storage account key": {
+ "$ref": "./examples/regenerateStorageAccountKey.json"
+ }
+ }
+ }
+ },
+ "/storage/{storage-account-name}/sas": {
+ "get": {
+ "tags": [
+ "Storage"
+ ],
+ "operationId": "GetSasDefinitions",
+ "description": "List storage SAS definitions for the given storage account. This operation requires the storage/listsas permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 25,
+ "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A response message containing a list of SAS definitions along with a link to the next page of SAS definitions.",
+ "schema": {
+ "$ref": "#/definitions/SasDefinitionListResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Storage Sas Definition": {
+ "$ref": "./examples/listStorageSasDefinition.json"
+ }
+ }
+ }
+ },
+ "/deletedstorage/{storage-account-name}/sas": {
+ "get": {
+ "tags": [
+ "DeletedStorage"
+ ],
+ "operationId": "GetDeletedSasDefinitions",
+ "summary": "Lists deleted SAS definitions for the specified vault and storage account.",
+ "description": "The Get Deleted Sas Definitions operation returns the SAS definitions that have been deleted for a vault enabled for soft-delete. This operation requires the storage/listsas permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "maximum": 25,
+ "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A response message containing a list of deleted SAS definitions for the storage account, along with a link to the next page of deleted SAS definitions.",
+ "schema": {
+ "$ref": "#/definitions/DeletedSasDefinitionListResult"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Deleted Storage Sas Definitions": {
+ "$ref": "./examples/listDeletedStorageSasDefinition.json"
+ }
+ }
+ }
+ },
+ "/deletedstorage/{storage-account-name}/sas/{sas-definition-name}": {
+ "get": {
+ "tags": [
+ "DeletedStorage"
+ ],
+ "operationId": "GetDeletedSasDefinition",
+ "summary": "Gets the specified deleted sas definition.",
+ "description": "The Get Deleted SAS Definition operation returns the specified deleted SAS definition along with its attributes. This operation requires the storage/getsas permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "name": "sas-definition-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the SAS definition."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The deleted SAS definition and information on when the it will be purged, and how to recover the deleted SAS definition.",
+ "schema": {
+ "$ref": "#/definitions/DeletedSasDefinitionBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Deleted Storage Sas Definition": {
+ "$ref": "./examples/getDeletedStorageSasDefinition.json"
+ }
+ }
+ }
+ },
+ "/deletedstorage/{storage-account-name}/sas/{sas-definition-name}/recover": {
+ "post": {
+ "tags": [
+ "DeletedStorage"
+ ],
+ "operationId": "RecoverDeletedSasDefinition",
+ "summary": "Recovers the deleted SAS definition.",
+ "description": "Recovers the deleted SAS definition for the specified storage account. This operation can only be performed on a soft-delete enabled vault. This operation requires the storage/recover permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "name": "sas-definition-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the SAS definition."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A SAS definition bundle of the original SAS definition and its attributes.",
+ "schema": {
+ "$ref": "#/definitions/SasDefinitionBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Recover Deleted Storage Sas Definition": {
+ "$ref": "./examples/recoverStorageSasDefinition.json"
+ }
+ }
+ }
+ },
+ "/storage/{storage-account-name}/sas/{sas-definition-name}": {
+ "delete": {
+ "tags": [
+ "Storage"
+ ],
+ "operationId": "DeleteSasDefinition",
+ "description": "Deletes a SAS definition from a specified storage account. This operation requires the storage/deletesas permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "name": "sas-definition-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the SAS definition."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The deleted SAS definition and information on when the SAS definition will be deleted, and how to recover the deleted SAS definition.",
+ "schema": {
+ "$ref": "#/definitions/DeletedSasDefinitionBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete Storage Sas Definition": {
+ "$ref": "./examples/deleteStorageSasDefinition.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Storage"
+ ],
+ "operationId": "GetSasDefinition",
+ "description": "Gets information about a SAS definition for the specified storage account. This operation requires the storage/getsas permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "name": "sas-definition-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the SAS definition."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The retrieved SAS definition.",
+ "schema": {
+ "$ref": "#/definitions/SasDefinitionBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Storage Sas Definition": {
+ "$ref": "./examples/getStorageSasDefinition.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Storage"
+ ],
+ "operationId": "SetSasDefinition",
+ "description": "Creates or updates a new SAS definition for the specified storage account. This operation requires the storage/setsas permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "name": "sas-definition-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the SAS definition."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/SasDefinitionCreateParameters"
+ },
+ "description": "The parameters to create a SAS definition."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The created SAS definition.",
+ "schema": {
+ "$ref": "#/definitions/SasDefinitionBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Set Storage Sas definition": {
+ "$ref": "./examples/setStorageSasDefinition.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Storage"
+ ],
+ "operationId": "UpdateSasDefinition",
+ "description": "Updates the specified attributes associated with the given SAS definition. This operation requires the storage/setsas permission.",
+ "parameters": [
+ {
+ "name": "storage-account-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the storage account."
+ },
+ {
+ "name": "sas-definition-name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[0-9a-zA-Z]+$",
+ "description": "The name of the SAS definition."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/SasDefinitionUpdateParameters"
+ },
+ "description": "The parameters to update a SAS definition."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The updated SAS definition.",
+ "schema": {
+ "$ref": "#/definitions/SasDefinitionBundle"
+ }
+ },
+ "default": {
+ "description": "Key Vault error response describing why the operation failed.",
+ "schema": {
+ "$ref": "common.json#/definitions/KeyVaultError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update Storage Sas definition": {
+ "$ref": "./examples/updateStorageSasDefinition.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "StorageRestoreParameters": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "x-ms-client-name": "storageBundleBackup",
+ "format": "base64url",
+ "description": "The backup blob associated with a storage account."
+ }
+ },
+ "description": "The secret restore parameters.",
+ "required": [
+ "value"
+ ]
+ },
+ "StorageAccountAttributes": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "the enabled state of the object."
+ },
+ "created": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "Creation time in UTC."
+ },
+ "updated": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "Last updated time in UTC."
+ },
+ "recoverableDays": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "description": "softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0."
+ },
+ "recoveryLevel": {
+ "type": "string",
+ "description": "Reflects the deletion recovery level currently in effect for storage accounts in the current vault. If it contains 'Purgeable' the storage account can be permanently deleted by a privileged user; otherwise, only the system can purge the storage account, at the end of the retention interval.",
+ "enum": [
+ "Purgeable",
+ "Recoverable+Purgeable",
+ "Recoverable",
+ "Recoverable+ProtectedSubscription",
+ "CustomizedRecoverable+Purgeable",
+ "CustomizedRecoverable",
+ "CustomizedRecoverable+ProtectedSubscription"
+ ],
+ "x-ms-enum": {
+ "name": "DeletionRecoveryLevel",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Purgeable",
+ "description": "Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.)"
+ },
+ {
+ "value": "Recoverable+Purgeable",
+ "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered"
+ },
+ {
+ "value": "Recoverable",
+ "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval(90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not recovered"
+ },
+ {
+ "value": "Recoverable+ProtectedSubscription",
+ "description": "Denotes a vault and subscription state in which deletion is recoverable within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered"
+ },
+ {
+ "value": "CustomizedRecoverable+Purgeable",
+ "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription is cancelled."
+ },
+ {
+ "value": "CustomizedRecoverable",
+ "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval and while the subscription is still available."
+ },
+ {
+ "value": "CustomizedRecoverable+ProtectedSubscription",
+ "description": "Denotes a vault and subscription state in which deletion is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7<= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled."
+ }
+ ]
+ },
+ "readOnly": true,
+ "x-nullable": false
+ }
+ },
+ "description": "The storage account management attributes."
+ },
+ "StorageBundle": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The storage account id.",
+ "readOnly": true
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "The storage account resource id.",
+ "readOnly": true
+ },
+ "activeKeyName": {
+ "type": "string",
+ "description": "The current active storage account key name.",
+ "readOnly": true
+ },
+ "autoRegenerateKey": {
+ "type": "boolean",
+ "description": "whether keyvault should manage the storage account for the user.",
+ "readOnly": true
+ },
+ "regenerationPeriod": {
+ "type": "string",
+ "description": "The key regeneration time duration specified in ISO-8601 format.",
+ "readOnly": true
+ },
+ "attributes": {
+ "$ref": "#/definitions/StorageAccountAttributes",
+ "description": "The storage account attributes.",
+ "readOnly": true
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs",
+ "readOnly": true
+ }
+ },
+ "description": "A Storage account bundle consists of key vault storage account details plus its attributes."
+ },
+ "DeletedStorageBundle": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/StorageBundle"
+ }
+ ],
+ "properties": {
+ "recoveryId": {
+ "type": "string",
+ "description": "The url of the recovery object, used to identify and recover the deleted storage account."
+ },
+ "scheduledPurgeDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the storage account is scheduled to be purged, in UTC"
+ },
+ "deletedDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the storage account was deleted, in UTC"
+ }
+ },
+ "description": "A deleted storage account bundle consisting of its previous id, attributes and its tags, as well as information on when it will be purged."
+ },
+ "StorageAccountCreateParameters": {
+ "properties": {
+ "resourceId": {
+ "type": "string",
+ "description": "Storage account resource id."
+ },
+ "activeKeyName": {
+ "type": "string",
+ "description": "Current active storage account key name."
+ },
+ "autoRegenerateKey": {
+ "type": "boolean",
+ "description": "whether keyvault should manage the storage account for the user."
+ },
+ "regenerationPeriod": {
+ "type": "string",
+ "description": "The key regeneration time duration specified in ISO-8601 format."
+ },
+ "attributes": {
+ "x-ms-client-name": "StorageAccountAttributes",
+ "$ref": "#/definitions/StorageAccountAttributes",
+ "description": "The attributes of the storage account."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ }
+ },
+ "description": "The storage account create parameters.",
+ "required": [
+ "resourceId",
+ "activeKeyName",
+ "autoRegenerateKey"
+ ]
+ },
+ "StorageAccountUpdateParameters": {
+ "properties": {
+ "activeKeyName": {
+ "type": "string",
+ "description": "The current active storage account key name."
+ },
+ "autoRegenerateKey": {
+ "type": "boolean",
+ "description": "whether keyvault should manage the storage account for the user."
+ },
+ "regenerationPeriod": {
+ "type": "string",
+ "description": "The key regeneration time duration specified in ISO-8601 format."
+ },
+ "attributes": {
+ "x-ms-client-name": "StorageAccountAttributes",
+ "$ref": "#/definitions/StorageAccountAttributes",
+ "description": "The attributes of the storage account."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ }
+ },
+ "description": "The storage account update parameters."
+ },
+ "StorageAccountRegenerteKeyParameters": {
+ "properties": {
+ "keyName": {
+ "type": "string",
+ "description": "The storage account key name."
+ }
+ },
+ "description": "The storage account key regenerate parameters.",
+ "required": [
+ "keyName"
+ ]
+ },
+ "StorageAccountItem": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Storage identifier.",
+ "readOnly": true
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "Storage account resource Id.",
+ "readOnly": true
+ },
+ "attributes": {
+ "$ref": "#/definitions/StorageAccountAttributes",
+ "description": "The storage account management attributes.",
+ "readOnly": true
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs.",
+ "readOnly": true
+ }
+ },
+ "description": "The storage account item containing storage account metadata."
+ },
+ "DeletedStorageAccountItem": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/StorageAccountItem"
+ }
+ ],
+ "properties": {
+ "recoveryId": {
+ "type": "string",
+ "description": "The url of the recovery object, used to identify and recover the deleted storage account."
+ },
+ "scheduledPurgeDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the storage account is scheduled to be purged, in UTC"
+ },
+ "deletedDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the storage account was deleted, in UTC"
+ }
+ },
+ "description": "The deleted storage account item containing metadata about the deleted storage account."
+ },
+ "StorageListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StorageAccountItem"
+ },
+ "readOnly": true,
+ "description": "A response message containing a list of storage accounts in the key vault along with a link to the next page of storage accounts."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get the next set of storage accounts."
+ }
+ },
+ "description": "The storage accounts list result."
+ },
+ "DeletedStorageListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeletedStorageAccountItem"
+ },
+ "readOnly": true,
+ "description": "A response message containing a list of the deleted storage accounts in the vault along with a link to the next page of deleted storage accounts"
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get the next set of deleted storage accounts."
+ }
+ },
+ "description": "The deleted storage account list result"
+ },
+ "SasDefinitionAttributes": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "the enabled state of the object."
+ },
+ "created": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "Creation time in UTC."
+ },
+ "updated": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "Last updated time in UTC."
+ },
+ "recoverableDays": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "description": "softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0."
+ },
+ "recoveryLevel": {
+ "type": "string",
+ "description": "Reflects the deletion recovery level currently in effect for SAS definitions in the current vault. If it contains 'Purgeable' the SAS definition can be permanently deleted by a privileged user; otherwise, only the system can purge the SAS definition, at the end of the retention interval.",
+ "enum": [
+ "Purgeable",
+ "Recoverable+Purgeable",
+ "Recoverable",
+ "Recoverable+ProtectedSubscription",
+ "CustomizedRecoverable+Purgeable",
+ "CustomizedRecoverable",
+ "CustomizedRecoverable+ProtectedSubscription"
+ ],
+ "x-ms-enum": {
+ "name": "DeletionRecoveryLevel",
+ "modelAsString": true
+ },
+ "readOnly": true,
+ "x-nullable": false
+ }
+ },
+ "description": "The SAS definition management attributes."
+ },
+ "SasDefinitionBundle": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The SAS definition id.",
+ "readOnly": true
+ },
+ "sid": {
+ "x-ms-client-name": "SecretId",
+ "type": "string",
+ "description": "Storage account SAS definition secret id.",
+ "readOnly": true
+ },
+ "templateUri": {
+ "type": "string",
+ "description": "The SAS definition token template signed with an arbitrary key. Tokens created according to the SAS definition will have the same properties as the template.",
+ "readOnly": true
+ },
+ "sasType": {
+ "type": "string",
+ "description": "The type of SAS token the SAS definition will create.",
+ "enum": [
+ "account",
+ "service"
+ ],
+ "x-ms-enum": {
+ "name": "SasTokenType",
+ "modelAsString": true
+ },
+ "readOnly": true
+ },
+ "validityPeriod": {
+ "type": "string",
+ "description": "The validity period of SAS tokens created according to the SAS definition.",
+ "readOnly": true
+ },
+ "attributes": {
+ "$ref": "#/definitions/SasDefinitionAttributes",
+ "description": "The SAS definition attributes.",
+ "readOnly": true
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs",
+ "readOnly": true
+ }
+ },
+ "description": "A SAS definition bundle consists of key vault SAS definition details plus its attributes."
+ },
+ "DeletedSasDefinitionBundle": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/SasDefinitionBundle"
+ }
+ ],
+ "properties": {
+ "recoveryId": {
+ "type": "string",
+ "description": "The url of the recovery object, used to identify and recover the deleted SAS definition."
+ },
+ "scheduledPurgeDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the SAS definition is scheduled to be purged, in UTC"
+ },
+ "deletedDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the SAS definition was deleted, in UTC"
+ }
+ },
+ "description": "A deleted SAS definition bundle consisting of its previous id, attributes and its tags, as well as information on when it will be purged."
+ },
+ "SasDefinitionItem": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The storage SAS identifier.",
+ "readOnly": true
+ },
+ "sid": {
+ "x-ms-client-name": "SecretId",
+ "type": "string",
+ "description": "The storage account SAS definition secret id.",
+ "readOnly": true
+ },
+ "attributes": {
+ "$ref": "#/definitions/SasDefinitionAttributes",
+ "description": "The SAS definition management attributes.",
+ "readOnly": true
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs.",
+ "readOnly": true
+ }
+ },
+ "description": "The SAS definition item containing storage SAS definition metadata."
+ },
+ "DeletedSasDefinitionItem": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/SasDefinitionItem"
+ }
+ ],
+ "properties": {
+ "recoveryId": {
+ "type": "string",
+ "description": "The url of the recovery object, used to identify and recover the deleted SAS definition."
+ },
+ "scheduledPurgeDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the SAS definition is scheduled to be purged, in UTC"
+ },
+ "deletedDate": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "The time when the SAS definition was deleted, in UTC"
+ }
+ },
+ "description": "The deleted SAS definition item containing metadata about the deleted SAS definition."
+ },
+ "SasDefinitionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SasDefinitionItem"
+ },
+ "readOnly": true,
+ "description": "A response message containing a list of SAS definitions along with a link to the next page of SAS definitions."
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get the next set of SAS definitions."
+ }
+ },
+ "description": "The storage account SAS definition list result."
+ },
+ "DeletedSasDefinitionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeletedSasDefinitionItem"
+ },
+ "readOnly": true,
+ "description": "A response message containing a list of the deleted SAS definitions in the vault along with a link to the next page of deleted sas definitions"
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL to get the next set of deleted SAS definitions."
+ }
+ },
+ "description": "The deleted SAS definition list result"
+ },
+ "SasDefinitionCreateParameters": {
+ "properties": {
+ "templateUri": {
+ "type": "string",
+ "description": "The SAS definition token template signed with an arbitrary key. Tokens created according to the SAS definition will have the same properties as the template."
+ },
+ "sasType": {
+ "type": "string",
+ "description": "The type of SAS token the SAS definition will create.",
+ "enum": [
+ "account",
+ "service"
+ ],
+ "x-ms-enum": {
+ "name": "SasTokenType",
+ "modelAsString": true
+ }
+ },
+ "validityPeriod": {
+ "type": "string",
+ "description": "The validity period of SAS tokens created according to the SAS definition."
+ },
+ "attributes": {
+ "x-ms-client-name": "SasDefinitionAttributes",
+ "$ref": "#/definitions/SasDefinitionAttributes",
+ "description": "The attributes of the SAS definition."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ }
+ },
+ "description": "The SAS definition create parameters.",
+ "required": [
+ "templateUri",
+ "sasType",
+ "validityPeriod"
+ ]
+ },
+ "SasDefinitionUpdateParameters": {
+ "properties": {
+ "templateUri": {
+ "type": "string",
+ "description": "The SAS definition token template signed with an arbitrary key. Tokens created according to the SAS definition will have the same properties as the template."
+ },
+ "sasType": {
+ "type": "string",
+ "description": "The type of SAS token the SAS definition will create.",
+ "enum": [
+ "account",
+ "service"
+ ],
+ "x-ms-enum": {
+ "name": "SasTokenType",
+ "modelAsString": true
+ }
+ },
+ "validityPeriod": {
+ "type": "string",
+ "description": "The validity period of SAS tokens created according to the SAS definition."
+ },
+ "attributes": {
+ "x-ms-client-name": "SasDefinitionAttributes",
+ "$ref": "#/definitions/SasDefinitionAttributes",
+ "description": "The attributes of the SAS definition."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Application specific metadata in the form of key-value pairs."
+ }
+ },
+ "description": "The SAS definition update parameters."
+ },
+ "BackupStorageResult": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "format": "base64url",
+ "readOnly": true,
+ "description": "The backup blob containing the backed up storage account."
+ }
+ },
+ "description": "The backup storage result, containing the backup blob."
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client API version."
+ }
+ }
+}
diff --git a/specification/keyvault/data-plane/readme.go.md b/specification/keyvault/data-plane/readme.go.md
index cb56a1deb4dc..4da1caa5e2cb 100644
--- a/specification/keyvault/data-plane/readme.go.md
+++ b/specification/keyvault/data-plane/readme.go.md
@@ -14,7 +14,7 @@ go:
``` yaml $(go) && $(multiapi)
batch:
- tag: package-7.2-preview
- - tag: package-7.1-preview
+ - tag: package-7.1
- tag: package-7.0
- tag: package-2016-10
- tag: package-2015-06
@@ -29,13 +29,13 @@ Please also specify `--go-sdk-folder=`.
-``` yaml $(tag) == 'package-7.1-preview' && $(go)
-output-folder: $(go-sdk-folder)/services/preview/$(namespace)/v7.1-preview/$(namespace)
+``` yaml $(tag) == 'package-7.1' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/v7.1/$(namespace)
```
### Tag: package-7.0 and go
diff --git a/specification/keyvault/data-plane/readme.md b/specification/keyvault/data-plane/readme.md
index 601fc2219975..dba1e62004a9 100644
--- a/specification/keyvault/data-plane/readme.md
+++ b/specification/keyvault/data-plane/readme.md
@@ -45,6 +45,19 @@ input-file:
- Microsoft.KeyVault/preview/7.2-preview/securitydomain.json
```
+### Tag: package-7.1
+
+These settings apply only when `--tag=package-7.1` is specified on the command line.
+
+```yaml $(tag) == 'package-7.1'
+input-file:
+- Microsoft.KeyVault/stable/7.1/certificates.json
+- Microsoft.KeyVault/stable/7.1/common.json
+- Microsoft.KeyVault/stable/7.1/keys.json
+- Microsoft.KeyVault/stable/7.1/secrets.json
+- Microsoft.KeyVault/stable/7.1/storage.json
+```
+
### Tag: package-7.1-preview
These settings apply only when `--tag=package-7.1-preview` is specified on the command line.
@@ -161,6 +174,12 @@ input-file:
- $(this-folder)/Microsoft.KeyVault/preview/7.2-preview/secrets.json
- $(this-folder)/Microsoft.KeyVault/preview/7.2-preview/storage.json
- $(this-folder)/Microsoft.KeyVault/preview/7.2-preview/backuprestore.json
+ - $(this-folder)/Microsoft.KeyVault/preview/7.2-preview/securitydomain.json
+ - $(this-folder)/Microsoft.KeyVault/stable/7.1/certificates.json
+ - $(this-folder)/Microsoft.KeyVault/stable/7.1/common.json
+ - $(this-folder)/Microsoft.KeyVault/stable/7.1/keys.json
+ - $(this-folder)/Microsoft.KeyVault/stable/7.1/secrets.json
+ - $(this-folder)/Microsoft.KeyVault/stable/7.1/storage.json
- $(this-folder)/Microsoft.KeyVault/preview/7.1/certificates.json
- $(this-folder)/Microsoft.KeyVault/preview/7.1/common.json
- $(this-folder)/Microsoft.KeyVault/preview/7.1/keys.json
diff --git a/specification/keyvault/data-plane/readme.python.md b/specification/keyvault/data-plane/readme.python.md
index e6c36cc73ae4..5b33ad153403 100644
--- a/specification/keyvault/data-plane/readme.python.md
+++ b/specification/keyvault/data-plane/readme.python.md
@@ -22,7 +22,7 @@ Generate all API versions currently shipped for this package
```yaml $(python) && $(multiapi)
batch:
- tag: package-7.2-preview
- - tag: package-7.1-preview
+ - tag: package-7.1
- tag: package-7.0
- tag: package-2016-10
```
@@ -37,11 +37,11 @@ python:
output-folder: $(python-sdks-folder)/keyvault/azure-keyvault/azure/keyvault/v7_2_preview
```
-### Tag: package-7.1-preview and python
+### Tag: package-7.1 and python
-These settings apply only when `--tag=package-7.1-preview --python` is specified on the command line.
+These settings apply only when `--tag=package-7.1 --python` is specified on the command line.
-``` yaml $(tag) == 'package-7.1-preview' && $(python)
+``` yaml $(tag) == 'package-7.1' && $(python)
python:
namespace: azure.keyvault.v7_1
output-folder: $(python-sdks-folder)/keyvault/azure-keyvault/azure/keyvault/v7_1_preview
diff --git a/specification/machinelearningservices/resource-manager/readme.md b/specification/machinelearningservices/resource-manager/readme.md
index 65bcfcfc1907..966eb3408a19 100644
--- a/specification/machinelearningservices/resource-manager/readme.md
+++ b/specification/machinelearningservices/resource-manager/readme.md
@@ -370,6 +370,7 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
- $(this-folder)/Microsoft.MachineLearningServices/stable/2020-06-01/machineLearningServices.json
+ - $(this-folder)/Microsoft.MachineLearningServices/preview/2020-05-15-preview/machineLearningServices.json
- $(this-folder)/Microsoft.MachineLearningServices/stable/2020-04-01/machineLearningServices.json
- $(this-folder)/Microsoft.MachineLearningServices/stable/2020-03-01/machineLearningServices.json
- $(this-folder)/Microsoft.MachineLearningServices/stable/2020-01-01/machineLearningServices.json
diff --git a/specification/maintenance/resource-manager/readme.md b/specification/maintenance/resource-manager/readme.md
index 4580015e6406..611010338510 100644
--- a/specification/maintenance/resource-manager/readme.md
+++ b/specification/maintenance/resource-manager/readme.md
@@ -138,6 +138,7 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.Maintenance/preview/2020-07-01-preview/Maintenance.json
- $(this-folder)/Microsoft.Maintenance/stable/2020-04-01/Maintenance.json
- $(this-folder)/Microsoft.Maintenance/preview/2018-06-01-preview/Maintenance.json
diff --git a/specification/mariadb/resource-manager/readme.md b/specification/mariadb/resource-manager/readme.md
index bc1c5568efd2..e6640f77af11 100644
--- a/specification/mariadb/resource-manager/readme.md
+++ b/specification/mariadb/resource-manager/readme.md
@@ -181,11 +181,11 @@ require: $(this-folder)/../../../profiles/readme.md
input-file:
- $(this-folder)/Microsoft.DBforMariaDB/preview/2018-06-01-preview/mariadb.json
- $(this-folder)/Microsoft.DBforMariaDB/stable/2018-06-01/mariadb.json
- - $(this-folder)/Microsoft.DBforMariaDB/stable/2018-06-01/ServerSecurityAlertPolicies.json
- $(this-folder)/Microsoft.DBforMariaDB/stable/2018-06-01/QueryPerformanceInsights.json
- $(this-folder)/Microsoft.DBforMariaDB/stable/2018-06-01/PerformanceRecommendations.json
- $(this-folder)/Microsoft.DBforMariaDB/stable/2018-06-01/PrivateEndpointConnections.json
- $(this-folder)/Microsoft.DBforMariaDB/stable/2018-06-01/PrivateLinkResources.json
+ - $(this-folder)/Microsoft.DBforMariaDB/stable/2018-06-01/ServerSecurityAlertPolicies.json
- $(this-folder)/Microsoft.DBforMariaDB/preview/2018-06-01-privatepreview/mariadb.json
- $(this-folder)/Microsoft.DBforMariaDB/preview/2018-06-01-privatepreview/PrivateEndpointConnections.json
- $(this-folder)/Microsoft.DBforMariaDB/preview/2018-06-01-privatepreview/PrivateLinkResources.json
diff --git a/specification/mediaservices/data-plane/readme.md b/specification/mediaservices/data-plane/readme.md
index a43ff67118e7..20ae5783b3b2 100644
--- a/specification/mediaservices/data-plane/readme.md
+++ b/specification/mediaservices/data-plane/readme.md
@@ -70,4 +70,28 @@ csharp:
use-internal-constructors: true
override-client-name: LiveVideoAnalyticsEdgeClient
use-datetimeoffset: true
-```
\ No newline at end of file
+```
+## 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)/LiveVideoAnalytics.Edge/preview/1.0/LiveVideoAnalytics.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
+```
+
diff --git a/specification/mediaservices/resource-manager/readme.md b/specification/mediaservices/resource-manager/readme.md
index 86bd41461ddd..5d98b8ef86d9 100644
--- a/specification/mediaservices/resource-manager/readme.md
+++ b/specification/mediaservices/resource-manager/readme.md
@@ -338,6 +338,14 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.Media/stable/2020-05-01/AccountFilters.json
+ - $(this-folder)/Microsoft.Media/stable/2020-05-01/Accounts.json
+ - $(this-folder)/Microsoft.Media/stable/2020-05-01/AssetsAndAssetFilters.json
+ - $(this-folder)/Microsoft.Media/stable/2020-05-01/ContentKeyPolicies.json
+ - $(this-folder)/Microsoft.Media/stable/2020-05-01/Encoding.json
+ - $(this-folder)/Microsoft.Media/stable/2020-05-01/StreamingPoliciesAndStreamingLocators.json
+ - $(this-folder)/Microsoft.Media/stable/2020-05-01/streamingservice.json
+ - $(this-folder)/Microsoft.Media/stable/2020-05-01/Common.json
- $(this-folder)/Microsoft.Media/stable/2018-07-01/AccountFilters.json
- $(this-folder)/Microsoft.Media/stable/2018-07-01/Accounts.json
- $(this-folder)/Microsoft.Media/stable/2018-07-01/AssetsAndAssetFilters.json
diff --git a/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/createOrUpdateScheduledQueryRule.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/createOrUpdateScheduledQueryRule.json
new file mode 100644
index 000000000000..8eacdd66cb18
--- /dev/null
+++ b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/createOrUpdateScheduledQueryRule.json
@@ -0,0 +1,189 @@
+{
+ "parameters": {
+ "subscriptionId": "dd4bfc94-a096-412b-9c43-4bd13e35afbc",
+ "resourceGroupName": "QueryResourceGroupName",
+ "ruleName": "perf",
+ "api-version": "2020-05-01-preview",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "description": "Performance rule",
+ "severity": 4,
+ "enabled": true,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147/resourceGroups/scopeResourceGroup1/providers/Microsoft.Compute/virtualMachines/vm1"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Perf | where ObjectName == \"Processor\"",
+ "timeAggregation": "Average",
+ "metricMeasureColumn": "% Processor Time",
+ "resourceIdColumn": "resourceId",
+ "dimensions": [
+ {
+ "name": "ComputerIp",
+ "operator": "Exclude",
+ "values": [
+ "192.168.1.1"
+ ]
+ },
+ {
+ "name": "OSType",
+ "operator": "Include",
+ "values": [
+ "*"
+ ]
+ }
+ ],
+ "operator": "GreaterThan",
+ "threshold": 70,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/dd4bfc94-a096-412b-9c43-4bd13e35afbc/resourcegroups/QueryResourceGroupName/providers/microsoft.insights/scheduledqueryrules/perf",
+ "name": "perf",
+ "type": "microsoft.insights/scheduledqueryrules",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "description": "Performance rule",
+ "severity": 4,
+ "enabled": true,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147/resourceGroups/scopeResourceGroup1/providers/Microsoft.Compute/virtualMachines/vm1"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Perf | where ObjectName == \"Processor\"",
+ "timeAggregation": "Average",
+ "metricMeasureColumn": "% Processor Time",
+ "resourceIdColumn": "resourceId",
+ "dimensions": [
+ {
+ "name": "ComputerIp",
+ "operator": "Exclude",
+ "values": [
+ "192.168.1.1"
+ ]
+ },
+ {
+ "name": "OSType",
+ "operator": "Include",
+ "values": [
+ "*"
+ ]
+ }
+ ],
+ "operator": "GreaterThan",
+ "threshold": 70,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/dd4bfc94-a096-412b-9c43-4bd13e35afbc/resourcegroups/QueryResourceGroupName/providers/microsoft.insights/scheduledqueryrules/perf",
+ "name": "perf",
+ "type": "microsoft.insights/scheduledqueryrules",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "description": "Performance rule",
+ "severity": 4,
+ "enabled": true,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147/resourceGroups/scopeResourceGroup1/providers/Microsoft.Compute/virtualMachines/vm1"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Perf | where ObjectName == \"Processor\"",
+ "timeAggregation": "Average",
+ "metricMeasureColumn": "% Processor Time",
+ "resourceIdColumn": "resourceId",
+ "dimensions": [
+ {
+ "name": "ComputerIp",
+ "operator": "Exclude",
+ "values": [
+ "192.168.1.1"
+ ]
+ },
+ {
+ "name": "OSType",
+ "operator": "Include",
+ "values": [
+ "*"
+ ]
+ }
+ ],
+ "operator": "GreaterThan",
+ "threshold": 70,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/createOrUpdateScheduledQueryRuleResourceGroup.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/createOrUpdateScheduledQueryRuleResourceGroup.json
new file mode 100644
index 000000000000..c8480899d5b5
--- /dev/null
+++ b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/createOrUpdateScheduledQueryRuleResourceGroup.json
@@ -0,0 +1,147 @@
+{
+ "parameters": {
+ "subscriptionId": "dd4bfc94-a096-412b-9c43-4bd13e35afbc",
+ "resourceGroupName": "QueryResourceGroupName",
+ "ruleName": "heartbeat",
+ "api-version": "2020-05-01-preview",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "description": "Health check rule",
+ "severity": 4,
+ "enabled": true,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147/resourceGroups/scopeResourceGroup1"
+ ],
+ "targetResourceTypes": [
+ "Microsoft.Compute/virtualMachines"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Heartbeat",
+ "timeAggregation": "Count",
+ "dimensions": [],
+ "operator": "GreaterThan",
+ "threshold": 360,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/dd4bfc94-a096-412b-9c43-4bd13e35afbc/resourcegroups/QueryResourceGroupName/providers/microsoft.insights/scheduledqueryrules/heartbeat",
+ "name": "heartbeat",
+ "type": "microsoft.insights/scheduledqueryrules",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "description": "Health check rule",
+ "severity": 4,
+ "enabled": true,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147/resourceGroups/scopeResourceGroup1"
+ ],
+ "targetResourceTypes": [
+ "Microsoft.Compute/virtualMachines"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Heartbeat",
+ "timeAggregation": "Count",
+ "dimensions": [],
+ "operator": "GreaterThan",
+ "threshold": 360,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/dd4bfc94-a096-412b-9c43-4bd13e35afbc/resourcegroups/QueryResourceGroupName/providers/microsoft.insights/scheduledqueryrules/heartbeat",
+ "name": "heartbeat",
+ "type": "microsoft.insights/scheduledqueryrules",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "description": "Health check rule",
+ "severity": 4,
+ "enabled": true,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147/resourceGroups/scopeResourceGroup1"
+ ],
+ "targetResourceTypes": [
+ "Microsoft.Compute/virtualMachines"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Heartbeat",
+ "timeAggregation": "Count",
+ "dimensions": [],
+ "operator": "GreaterThan",
+ "threshold": 360,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/createOrUpdateScheduledQueryRuleSubscription.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/createOrUpdateScheduledQueryRuleSubscription.json
new file mode 100644
index 000000000000..92fab45cdaf5
--- /dev/null
+++ b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/createOrUpdateScheduledQueryRuleSubscription.json
@@ -0,0 +1,198 @@
+{
+ "parameters": {
+ "subscriptionId": "dd4bfc94-a096-412b-9c43-4bd13e35afbc",
+ "resourceGroupName": "QueryResourceGroupName",
+ "ruleName": "perf",
+ "api-version": "2020-05-01-preview",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "description": "Performance rule",
+ "severity": 4,
+ "enabled": true,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147"
+ ],
+ "targetResourceTypes": [
+ "Microsoft.Compute/virtualMachines"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Perf | where ObjectName == \"Processor\"",
+ "timeAggregation": "Average",
+ "metricMeasureColumn": "% Processor Time",
+ "resourceIdColumn": "resourceId",
+ "dimensions": [
+ {
+ "name": "ComputerIp",
+ "operator": "Exclude",
+ "values": [
+ "192.168.1.1"
+ ]
+ },
+ {
+ "name": "OSType",
+ "operator": "Include",
+ "values": [
+ "*"
+ ]
+ }
+ ],
+ "operator": "GreaterThan",
+ "threshold": 70,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/dd4bfc94-a096-412b-9c43-4bd13e35afbc/resourcegroups/QueryResourceGroupName/providers/microsoft.insights/scheduledqueryrules/perf",
+ "name": "perf",
+ "type": "microsoft.insights/scheduledqueryrules",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "description": "Performance rule",
+ "severity": 4,
+ "enabled": true,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147"
+ ],
+ "targetResourceTypes": [
+ "Microsoft.Compute/virtualMachines"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Perf | where ObjectName == \"Processor\"",
+ "timeAggregation": "Average",
+ "metricMeasureColumn": "% Processor Time",
+ "resourceIdColumn": "resourceId",
+ "dimensions": [
+ {
+ "name": "ComputerIp",
+ "operator": "Exclude",
+ "values": [
+ "192.168.1.1"
+ ]
+ },
+ {
+ "name": "OSType",
+ "operator": "Include",
+ "values": [
+ "*"
+ ]
+ }
+ ],
+ "operator": "GreaterThan",
+ "threshold": 70,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/dd4bfc94-a096-412b-9c43-4bd13e35afbc/resourcegroups/QueryResourceGroupName/providers/microsoft.insights/scheduledqueryrules/perf",
+ "name": "perf",
+ "type": "microsoft.insights/scheduledqueryrules",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "description": "Performance rule",
+ "severity": 4,
+ "enabled": true,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147"
+ ],
+ "targetResourceTypes": [
+ "Microsoft.Compute/virtualMachines"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Perf | where ObjectName == \"Processor\"",
+ "timeAggregation": "Average",
+ "metricMeasureColumn": "% Processor Time",
+ "resourceIdColumn": "resourceId",
+ "dimensions": [
+ {
+ "name": "ComputerIp",
+ "operator": "Exclude",
+ "values": [
+ "192.168.1.1"
+ ]
+ },
+ {
+ "name": "OSType",
+ "operator": "Include",
+ "values": [
+ "*"
+ ]
+ }
+ ],
+ "operator": "GreaterThan",
+ "threshold": 70,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/deleteScheduledQueryRule.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/deleteScheduledQueryRule.json
new file mode 100644
index 000000000000..4c1aa63528cf
--- /dev/null
+++ b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/deleteScheduledQueryRule.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "dd4bfc94-a096-412b-9c43-4bd13e35afbc",
+ "resourceGroupName": "QueryResourceGroupName",
+ "ruleName": "heartbeat",
+ "api-version": "2020-05-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/getScheduledQueryRule.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/getScheduledQueryRule.json
new file mode 100644
index 000000000000..90001a5f741b
--- /dev/null
+++ b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/getScheduledQueryRule.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "subscriptionId": "dd4bfc94-a096-412b-9c43-4bd13e35afbc",
+ "resourceGroupName": "QueryResourceGroupName",
+ "ruleName": "perf",
+ "api-version": "2020-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/dd4bfc94-a096-412b-9c43-4bd13e35afbc/resourcegroups/QueryResourceGroupName/providers/microsoft.insights/scheduledqueryrules/perf",
+ "name": "perf",
+ "type": "microsoft.insights/scheduledqueryrules",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "description": "Performance rule",
+ "severity": 4,
+ "enabled": true,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147/resourceGroups/scopeResourceGroup1/providers/Microsoft.Compute/virtualMachines/vm1"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Perf | where ObjectName == \"Processor\"",
+ "timeAggregation": "Average",
+ "metricMeasureColumn": "% Processor Time",
+ "resourceIdColumn": "resourceId",
+ "dimensions": [
+ {
+ "name": "ComputerIp",
+ "operator": "Exclude",
+ "values": [
+ "192.168.1.1"
+ ]
+ },
+ {
+ "name": "OSType",
+ "operator": "Include",
+ "values": [
+ "*"
+ ]
+ }
+ ],
+ "operator": "GreaterThan",
+ "threshold": 70,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/listScheduledQueryRulesByResourceGroup.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/listScheduledQueryRulesByResourceGroup.json
new file mode 100644
index 000000000000..b35e7da408d2
--- /dev/null
+++ b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/listScheduledQueryRulesByResourceGroup.json
@@ -0,0 +1,123 @@
+{
+ "parameters": {
+ "subscriptionId": "dd4bfc94-a096-412b-9c43-4bd13e35afbc",
+ "resourceGroupName": "QueryResourceGroupName",
+ "api-version": "2020-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/dd4bfc94-a096-412b-9c43-4bd13e35afbc/resourcegroups/QueryResourceGroupName/providers/microsoft.insights/scheduledqueryrules/perf",
+ "name": "perf",
+ "type": "microsoft.insights/scheduledqueryrules",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "description": "Performance rule",
+ "severity": 4,
+ "enabled": true,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147/resourceGroups/scopeResourceGroup1"
+ ],
+ "targetResourceTypes": [
+ "Microsoft.Compute/virtualMachines"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Perf | where ObjectName == \"Processor\"",
+ "timeAggregation": "Average",
+ "metricMeasureColumn": "% Processor Time",
+ "resourceIdColumn": "resourceId",
+ "dimensions": [
+ {
+ "name": "ComputerIp",
+ "operator": "Exclude",
+ "values": [
+ "192.168.1.1"
+ ]
+ },
+ {
+ "name": "OSType",
+ "operator": "Include",
+ "values": [
+ "*"
+ ]
+ }
+ ],
+ "operator": "GreaterThan",
+ "threshold": 70,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/dd4bfc94-a096-412b-9c43-4bd13e35afbc/resourcegroups/QueryResourceGroupName/providers/microsoft.insights/scheduledqueryrules/heartbeat",
+ "name": "heartbeat",
+ "type": "microsoft.insights/scheduledqueryrules",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "description": "Health check rule",
+ "severity": 4,
+ "enabled": true,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147/resourceGroups/scopeResourceGroup1"
+ ],
+ "targetResourceTypes": [
+ "Microsoft.Compute/virtualMachines"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Heartbeat",
+ "timeAggregation": "Count",
+ "dimensions": [],
+ "operator": "GreaterThan",
+ "threshold": 360,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/listScheduledQueryRulesBySubscription.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/listScheduledQueryRulesBySubscription.json
new file mode 100644
index 000000000000..5df7739d68ff
--- /dev/null
+++ b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/listScheduledQueryRulesBySubscription.json
@@ -0,0 +1,122 @@
+{
+ "parameters": {
+ "subscriptionId": "dd4bfc94-a096-412b-9c43-4bd13e35afbc",
+ "api-version": "2020-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/dd4bfc94-a096-412b-9c43-4bd13e35afbc/resourcegroups/QueryResourceGroupName/providers/microsoft.insights/scheduledqueryrules/perf",
+ "name": "perf",
+ "type": "microsoft.insights/scheduledqueryrules",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "description": "Performance rule",
+ "severity": 4,
+ "enabled": true,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147"
+ ],
+ "targetResourceTypes": [
+ "Microsoft.Compute/virtualMachines"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Perf | where ObjectName == \"Processor\"",
+ "timeAggregation": "Average",
+ "metricMeasureColumn": "% Processor Time",
+ "resourceIdColumn": "resourceId",
+ "dimensions": [
+ {
+ "name": "ComputerIp",
+ "operator": "Exclude",
+ "values": [
+ "192.168.1.1"
+ ]
+ },
+ {
+ "name": "OSType",
+ "operator": "Include",
+ "values": [
+ "*"
+ ]
+ }
+ ],
+ "operator": "GreaterThan",
+ "threshold": 70,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/dd4bfc94-a096-412b-9c43-4bd13e35afbc/resourcegroups/MyResourceGroupName2/providers/microsoft.insights/scheduledqueryrules/heartbeat",
+ "name": "heartbeat",
+ "type": "microsoft.insights/scheduledqueryrules",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "description": "Health check rule",
+ "severity": 4,
+ "enabled": true,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147"
+ ],
+ "targetResourceTypes": [
+ "Microsoft.Compute/virtualMachines"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Heartbeat",
+ "timeAggregation": "Count",
+ "dimensions": [],
+ "operator": "GreaterThan",
+ "threshold": 360,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/patchScheduledQueryRule.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/patchScheduledQueryRule.json
new file mode 100644
index 000000000000..9a4810c7a9ce
--- /dev/null
+++ b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/examples/patchScheduledQueryRule.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "subscriptionId": "dd4bfc94-a096-412b-9c43-4bd13e35afbc",
+ "resourceGroupName": "QueryResourceGroupName",
+ "ruleName": "heartbeat",
+ "api-version": "2020-05-01-preview",
+ "parameters": {
+ "properties": {
+ "enabled": false
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/dd4bfc94-a096-412b-9c43-4bd13e35afbc/resourcegroups/QueryResourceGroupName/providers/microsoft.insights/scheduledqueryrules/heartbeat",
+ "name": "heartbeat",
+ "type": "microsoft.insights/scheduledqueryrules",
+ "location": "eastus",
+ "tags": {},
+ "properties": {
+ "description": "Health check rule",
+ "severity": 4,
+ "enabled": false,
+ "evaluationFrequency": "PT5M",
+ "scopes": [
+ "/subscriptions/aaf177ed-1330-a9f2-80ea-fd3d7783b147"
+ ],
+ "targetResourceTypes": [
+ "Microsoft.Compute/virtualMachines"
+ ],
+ "windowSize": "PT10M",
+ "criteria": {
+ "allOf": [
+ {
+ "query": "Heartbeat",
+ "timeAggregation": "Count",
+ "dimensions": [],
+ "operator": "GreaterThan",
+ "threshold": 360,
+ "failingPeriods": {
+ "numberOfEvaluationPeriods": 1,
+ "minFailingPeriodsToAlert": 1
+ }
+ }
+ ]
+ },
+ "muteActionsDuration": "PT30M",
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/1cf177ed-1330-4692-80ea-fd3d7783b147/resourcegroups/sqrapi/providers/microsoft.insights/actiongroups/myactiongroup",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/scheduledQueryRule_API.json b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/scheduledQueryRule_API.json
new file mode 100644
index 000000000000..278a0a1a97ce
--- /dev/null
+++ b/specification/monitor/resource-manager/Microsoft.Insights/preview/2020-05-01-preview/scheduledQueryRule_API.json
@@ -0,0 +1,622 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-05-01-preview",
+ "title": "Scheduled Query Rules API",
+ "description": "Azure Monitor client to create/update/delete Scheduled Query 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}/providers/Microsoft.Insights/scheduledQueryRules": {
+ "get": {
+ "tags": [
+ "ScheduledQueryRules"
+ ],
+ "description": "Retrieve a scheduled query rule definitions in a subscription.",
+ "operationId": "ScheduledQueryRules_ListBySubscription",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request for a list of scheduled query rules",
+ "schema": {
+ "$ref": "#/definitions/ScheduledQueryRuleResourceCollection"
+ }
+ },
+ "default": {
+ "description": "BadRequest",
+ "schema": {
+ "$ref": "#/definitions/ErrorContract"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "List scheduled query rules": {
+ "$ref": "./examples/listScheduledQueryRulesBySubscription.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/scheduledQueryRules": {
+ "get": {
+ "tags": [
+ "ScheduledQueryRules"
+ ],
+ "description": "Retrieve scheduled query rule definitions in a resource group.",
+ "operationId": "ScheduledQueryRules_ListByResourceGroup",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request for a list of scheduled query rules",
+ "schema": {
+ "$ref": "#/definitions/ScheduledQueryRuleResourceCollection"
+ }
+ },
+ "default": {
+ "description": "BadRequest",
+ "schema": {
+ "$ref": "#/definitions/ErrorContract"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "List scheduled query rules": {
+ "$ref": "./examples/listScheduledQueryRulesByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/scheduledQueryRules/{ruleName}": {
+ "get": {
+ "tags": [
+ "ScheduledQueryRules"
+ ],
+ "description": "Retrieve an scheduled query rule definition.",
+ "operationId": "ScheduledQueryRules_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/RuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request to get a scheduled query rule",
+ "schema": {
+ "$ref": "#/definitions/ScheduledQueryRuleResource"
+ }
+ },
+ "default": {
+ "description": "BadRequest",
+ "schema": {
+ "$ref": "#/definitions/ErrorContract"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a scheduled query rule for single resource": {
+ "$ref": "./examples/getScheduledQueryRule.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ScheduledQueryRules"
+ ],
+ "description": "Creates or updates a scheduled query rule.",
+ "operationId": "ScheduledQueryRules_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/RuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ScheduledQueryRuleResource"
+ },
+ "description": "The parameters of the rule to create or update."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request to update a scheduled query rule",
+ "schema": {
+ "$ref": "#/definitions/ScheduledQueryRuleResource"
+ }
+ },
+ "201": {
+ "description": "Created a scheduled query rule",
+ "schema": {
+ "$ref": "#/definitions/ScheduledQueryRuleResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorContract"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update a scheduled query rule for Single Resource": {
+ "$ref": "./examples/createOrUpdateScheduledQueryRule.json"
+ },
+ "Create or update a scheduled query rule on Resource group(s)": {
+ "$ref": "./examples/createOrUpdateScheduledQueryRuleResourceGroup.json"
+ },
+ "Create or update a scheduled query rule on Subscription ": {
+ "$ref": "./examples/createOrUpdateScheduledQueryRuleSubscription.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ScheduledQueryRules"
+ ],
+ "description": "Update a scheduled query rule.",
+ "operationId": "ScheduledQueryRules_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/RuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ScheduledQueryRuleResourcePatch"
+ },
+ "description": "The parameters of the rule to update."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request to update a scheduled query rule",
+ "schema": {
+ "$ref": "#/definitions/ScheduledQueryRuleResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorContract"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update a scheduled query rule": {
+ "$ref": "./examples/patchScheduledQueryRule.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ScheduledQueryRules"
+ ],
+ "description": "Deletes a scheduled query rule.",
+ "operationId": "ScheduledQueryRules_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/RuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorContract"
+ }
+ },
+ "200": {
+ "description": "Successful request to delete a scheduled query rule"
+ },
+ "204": {
+ "description": "No content: the request was successful, but the response is empty"
+ }
+ },
+ "x-ms-examples": {
+ "Delete a scheduled query rule": {
+ "$ref": "./examples/deleteScheduledQueryRule.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Action": {
+ "type": "object",
+ "description": "Actions to invoke when the alert fires.",
+ "properties": {
+ "actionGroupId": {
+ "type": "string",
+ "description": "Action Group resource Id to invoke when the alert fires."
+ },
+ "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."
+ }
+ }
+ },
+ "ScheduledQueryRuleProperties": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "The description of the scheduled query rule."
+ },
+ "severity": {
+ "type": "number",
+ "description": "Severity of the alert. Should be an integer between [0-4]. Value of 0 is severest",
+ "enum": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4"
+ ],
+ "x-ms-enum": {
+ "name": "AlertSeverity",
+ "modelAsString": true
+ }
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "The flag which indicates whether this scheduled query rule is enabled. Value should be true or false"
+ },
+ "scopes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The list of resource id's that this scheduled query rule is scoped to."
+ },
+ "evaluationFrequency": {
+ "type": "string",
+ "format": "duration",
+ "description": "How often the scheduled query rule is evaluated represented in ISO 8601 duration format."
+ },
+ "windowSize": {
+ "type": "string",
+ "format": "duration",
+ "description": "The period of time (in ISO 8601 duration format) on which the Alert query will be executed (bin size)."
+ },
+ "targetResourceTypes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of resource type of the target resource(s) on which the alert is created/updated. For example if the scope is a resource group and targetResourceTypes is Microsoft.Compute/virtualMachines, then a different alert will be fired for each virtual machine in the resource group which meet the alert criteria"
+ },
+ "criteria": {
+ "$ref": "#/definitions/ScheduledQueryRuleCriteria",
+ "description": "The rule criteria that defines the conditions of the scheduled query rule."
+ },
+ "muteActionsDuration": {
+ "type": "string",
+ "format": "duration",
+ "description": "Mute actions for the chosen period of time (in ISO 8601 duration format) after the alert is fired."
+ },
+ "actions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Action"
+ }
+ }
+ },
+ "description": "scheduled query rule Definition"
+ },
+ "ScheduledQueryRuleResource": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ScheduledQueryRuleProperties",
+ "description": "The rule properties of the resource.",
+ "required": [
+ "enabled",
+ "severity",
+ "evaluationFrequency",
+ "windowSize",
+ "criteria",
+ "scopes"
+ ]
+ }
+ },
+ "description": "The scheduled query rule resource."
+ },
+ "ScheduledQueryRuleResourcePatch": {
+ "type": "object",
+ "properties": {
+ "tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ScheduledQueryRuleProperties",
+ "description": "The scheduled query rule properties of the resource."
+ }
+ },
+ "description": "The scheduled query rule resource for patch operations."
+ },
+ "ScheduledQueryRuleResourceCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ScheduledQueryRuleResource"
+ },
+ "description": "The values for the scheduled query rule resources."
+ }
+ },
+ "description": "Represents a collection of scheduled query rule resources."
+ },
+ "ScheduledQueryRuleCriteria": {
+ "type": "object",
+ "description": "The rule criteria that defines the conditions of the scheduled query rule.",
+ "properties": {
+ "allOf": {
+ "type": "array",
+ "description": "A list of conditions to evaluate against the specified scopes",
+ "items": {
+ "$ref": "#/definitions/Condition"
+ }
+ }
+ }
+ },
+ "Condition": {
+ "type": "object",
+ "description": "A condition of the scheduled query rule.",
+ "properties": {
+ "query": {
+ "type": "string",
+ "description": "Log query alert"
+ },
+ "timeAggregation": {
+ "type": "string",
+ "description": "Aggregation type",
+ "enum": [
+ "Count",
+ "Average",
+ "Minimum",
+ "Maximum",
+ "Total"
+ ],
+ "x-ms-enum": {
+ "name": "timeAggregation",
+ "modelAsString": true
+ }
+ },
+ "metricMeasureColumn": {
+ "type": "string",
+ "description": "The column containing the metric measure number."
+ },
+ "resourceIdColumn": {
+ "type": "string",
+ "description": "The column containing the resource id. The content of the column must be a uri formatted as resource id"
+ },
+ "dimensions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Dimension"
+ },
+ "description": "List of Dimensions conditions"
+ },
+ "operator": {
+ "type": "string",
+ "enum": [
+ "Equals",
+ "GreaterThan",
+ "GreaterThanOrEqual",
+ "LessThan",
+ "LessThanOrEqual"
+ ],
+ "x-ms-enum": {
+ "name": "Operator",
+ "modelAsString": true
+ },
+ "description": "The criteria operator."
+ },
+ "threshold": {
+ "type": "number",
+ "format": "double",
+ "description": "the criteria threshold value that activates the alert."
+ },
+ "failingPeriods": {
+ "type": "object",
+ "description": "The minimum number of violations required within the selected lookback time window required to raise an alert.",
+ "properties": {
+ "numberOfEvaluationPeriods": {
+ "type": "number",
+ "description": "The number of aggregated lookback points. The lookback time window is calculated based on the aggregation granularity (windowSize) and the selected number of aggregated points. Default value is 1"
+ },
+ "minFailingPeriodsToAlert": {
+ "type": "number",
+ "description": "The number of violations to trigger an alert. Should be smaller or equal to numberOfEvaluationPeriods. Default value is 1"
+ }
+ }
+ }
+ },
+ "required": [
+ "operator",
+ "threshold",
+ "timeAggregation"
+ ]
+ },
+ "Dimension": {
+ "type": "object",
+ "description": "Dimension splitting and filtering definition",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the dimension"
+ },
+ "operator": {
+ "type": "string",
+ "description": "Operator for dimension values",
+ "enum": [
+ "Include",
+ "Exclude"
+ ],
+ "x-ms-enum": {
+ "name": "operator",
+ "modelAsString": true
+ }
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of dimension values"
+ }
+ },
+ "required": [
+ "name",
+ "operator",
+ "values"
+ ]
+ },
+ "ErrorContract": {
+ "description": "Describes the format of Error response.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "description": "The error details.",
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "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/monitor/resource-manager/readme.md b/specification/monitor/resource-manager/readme.md
index 8f7c32bb18f6..bb42b67ff66b 100644
--- a/specification/monitor/resource-manager/readme.md
+++ b/specification/monitor/resource-manager/readme.md
@@ -31,6 +31,15 @@ openapi-type: arm
tag: package-2019-06
```
+### Tag: package-2020-05-preview
+
+These settings apply only when `--tag=package-2020-05-preview` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-05-preview'
+input-file:
+- Microsoft.Insights/preview/2020-05-01-preview/scheduledQueryRule_API.json
+```
+
### Tag: package-2020-01-01-preview-only
These settings apply only when `--tag=package-2020-01-01-preview-only` is specified on the command line.
@@ -611,6 +620,8 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.Insights/preview/2020-05-01-preview/scheduledQueryRule_API.json
+ - $(this-folder)/Microsoft.Insights/preview/2020-01-01-preview/managementGroupDiagnosticSettings_API.json
- $(this-folder)/Microsoft.Insights/stable/2015-04-01/autoscale_API.json
- $(this-folder)/Microsoft.Insights/stable/2015-04-01/operations_API.json
- $(this-folder)/Microsoft.Insights/stable/2016-03-01/alertRulesIncidents_API.json
@@ -634,7 +645,6 @@ input-file:
- $(this-folder)/Microsoft.Insights/preview/2018-11-27-preview/vmInsightsOnboarding_API.json
- $(this-folder)/Microsoft.Insights/preview/2019-10-17-preview/privateLinkScopes_API.json
- $(this-folder)/Microsoft.Insights/preview/2017-05-01-preview/subscriptionDiagnosticsSettings_API.json
- - $(this-folder)/Microsoft.Insights/preview/2020-01-01-preview/managementGroupDiagnosticSettings_API.json
- $(this-folder)/Microsoft.Insights/stable/2019-03-01/actionGroups_API.json
- $(this-folder)/Microsoft.Insights/stable/2018-09-01/actionGroups_API.json
- $(this-folder)/Microsoft.Insights/stable/2018-03-01/actionGroups_API.json
diff --git a/specification/network/resource-manager/readme.md b/specification/network/resource-manager/readme.md
index 8de4b3291bc9..a0022d167160 100644
--- a/specification/network/resource-manager/readme.md
+++ b/specification/network/resource-manager/readme.md
@@ -1625,6 +1625,50 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/applicationGateway.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/applicationSecurityGroup.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/availableDelegations.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/availableServiceAliases.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/azureFirewall.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/azureFirewallFqdnTag.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/bastionHost.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/checkDnsAvailability.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/ddosCustomPolicy.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/ddosProtectionPlan.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/endpointService.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/expressRouteCircuit.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/expressRouteCrossConnection.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/expressRoutePort.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/firewallPolicy.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/ipAllocation.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/ipGroups.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/loadBalancer.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/natGateway.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/network.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/networkInterface.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/networkProfile.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/networkSecurityGroup.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/networkVirtualAppliance.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/networkWatcher.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/operation.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/privateEndpoint.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/privateLinkService.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/publicIpAddress.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/publicIpPrefix.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/routeFilter.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/routeTable.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/securityPartnerProvider.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/serviceCommunity.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/serviceEndpointPolicy.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/serviceTags.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/usage.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/virtualNetwork.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/virtualNetworkGateway.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/virtualNetworkTap.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/virtualRouter.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/virtualWan.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/vmssNetworkInterface.json
+ - $(this-folder)/Microsoft.Network/stable/2020-05-01/vmssPublicIpAddress.json
- $(this-folder)/Microsoft.Network/stable/2020-04-01/applicationGateway.json
- $(this-folder)/Microsoft.Network/stable/2020-04-01/applicationSecurityGroup.json
- $(this-folder)/Microsoft.Network/stable/2020-04-01/availableDelegations.json
diff --git a/specification/policyinsights/resource-manager/Microsoft.PolicyInsights/stable/2019-10-01/examples/PolicyStates_QueryResourceScopeExpandPolicyEvaluationDetails.json b/specification/policyinsights/resource-manager/Microsoft.PolicyInsights/stable/2019-10-01/examples/PolicyStates_QueryResourceScopeExpandPolicyEvaluationDetails.json
index 2bf56cd9c2f1..67953561bc9b 100644
--- a/specification/policyinsights/resource-manager/Microsoft.PolicyInsights/stable/2019-10-01/examples/PolicyStates_QueryResourceScopeExpandPolicyEvaluationDetails.json
+++ b/specification/policyinsights/resource-manager/Microsoft.PolicyInsights/stable/2019-10-01/examples/PolicyStates_QueryResourceScopeExpandPolicyEvaluationDetails.json
@@ -3,7 +3,7 @@
"policyStatesResource": "latest",
"resourceId": "subscriptions/fff10b27-fff3-fff5-fff8-fffbe01e86a5/resourceGroups/myResourceGroup/providers/Microsoft.ClassicCompute/domainNames/myDomainName",
"api-version": "2019-10-01",
- "$expand": "policyEvaluationDetails"
+ "$expand": "PolicyEvaluationDetails"
},
"responses": {
"200": {
diff --git a/specification/postgresql/resource-manager/readme.md b/specification/postgresql/resource-manager/readme.md
index f66689491fc6..103327a277e4 100644
--- a/specification/postgresql/resource-manager/readme.md
+++ b/specification/postgresql/resource-manager/readme.md
@@ -194,13 +194,13 @@ require: $(this-folder)/../../../profiles/readme.md
input-file:
- $(this-folder)/Microsoft.DBforPostgreSQL/preview/2020-01-01-privatepreview/DataEncryptionKeys.json
- $(this-folder)/Microsoft.DBforPostgreSQL/stable/2017-12-01/postgresql.json
- - $(this-folder)/Microsoft.DBforPostgreSQL/stable/2017-12-01/ServerSecurityAlertPolicies.json
- $(this-folder)/Microsoft.DBforPostgreSQL/stable/2018-06-01/PrivateEndpointConnections.json
- $(this-folder)/Microsoft.DBforPostgreSQL/stable/2018-06-01/PrivateLinkResources.json
- $(this-folder)/Microsoft.DBforPostgreSQL/stable/2020-01-01/DataEncryptionKeys.json
- $(this-folder)/Microsoft.DBforPostgreSQL/stable/2020-01-01/ServerSecurityAlertPolicies.json
- $(this-folder)/Microsoft.DBforPostgreSQL/preview/2018-06-01-privatepreview/PrivateEndpointConnections.json
- $(this-folder)/Microsoft.DBforPostgreSQL/preview/2018-06-01-privatepreview/PrivateLinkResources.json
+ - $(this-folder)/Microsoft.DBforPostgreSQL/stable/2017-12-01/ServerSecurityAlertPolicies.json
- $(this-folder)/Microsoft.DBforPostgreSQL/preview/2017-12-01-preview/postgresql.json
```
diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2020-06-01/examples/GetNamedProviderAtTenant.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2020-06-01/examples/GetNamedProviderAtTenant.json
new file mode 100644
index 000000000000..0c2168e47790
--- /dev/null
+++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2020-06-01/examples/GetNamedProviderAtTenant.json
@@ -0,0 +1,253 @@
+{
+ "parameters": {
+ "$expand": "resourceTypes/aliases",
+ "resourceProviderNamespace": "Microsoft.Storage",
+ "api-version": "2020-06-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "namespace": "Microsoft.Storage",
+ "resourceTypes": [
+ {
+ "resourceType": "storageAccounts",
+ "locations": [
+ "East US",
+ "East US 2",
+ "East US 2 (Stage)",
+ "West US",
+ "West Europe",
+ "East Asia",
+ "Southeast Asia",
+ "Japan East",
+ "Japan West",
+ "North Central US",
+ "South Central US",
+ "Central US",
+ "North Europe",
+ "Brazil South",
+ "Australia East",
+ "Australia Southeast",
+ "South India",
+ "Central India",
+ "West India",
+ "Canada East",
+ "Canada Central",
+ "West US 2",
+ "West Central US",
+ "UK South",
+ "UK West",
+ "Korea Central",
+ "Korea South",
+ "East US 2 EUAP",
+ "Central US EUAP",
+ "France Central",
+ "France South",
+ "Australia Central",
+ "Australia Central 2",
+ "South Africa West",
+ "South Africa North",
+ "UAE Central",
+ "UAE North",
+ "Switzerland North",
+ "Switzerland West",
+ "Germany West Central",
+ "Germany North",
+ "Norway East",
+ "Norway West",
+ "South Central US STG",
+ "Brazil Southeast"
+ ],
+ "apiVersions": [
+ "2019-06-01",
+ "2019-04-01",
+ "2018-11-01",
+ "2018-07-01",
+ "2018-03-01-preview",
+ "2018-02-01",
+ "2017-10-01",
+ "2017-06-01",
+ "2016-12-01",
+ "2016-05-01",
+ "2016-01-01",
+ "2015-06-15",
+ "2015-05-01-preview"
+ ],
+ "defaultApiVersion": "2019-06-01",
+ "apiProfiles": [
+ {
+ "profileVersion": "2019-03-01-hybrid",
+ "apiVersion": "2017-10-01"
+ },
+ {
+ "profileVersion": "2017-03-09-profile",
+ "apiVersion": "2016-01-01"
+ },
+ {
+ "profileVersion": "2018-03-01-hybrid",
+ "apiVersion": "2016-01-01"
+ },
+ {
+ "profileVersion": "2018-06-01-profile",
+ "apiVersion": "2017-10-01"
+ }
+ ],
+ "aliases": [
+ {
+ "name": "Microsoft.Storage/storageAccounts/accountType",
+ "paths": [
+ {
+ "path": "properties.accountType",
+ "apiVersions": [
+ "2015-06-15",
+ "2015-05-01-preview"
+ ]
+ },
+ {
+ "path": "sku.name",
+ "apiVersions": [
+ "2018-11-01",
+ "2018-11-09",
+ "2018-07-01",
+ "2018-03-01-Preview",
+ "2018-02-01",
+ "2017-10-01",
+ "2017-06-01",
+ "2016-12-01",
+ "2016-05-01",
+ "2016-01-01"
+ ]
+ }
+ ],
+ "defaultPath": "sku.name"
+ },
+ {
+ "name": "Microsoft.Storage/storageAccounts/sku.name",
+ "paths": [
+ {
+ "path": "properties.accountType",
+ "apiVersions": [
+ "2015-06-15",
+ "2015-05-01-preview"
+ ]
+ },
+ {
+ "path": "sku.name",
+ "apiVersions": [
+ "2018-11-01",
+ "2018-11-09",
+ "2018-07-01",
+ "2018-03-01-Preview",
+ "2018-02-01",
+ "2017-10-01",
+ "2017-06-01",
+ "2016-12-01",
+ "2016-05-01",
+ "2016-01-01"
+ ]
+ }
+ ],
+ "defaultPath": "sku.name"
+ },
+ {
+ "name": "Microsoft.Storage/storageAccounts/accessTier",
+ "paths": [
+ {
+ "path": "properties.accessTier",
+ "apiVersions": [
+ "2018-11-01",
+ "2018-11-09",
+ "2018-07-01",
+ "2018-03-01-Preview",
+ "2018-02-01",
+ "2017-10-01",
+ "2017-06-01",
+ "2016-12-01",
+ "2016-05-01",
+ "2016-01-01",
+ "2015-06-15",
+ "2015-05-01-preview"
+ ]
+ }
+ ],
+ "defaultPath": "properties.accessTier"
+ },
+ {
+ "name": "Microsoft.Storage/storageAccounts/enableBlobEncryption",
+ "paths": [
+ {
+ "path": "properties.encryption.services.blob.enabled",
+ "apiVersions": [
+ "2018-11-01",
+ "2018-11-09",
+ "2018-07-01",
+ "2018-03-01-Preview",
+ "2018-02-01",
+ "2017-10-01",
+ "2017-06-01",
+ "2016-12-01",
+ "2016-05-01",
+ "2016-01-01",
+ "2015-06-15",
+ "2015-05-01-preview"
+ ]
+ }
+ ],
+ "defaultPath": "properties.encryption.services.blob.enabled"
+ },
+ {
+ "name": "Microsoft.Storage/storageAccounts/enableFileEncryption",
+ "paths": [
+ {
+ "path": "properties.encryption.services.file.enabled",
+ "apiVersions": [
+ "2018-11-01",
+ "2018-11-09",
+ "2018-07-01",
+ "2018-03-01-Preview",
+ "2018-02-01",
+ "2017-10-01",
+ "2017-06-01",
+ "2016-12-01",
+ "2016-05-01",
+ "2016-01-01",
+ "2015-06-15",
+ "2015-05-01-preview"
+ ]
+ }
+ ],
+ "defaultPath": "properties.encryption.services.file.enabled"
+ },
+ {
+ "name": "Microsoft.Storage/storageAccounts/supportsHttpsTrafficOnly",
+ "paths": [
+ {
+ "path": "properties.supportsHttpsTrafficOnly",
+ "apiVersions": [
+ "2018-11-09",
+ "2018-03-01-Preview",
+ "2016-05-01",
+ "2016-01-01",
+ "2015-06-15",
+ "2015-05-01-preview"
+ ],
+ "metadata": {
+ "type": "NotSpecified",
+ "attributes": "None"
+ }
+ }
+ ],
+ "defaultPath": "properties.supportsHttpsTrafficOnly",
+ "defaultMetadata": {
+ "type": "Boolean",
+ "attributes": "Modifiable"
+ }
+ }
+ ],
+ "capabilities": "SupportsTags, SupportsLocation"
+ }
+ ]
+ }
+ }
+ }
+}
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 46af7f8d08fc..96b7e2efcdaa 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
@@ -2230,6 +2230,11 @@
"tags": [
"Providers"
],
+ "x-ms-examples": {
+ "Get a resource provider at tenant scope": {
+ "$ref": "./examples/GetNamedProviderAtTenant.json"
+ }
+ },
"operationId": "Providers_GetAtTenantScope",
"description": "Gets the specified resource provider at the tenant level.",
"parameters": [
@@ -4581,6 +4586,100 @@
},
"description": "An error response for a resource management request."
},
+ "ApiProfile": {
+ "properties": {
+ "profileVersion": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The profile version."
+ },
+ "apiVersion": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The API version."
+ }
+ }
+ },
+ "AliasPathMetadata": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "NotSpecified",
+ "Any",
+ "String",
+ "Object",
+ "Array",
+ "Integer",
+ "Number",
+ "Boolean"
+ ],
+ "x-ms-enum": {
+ "name": "AliasPathTokenType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "NotSpecified",
+ "description": "The token type is not specified."
+ },
+ {
+ "value": "Any",
+ "description": "The token type can be anything."
+ },
+ {
+ "value": "String",
+ "description": "The token type is string."
+ },
+ {
+ "value": "Object",
+ "description": "The token type is object."
+ },
+ {
+ "value": "Array",
+ "description": "The token type is array."
+ },
+ {
+ "value": "Integer",
+ "description": "The token type is integer."
+ },
+ {
+ "value": "Number",
+ "description": "The token type is number."
+ },
+ {
+ "value": "Boolean",
+ "description": "The token type is boolean."
+ }
+ ]
+ },
+ "description": "The type of the token that the alias path is referring to."
+ },
+ "attributes": {
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "None",
+ "Modifiable"
+ ],
+ "x-ms-enum": {
+ "name": "AliasPathAttributes",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "None",
+ "description": "The token that the alias path is referring to has no attributes."
+ },
+ {
+ "value": "Modifiable",
+ "description": "The token that the alias path is referring to is modifiable by policies with 'modify' effect."
+ }
+ ]
+ },
+ "description": "The attributes of the token that the alias path is referring to."
+ }
+ }
+ },
"AliasPath": {
"properties": {
"path": {
@@ -4597,6 +4696,11 @@
"pattern": {
"$ref": "#/definitions/AliasPattern",
"description": "The pattern for an alias path."
+ },
+ "metadata": {
+ "readOnly": true,
+ "$ref": "#/definitions/AliasPathMetadata",
+ "description": "The metadata of the alias path. If missing, fall back to the default metadata of the alias."
}
},
"description": "The type of the paths for alias."
@@ -4683,6 +4787,11 @@
"defaultPattern": {
"$ref": "#/definitions/AliasPattern",
"description": "The default pattern for an alias."
+ },
+ "defaultMetadata": {
+ "readOnly": true,
+ "$ref": "#/definitions/AliasPathMetadata",
+ "description": "The default alias path metadata. Applies to the default path and to any alias path that doesn't have metadata"
}
},
"description": "The alias type. "
@@ -4714,6 +4823,19 @@
},
"description": "The API version."
},
+ "defaultApiVersion": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The default API version."
+ },
+ "apiProfiles": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/ApiProfile"
+ },
+ "description": "The API profiles for the resource provider."
+ },
"capabilities": {
"type": "string",
"description": "The additional capabilities offered by this resource type."
diff --git a/specification/resources/resource-manager/readme.md b/specification/resources/resource-manager/readme.md
index 90a7ddc9e204..15f735c4451b 100644
--- a/specification/resources/resource-manager/readme.md
+++ b/specification/resources/resource-manager/readme.md
@@ -678,9 +678,9 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.Resources/stable/2020-06-01/resources.json
- $(this-folder)/Microsoft.Resources/stable/2020-01-01/subscriptions.json
- $(this-folder)/Microsoft.Resources/preview/2019-10-01-preview/deploymentScripts.json
- - $(this-folder)/Microsoft.Resources/preview/2019-06-01-preview/templateSpecs.json
- $(this-folder)/Microsoft.Features/stable/2015-12-01/features.json
- $(this-folder)/Microsoft.Authorization/stable/2016-09-01/locks.json
- $(this-folder)/Microsoft.Authorization/stable/2015-01-01/locks.json
@@ -702,6 +702,7 @@ input-file:
- $(this-folder)/Microsoft.Authorization/preview/2017-06-01-preview/policyAssignments.json
- $(this-folder)/Microsoft.Authorization/preview/2017-06-01-preview/policySetDefinitions.json
- $(this-folder)/Microsoft.Authorization/stable/2016-12-01/policyDefinitions.json
+ - $(this-folder)/Microsoft.Resources/preview/2019-06-01-preview/templateSpecs.json
- $(this-folder)/Microsoft.Authorization/stable/2016-12-01/policyAssignments.json
- $(this-folder)/Microsoft.Authorization/stable/2016-04-01/policy.json
- $(this-folder)/Microsoft.Authorization/preview/2015-10-01-preview/policy.json
diff --git a/specification/search/data-plane/Azure.Search/preview/2020-06-30-Preview/searchservice.json b/specification/search/data-plane/Azure.Search/preview/2020-06-30-Preview/searchservice.json
index 215221732891..ff607b71c3b9 100644
--- a/specification/search/data-plane/Azure.Search/preview/2020-06-30-Preview/searchservice.json
+++ b/specification/search/data-plane/Azure.Search/preview/2020-06-30-Preview/searchservice.json
@@ -5518,12 +5518,14 @@
"k1": {
"type": "number",
"format": "double",
- "description": "This property controls the scaling function between the term frequency of each matching terms and the final relevance score of a document-query pair. By default, a value of 1.2 is used. A value of 0.0 means the score does not scale with an increase in term frequency."
+ "description": "This property controls the scaling function between the term frequency of each matching terms and the final relevance score of a document-query pair. By default, a value of 1.2 is used. A value of 0.0 means the score does not scale with an increase in term frequency.",
+ "x-nullable": true
},
"b": {
"type": "number",
"format": "double",
- "description": "This property controls how the length of a document affects the relevance score. By default, a value of 0.75 is used. A value of 0.0 means no length normalization is applied, while a value of 1.0 means the score is fully normalized by the length of the document."
+ "description": "This property controls how the length of a document affects the relevance score. By default, a value of 0.75 is used. A value of 0.0 means no length normalization is applied, while a value of 1.0 means the score is fully normalized by the length of the document.",
+ "x-nullable": true
}
},
"description": "Ranking function based on the Okapi BM25 similarity algorithm. BM25 is a TF-IDF-like algorithm that includes length normalization (controlled by the 'b' parameter) as well as term frequency saturation (controlled by the 'k1' parameter)."
@@ -5697,10 +5699,12 @@
},
"dataChangeDetectionPolicy": {
"$ref": "#/definitions/DataChangeDetectionPolicy",
+ "x-nullable": true,
"description": "The data change detection policy for the datasource."
},
"dataDeletionDetectionPolicy": {
"$ref": "#/definitions/DataDeletionDetectionPolicy",
+ "x-nullable": true,
"description": "The data deletion detection policy for the datasource."
},
"@odata.etag": {
@@ -5757,18 +5761,21 @@
"batchSize": {
"type": "integer",
"format": "int32",
+ "x-nullable": true,
"description": "The number of items that are read from the data source and indexed as a single batch in order to improve performance. The default depends on the data source type."
},
"maxFailedItems": {
"type": "integer",
"format": "int32",
"default": 0,
+ "x-nullable": true,
"description": "The maximum number of items that can fail indexing for indexer execution to still be considered successful. -1 means no limit. Default is 0."
},
"maxFailedItemsPerBatch": {
"type": "integer",
"format": "int32",
"default": 0,
+ "x-nullable": true,
"description": "The maximum number of items in a single batch that can fail indexing for the batch to still be considered successful. -1 means no limit. Default is 0."
},
"configuration": {
@@ -5815,6 +5822,7 @@
},
"mappingFunction": {
"$ref": "#/definitions/FieldMappingFunction",
+ "x-nullable": true,
"description": "A function to apply to each source field value before indexing."
}
},
@@ -5853,10 +5861,12 @@
},
"schedule": {
"$ref": "#/definitions/IndexingSchedule",
+ "x-nullable": true,
"description": "The schedule for this indexer."
},
"parameters": {
"$ref": "#/definitions/IndexingParameters",
+ "x-nullable": true,
"description": "Parameters for indexer execution."
},
"fieldMappings": {
@@ -5883,6 +5893,7 @@
"x-ms-client-name": "IsDisabled",
"type": "boolean",
"default": false,
+ "x-nullable": true,
"description": "A value indicating whether the indexer is disabled. Default is false."
},
"@odata.etag": {
@@ -6014,6 +6025,7 @@
"type": "string",
"format": "date-time",
"readOnly": true,
+ "x-nullable": true,
"description": "The end time of this indexer execution, if the execution has already completed."
},
"errors": {
@@ -6236,21 +6248,24 @@
"url": "https://docs.microsoft.com/rest/api/searchservice/Language-support"
},
"$ref": "#/definitions/LexicalAnalyzerName",
- "description": "The name of the analyzer to use for the field. This option can be used only with searchable fields and it can't be set together with either searchAnalyzer or indexAnalyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields."
+ "description": "The name of the analyzer to use for the field. This option can be used only with searchable fields and it can't be set together with either searchAnalyzer or indexAnalyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.",
+ "x-nullable": true
},
"searchAnalyzer": {
"externalDocs": {
"url": "https://docs.microsoft.com/rest/api/searchservice/Language-support"
},
"$ref": "#/definitions/LexicalAnalyzerName",
- "description": "The name of the analyzer used at search time for the field. This option can be used only with searchable fields. It must be set together with indexAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. This analyzer can be updated on an existing field. Must be null for complex fields."
+ "description": "The name of the analyzer used at search time for the field. This option can be used only with searchable fields. It must be set together with indexAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. This analyzer can be updated on an existing field. Must be null for complex fields.",
+ "x-nullable": true
},
"indexAnalyzer": {
"externalDocs": {
"url": "https://docs.microsoft.com/rest/api/searchservice/Language-support"
},
"$ref": "#/definitions/LexicalAnalyzerName",
- "description": "The name of the analyzer used at indexing time for the field. This option can be used only with searchable fields. It must be set together with searchAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields."
+ "description": "The name of the analyzer used at indexing time for the field. This option can be used only with searchable fields. It must be set together with searchAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.",
+ "x-nullable": true
},
"synonymMaps": {
"externalDocs": {
@@ -6530,7 +6545,8 @@
"text": {
"x-ms-client-name": "TextWeights",
"$ref": "#/definitions/TextWeights",
- "description": "Parameters that boost scoring based on text matches in certain index fields."
+ "description": "Parameters that boost scoring based on text matches in certain index fields.",
+ "x-nullable": true
},
"functions": {
"type": "array",
@@ -6685,7 +6701,8 @@
},
"corsOptions": {
"$ref": "#/definitions/CorsOptions",
- "description": "Options to control Cross-Origin Resource Sharing (CORS) for the index."
+ "description": "Options to control Cross-Origin Resource Sharing (CORS) for the index.",
+ "x-nullable": true
},
"suggesters": {
"type": "array",
@@ -6739,7 +6756,8 @@
"description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data in Azure Cognitive Search. Once you have encrypted your data, it will always remain encrypted. Azure Cognitive Search will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.",
"externalDocs": {
"url": "https://aka.ms/azure-search-encryption-with-cmk"
- }
+ },
+ "x-nullable": true
},
"similarity": {
"$ref": "#/definitions/Similarity",
@@ -7215,6 +7233,7 @@
},
"suggestedFrom": {
"$ref": "#/definitions/TextTranslationSkillLanguage",
+ "x-nullable": true,
"description": "The language code to translate documents from when neither the fromLanguageCode input nor the defaultFromLanguageCode parameter are provided, and the automatic language detection is unsuccessful. Default is en."
}
},
@@ -8360,7 +8379,8 @@
"description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data in Azure Cognitive Search. Once you have encrypted your data, it will always remain encrypted. Azure Cognitive Search will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.",
"externalDocs": {
"url": "https://aka.ms/azure-search-encryption-with-cmk"
- }
+ },
+ "x-nullable": true
},
"@odata.etag": {
"x-ms-client-name": "ETag",
diff --git a/specification/search/data-plane/Azure.Search/preview/2020-06-30/examples/SearchServiceGetServiceStatistics.json b/specification/search/data-plane/Azure.Search/preview/2020-06-30/examples/SearchServiceGetServiceStatistics.json
index 13cb75e53894..fbbff6ad079a 100644
--- a/specification/search/data-plane/Azure.Search/preview/2020-06-30/examples/SearchServiceGetServiceStatistics.json
+++ b/specification/search/data-plane/Azure.Search/preview/2020-06-30/examples/SearchServiceGetServiceStatistics.json
@@ -30,10 +30,6 @@
"synonymMaps": {
"usage": 2,
"quota": 3
- },
- "skillsetCount": {
- "usage": 0,
- "quota": 3
}
},
"limits": {
diff --git a/specification/search/data-plane/Azure.Search/preview/2020-06-30/searchservice.json b/specification/search/data-plane/Azure.Search/preview/2020-06-30/searchservice.json
index 0e4871756a44..57a5eedf1b93 100644
--- a/specification/search/data-plane/Azure.Search/preview/2020-06-30/searchservice.json
+++ b/specification/search/data-plane/Azure.Search/preview/2020-06-30/searchservice.json
@@ -5518,12 +5518,14 @@
"k1": {
"type": "number",
"format": "double",
- "description": "This property controls the scaling function between the term frequency of each matching terms and the final relevance score of a document-query pair. By default, a value of 1.2 is used. A value of 0.0 means the score does not scale with an increase in term frequency."
+ "description": "This property controls the scaling function between the term frequency of each matching terms and the final relevance score of a document-query pair. By default, a value of 1.2 is used. A value of 0.0 means the score does not scale with an increase in term frequency.",
+ "x-nullable": true
},
"b": {
"type": "number",
"format": "double",
- "description": "This property controls how the length of a document affects the relevance score. By default, a value of 0.75 is used. A value of 0.0 means no length normalization is applied, while a value of 1.0 means the score is fully normalized by the length of the document."
+ "description": "This property controls how the length of a document affects the relevance score. By default, a value of 0.75 is used. A value of 0.0 means no length normalization is applied, while a value of 1.0 means the score is fully normalized by the length of the document.",
+ "x-nullable": true
}
},
"description": "Ranking function based on the Okapi BM25 similarity algorithm. BM25 is a TF-IDF-like algorithm that includes length normalization (controlled by the 'b' parameter) as well as term frequency saturation (controlled by the 'k1' parameter)."
@@ -5697,10 +5699,12 @@
},
"dataChangeDetectionPolicy": {
"$ref": "#/definitions/DataChangeDetectionPolicy",
+ "x-nullable": true,
"description": "The data change detection policy for the datasource."
},
"dataDeletionDetectionPolicy": {
"$ref": "#/definitions/DataDeletionDetectionPolicy",
+ "x-nullable": true,
"description": "The data deletion detection policy for the datasource."
},
"@odata.etag": {
@@ -5757,18 +5761,21 @@
"batchSize": {
"type": "integer",
"format": "int32",
+ "x-nullable": true,
"description": "The number of items that are read from the data source and indexed as a single batch in order to improve performance. The default depends on the data source type."
},
"maxFailedItems": {
"type": "integer",
"format": "int32",
"default": 0,
+ "x-nullable": true,
"description": "The maximum number of items that can fail indexing for indexer execution to still be considered successful. -1 means no limit. Default is 0."
},
"maxFailedItemsPerBatch": {
"type": "integer",
"format": "int32",
"default": 0,
+ "x-nullable": true,
"description": "The maximum number of items in a single batch that can fail indexing for the batch to still be considered successful. -1 means no limit. Default is 0."
},
"configuration": {
@@ -5815,6 +5822,7 @@
},
"mappingFunction": {
"$ref": "#/definitions/FieldMappingFunction",
+ "x-nullable": true,
"description": "A function to apply to each source field value before indexing."
}
},
@@ -5853,10 +5861,12 @@
},
"schedule": {
"$ref": "#/definitions/IndexingSchedule",
+ "x-nullable": true,
"description": "The schedule for this indexer."
},
"parameters": {
"$ref": "#/definitions/IndexingParameters",
+ "x-nullable": true,
"description": "Parameters for indexer execution."
},
"fieldMappings": {
@@ -5883,6 +5893,7 @@
"x-ms-client-name": "IsDisabled",
"type": "boolean",
"default": false,
+ "x-nullable": true,
"description": "A value indicating whether the indexer is disabled. Default is false."
},
"@odata.etag": {
@@ -6014,6 +6025,7 @@
"type": "string",
"format": "date-time",
"readOnly": true,
+ "x-nullable": true,
"description": "The end time of this indexer execution, if the execution has already completed."
},
"errors": {
@@ -6236,21 +6248,24 @@
"url": "https://docs.microsoft.com/rest/api/searchservice/Language-support"
},
"$ref": "#/definitions/LexicalAnalyzerName",
- "description": "The name of the analyzer to use for the field. This option can be used only with searchable fields and it can't be set together with either searchAnalyzer or indexAnalyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields."
+ "description": "The name of the analyzer to use for the field. This option can be used only with searchable fields and it can't be set together with either searchAnalyzer or indexAnalyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.",
+ "x-nullable": true
},
"searchAnalyzer": {
"externalDocs": {
"url": "https://docs.microsoft.com/rest/api/searchservice/Language-support"
},
"$ref": "#/definitions/LexicalAnalyzerName",
- "description": "The name of the analyzer used at search time for the field. This option can be used only with searchable fields. It must be set together with indexAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. This analyzer can be updated on an existing field. Must be null for complex fields."
+ "description": "The name of the analyzer used at search time for the field. This option can be used only with searchable fields. It must be set together with indexAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. This analyzer can be updated on an existing field. Must be null for complex fields.",
+ "x-nullable": true
},
"indexAnalyzer": {
"externalDocs": {
"url": "https://docs.microsoft.com/rest/api/searchservice/Language-support"
},
"$ref": "#/definitions/LexicalAnalyzerName",
- "description": "The name of the analyzer used at indexing time for the field. This option can be used only with searchable fields. It must be set together with searchAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields."
+ "description": "The name of the analyzer used at indexing time for the field. This option can be used only with searchable fields. It must be set together with searchAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.",
+ "x-nullable": true
},
"synonymMaps": {
"externalDocs": {
@@ -6530,7 +6545,8 @@
"text": {
"x-ms-client-name": "TextWeights",
"$ref": "#/definitions/TextWeights",
- "description": "Parameters that boost scoring based on text matches in certain index fields."
+ "description": "Parameters that boost scoring based on text matches in certain index fields.",
+ "x-nullable": true
},
"functions": {
"type": "array",
@@ -6685,7 +6701,8 @@
},
"corsOptions": {
"$ref": "#/definitions/CorsOptions",
- "description": "Options to control Cross-Origin Resource Sharing (CORS) for the index."
+ "description": "Options to control Cross-Origin Resource Sharing (CORS) for the index.",
+ "x-nullable": true
},
"suggesters": {
"type": "array",
@@ -6739,7 +6756,8 @@
"description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data in Azure Cognitive Search. Once you have encrypted your data, it will always remain encrypted. Azure Cognitive Search will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.",
"externalDocs": {
"url": "https://aka.ms/azure-search-encryption-with-cmk"
- }
+ },
+ "x-nullable": true
},
"similarity": {
"$ref": "#/definitions/Similarity",
@@ -7215,6 +7233,7 @@
},
"suggestedFrom": {
"$ref": "#/definitions/TextTranslationSkillLanguage",
+ "x-nullable": true,
"description": "The language code to translate documents from when neither the fromLanguageCode input nor the defaultFromLanguageCode parameter are provided, and the automatic language detection is unsuccessful. Default is en."
}
},
@@ -8360,7 +8379,8 @@
"description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data in Azure Cognitive Search. Once you have encrypted your data, it will always remain encrypted. Azure Cognitive Search will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.",
"externalDocs": {
"url": "https://aka.ms/azure-search-encryption-with-cmk"
- }
+ },
+ "x-nullable": true
},
"@odata.etag": {
"x-ms-client-name": "ETag",
diff --git a/specification/search/data-plane/Azure.Search/readme.md b/specification/search/data-plane/Azure.Search/readme.md
index 82139a0477fb..9e0c7d0e0ffa 100644
--- a/specification/search/data-plane/Azure.Search/readme.md
+++ b/specification/search/data-plane/Azure.Search/readme.md
@@ -162,7 +162,7 @@ directive:
- RequiredReadOnlyProperties
- where:
- $.definitions.SuggestResult.properties["@search.text"]
- suppress:
+ suppress:
- RequiredReadOnlyProperties
```
@@ -723,6 +723,10 @@ input-file:
- $(this-folder)/preview/2020-06-30-Preview/searchindex.json
- $(this-folder)/preview/2020-06-30/searchservice.json
- $(this-folder)/preview/2020-06-30/searchindex.json
+ - $(this-folder)/preview/2019-05-06-preview/searchservice.json
+ - $(this-folder)/preview/2019-05-06-preview/searchindex.json
+ - $(this-folder)/stable/2019-05-06/searchservice.json
+ - $(this-folder)/stable/2019-05-06/searchindex.json
```
diff --git a/specification/security/resource-manager/common/v1/types.json b/specification/security/resource-manager/common/v1/types.json
index 48bec7b159a3..fca7f0ceb5c6 100644
--- a/specification/security/resource-manager/common/v1/types.json
+++ b/specification/security/resource-manager/common/v1/types.json
@@ -169,7 +169,8 @@
"description": "The platform where the assessed resource resides",
"enum": [
"Azure",
- "OnPremise"
+ "OnPremise",
+ "OnPremiseSql"
],
"x-ms-enum": {
"name": "source",
@@ -182,6 +183,10 @@
{
"value": "OnPremise",
"description": "Resource in an on premise machine connected to Azure cloud"
+ },
+ {
+ "value": "OnPremiseSql",
+ "description": "SQL Resource in an on premise machine connected to Azure cloud"
}
]
}
@@ -242,6 +247,30 @@
"machineName"
]
},
+ "OnPremiseSqlResourceDetails": {
+ "type": "object",
+ "description": "Details of the On Premise Sql resource that was assessed",
+ "x-ms-discriminator-value": "OnPremiseSql",
+ "allOf": [
+ {
+ "$ref": "#/definitions/OnPremiseResourceDetails"
+ }
+ ],
+ "properties": {
+ "serverName": {
+ "type": "string",
+ "description": "The Sql server name installed on the machine"
+ },
+ "databaseName": {
+ "type": "string",
+ "description": "The Sql database name installed on the machine"
+ }
+ },
+ "required": [
+ "serverName",
+ "databaseName"
+ ]
+ },
"AzureResourceLinks": {
"description": "array of azure resource IDs",
"readOnly": true,
diff --git a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterDeleteOperation_example.json b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterDeleteOperation_example.json
index e638a101cb12..d59d195b8d47 100644
--- a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterDeleteOperation_example.json
+++ b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterDeleteOperation_example.json
@@ -11,6 +11,7 @@
"Location": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationResults/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2020-01-01-preview"
}
},
- "204": {}
+ "204": {},
+ "200": {}
}
}
diff --git a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterGetOperation_example.json b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterGetOperation_example.json
index ba1fe79076be..cfe0add5855e 100644
--- a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterGetOperation_example.json
+++ b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterGetOperation_example.json
@@ -29,17 +29,20 @@
{
"frontendPort": 80,
"backendPort": 80,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 443,
"backendPort": 443,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 10000,
"backendPort": 10000,
- "protocol": "tcp"
+ "protocol": "tcp",
+ "probeProtocol": "tcp"
}
],
"adminUserName": "vmadmin",
diff --git a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterPatchOperation_example.json b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterPatchOperation_example.json
index 1f95cbff7e49..596c355ccaa7 100644
--- a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterPatchOperation_example.json
+++ b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterPatchOperation_example.json
@@ -16,17 +16,20 @@
{
"frontendPort": 80,
"backendPort": 80,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 443,
"backendPort": 443,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 10000,
"backendPort": 10000,
- "protocol": "tcp"
+ "protocol": "tcp",
+ "probeProtocol": "tcp"
}
],
"fabricSettings": [
@@ -113,17 +116,20 @@
{
"frontendPort": 80,
"backendPort": 80,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 443,
"backendPort": 443,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 10000,
"backendPort": 10000,
- "protocol": "tcp"
+ "protocol": "tcp",
+ "probeProtocol": "tcp"
}
],
"adminUserName": "vmadmin",
@@ -211,17 +217,20 @@
{
"frontendPort": 80,
"backendPort": 80,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 443,
"backendPort": 443,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 10000,
"backendPort": 10000,
- "protocol": "tcp"
+ "protocol": "tcp",
+ "probeProtocol": "http"
}
],
"adminUserName": "vmadmin",
diff --git a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterPutOperation_example_max.json b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterPutOperation_example_max.json
index 1ed5700b5e16..6bd51c60283f 100644
--- a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterPutOperation_example_max.json
+++ b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterPutOperation_example_max.json
@@ -21,17 +21,20 @@
{
"frontendPort": 80,
"backendPort": 80,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 443,
"backendPort": 443,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 10000,
"backendPort": 10000,
- "protocol": "tcp"
+ "protocol": "tcp",
+ "probeProtocol": "http"
}
],
"fabricSettings": [
@@ -122,17 +125,20 @@
{
"frontendPort": 80,
"backendPort": 80,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 443,
"backendPort": 443,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 10000,
"backendPort": 10000,
- "protocol": "tcp"
+ "protocol": "tcp",
+ "probeProtocol": "tcp"
}
],
"adminUserName": "vmadmin",
@@ -223,17 +229,20 @@
{
"frontendPort": 80,
"backendPort": 80,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 443,
"backendPort": 443,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 10000,
"backendPort": 10000,
- "protocol": "tcp"
+ "protocol": "tcp",
+ "probeProtocol": "tcp"
}
],
"adminUserName": "vmadmin",
@@ -324,17 +333,20 @@
{
"frontendPort": 80,
"backendPort": 80,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 443,
"backendPort": 443,
- "protocol": "http"
+ "protocol": "http",
+ "probeProtocol": "http"
},
{
"frontendPort": 10000,
"backendPort": 10000,
- "protocol": "tcp"
+ "protocol": "tcp",
+ "probeProtocol": "tcp"
}
],
"adminUserName": "vmadmin",
diff --git a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ClusterVersionsListByOS_example.json b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterVersionsListByOS_example.json
similarity index 100%
rename from specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ClusterVersionsListByOS_example.json
rename to specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/ManagedClusterVersionsListByOS_example.json
diff --git a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypeDeleteOperation_example.json b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypeDeleteOperation_example.json
index 2f38d90c3430..577f254ca490 100644
--- a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypeDeleteOperation_example.json
+++ b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypeDeleteOperation_example.json
@@ -12,6 +12,7 @@
"Location": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationResults/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2020-01-01-preview"
}
},
- "204": {}
+ "204": {},
+ "200": {}
}
}
diff --git a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypeGetOperation_example.json b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypeGetOperation_example.json
index 5cc62be5cf7d..da4b281b58b3 100644
--- a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypeGetOperation_example.json
+++ b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypeGetOperation_example.json
@@ -16,7 +16,7 @@
"tags": {},
"properties": {
"isPrimary": true,
- "diskSizeInGB": 100,
+ "dataDiskSizeGB": 100,
"placementProperties": {},
"capacities": {},
"vmSize": "Standard_D2",
diff --git a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypeListOperation_example.json b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypeListOperation_example.json
index 1a613aad579c..6f4b84062835 100644
--- a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypeListOperation_example.json
+++ b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypeListOperation_example.json
@@ -17,7 +17,7 @@
"tags": {},
"properties": {
"isPrimary": true,
- "diskSizeInGB": 100,
+ "dataDiskSizeGB": 100,
"placementProperties": {},
"capacities": {},
"vmSize": "Standard_D2",
@@ -35,7 +35,7 @@
"tags": {},
"properties": {
"isPrimary": false,
- "diskSizeInGB": 200,
+ "dataDiskSizeGB": 200,
"placementProperties": {},
"capacities": {},
"vmSize": "Standard_D3",
@@ -62,7 +62,6 @@
"name": "Microsoft.Azure.Geneva.GenevaMonitoring",
"properties": {
"autoUpgradeMinorVersion": true,
- "enableAutomaticUpgrade": true,
"publisher": "Microsoft.Azure.Geneva",
"type": "GenevaMonitoring",
"typeHandlerVersion": "2.0",
diff --git a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypePatchOperation_example.json b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypePatchOperation_example.json
index 2237dbe4aa33..65d76cff104f 100644
--- a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypePatchOperation_example.json
+++ b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypePatchOperation_example.json
@@ -37,7 +37,6 @@
"name": "Microsoft.Azure.Geneva.GenevaMonitoring",
"properties": {
"autoUpgradeMinorVersion": true,
- "enableAutomaticUpgrade": true,
"publisher": "Microsoft.Azure.Geneva",
"type": "GenevaMonitoring",
"typeHandlerVersion": "2.0",
@@ -63,7 +62,7 @@
},
"properties": {
"isPrimary": false,
- "diskSizeInGB": 200,
+ "dataDiskSizeGB": 200,
"placementProperties": {
"HasSSD": "true",
"NodeColor": "green",
@@ -96,7 +95,6 @@
"name": "Microsoft.Azure.Geneva.GenevaMonitoring",
"properties": {
"autoUpgradeMinorVersion": true,
- "enableAutomaticUpgrade": true,
"publisher": "Microsoft.Azure.Geneva",
"type": "GenevaMonitoring",
"typeHandlerVersion": "2.0",
@@ -121,7 +119,7 @@
},
"properties": {
"isPrimary": false,
- "diskSizeInGB": 200,
+ "dataDiskSizeGB": 200,
"placementProperties": {
"HasSSD": "true",
"NodeColor": "green",
@@ -154,7 +152,6 @@
"name": "Microsoft.Azure.Geneva.GenevaMonitoring",
"properties": {
"autoUpgradeMinorVersion": true,
- "enableAutomaticUpgrade": true,
"publisher": "Microsoft.Azure.Geneva",
"type": "GenevaMonitoring",
"typeHandlerVersion": "2.0",
diff --git a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypePutOperation_example_max.json b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypePutOperation_example_max.json
index a6a90dab1744..4935cda63706 100644
--- a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypePutOperation_example_max.json
+++ b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypePutOperation_example_max.json
@@ -8,7 +8,7 @@
"parameters": {
"properties": {
"isPrimary": false,
- "diskSizeInGB": 200,
+ "dataDiskSizeGB": 200,
"placementProperties": {
"HasSSD": "true",
"NodeColor": "green",
@@ -41,7 +41,6 @@
"name": "Microsoft.Azure.Geneva.GenevaMonitoring",
"properties": {
"autoUpgradeMinorVersion": true,
- "enableAutomaticUpgrade": true,
"publisher": "Microsoft.Azure.Geneva",
"type": "GenevaMonitoring",
"typeHandlerVersion": "2.0",
@@ -65,7 +64,7 @@
"tags": {},
"properties": {
"isPrimary": false,
- "diskSizeInGB": 200,
+ "dataDiskSizeGB": 200,
"placementProperties": {
"HasSSD": "true",
"NodeColor": "green",
@@ -98,7 +97,6 @@
"name": "Microsoft.Azure.Geneva.GenevaMonitoring",
"properties": {
"autoUpgradeMinorVersion": true,
- "enableAutomaticUpgrade": true,
"publisher": "Microsoft.Azure.Geneva",
"type": "GenevaMonitoring",
"typeHandlerVersion": "2.0",
@@ -121,7 +119,7 @@
"tags": {},
"properties": {
"isPrimary": false,
- "diskSizeInGB": 200,
+ "dataDiskSizeGB": 200,
"placementProperties": {
"HasSSD": "true",
"NodeColor": "green",
@@ -154,7 +152,7 @@
"name": "Microsoft.Azure.Geneva.GenevaMonitoring",
"properties": {
"autoUpgradeMinorVersion": true,
- "enableAutomaticUpgrade": true,
+ "forceUpdateTag": "v.1.0",
"publisher": "Microsoft.Azure.Geneva",
"type": "GenevaMonitoring",
"typeHandlerVersion": "2.0",
@@ -177,7 +175,7 @@
"tags": {},
"properties": {
"isPrimary": false,
- "diskSizeInGB": 200,
+ "dataDiskSizeGB": 200,
"placementProperties": {
"HasSSD": "true",
"NodeColor": "green",
@@ -210,7 +208,7 @@
"name": "Microsoft.Azure.Geneva.GenevaMonitoring",
"properties": {
"autoUpgradeMinorVersion": true,
- "enableAutomaticUpgrade": true,
+ "forceUpdateTag": "v.1.0",
"publisher": "Microsoft.Azure.Geneva",
"type": "GenevaMonitoring",
"typeHandlerVersion": "2.0",
diff --git a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypePutOperation_example_min.json b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypePutOperation_example_min.json
index 5c78c18a91fd..81608fe06218 100644
--- a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypePutOperation_example_min.json
+++ b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/examples/NodeTypePutOperation_example_min.json
@@ -8,7 +8,7 @@
"parameters": {
"properties": {
"isPrimary": false,
- "diskSizeInGB": 200,
+ "dataDiskSizeGB": 200,
"vmSize": "Standard_D3",
"vmImagePublisher": "MicrosoftWindowsServer",
"vmImageOffer": "WindowsServer",
@@ -31,7 +31,7 @@
"tags": {},
"properties": {
"isPrimary": false,
- "diskSizeInGB": 200,
+ "dataDiskSizeGB": 200,
"placementProperties": {},
"capacities": {},
"vmSize": "Standard_D3",
@@ -55,7 +55,7 @@
"tags": {},
"properties": {
"isPrimary": false,
- "diskSizeInGB": 200,
+ "dataDiskSizeGB": 200,
"placementProperties": {},
"capacities": {},
"vmSize": "Standard_D3",
@@ -79,7 +79,7 @@
"tags": {},
"properties": {
"isPrimary": false,
- "diskSizeInGB": 200,
+ "dataDiskSizeGB": 200,
"placementProperties": {},
"capacities": {},
"vmSize": "Standard_D3",
diff --git a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/managedcluster.json b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/managedcluster.json
index c32defd2363e..b5ba10c91469 100644
--- a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/managedcluster.json
+++ b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/managedcluster.json
@@ -51,7 +51,7 @@
}
],
"tags": [
- "Cluster"
+ "ManagedCluster"
],
"x-ms-pageable": {
"nextLinkName": "nextLink"
@@ -327,6 +327,9 @@
"204": {
"description": "The resource was not found."
},
+ "200": {
+ "description": "The operation completed successfully."
+ },
"default": {
"description": "The detailed error response.",
"schema": {
@@ -374,7 +377,7 @@
},
"/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/managedclusters/locations/{location}/osType/{osType}/clusterVersions": {
"get": {
- "operationId": "ClusterVersions_ListByOS",
+ "operationId": "ManagedClusterVersions_ListByOS",
"summary": "Gets the list of Service Fabric cluster code versions available for the specified OS type.",
"description": "Gets all available code versions for Service Fabric cluster resources by OS type.",
"parameters": [
@@ -393,11 +396,11 @@
],
"x-ms-examples": {
"List cluster versions by OS": {
- "$ref": "./examples/ClusterVersionsListByOS_example.json"
+ "$ref": "./examples/ManagedClusterVersionsListByOS_example.json"
}
},
"tags": [
- "ClusterVersion"
+ "ManagedClusterVersion"
],
"responses": {
"200": {
@@ -405,10 +408,16 @@
"schema": {
"type": "array",
"items": {
- "$ref": "#/definitions/ClusterVersionDetails"
+ "$ref": "#/definitions/ManagedClusterVersionDetails"
},
"description": "The list of available Service Fabric runtime versions."
}
+ },
+ "default": {
+ "description": "The detailed error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorModel"
+ }
}
}
}
@@ -416,26 +425,21 @@
},
"definitions": {
"AzureActiveDirectory": {
- "required": [
- "tenantId",
- "clusterApplication",
- "clientApplication"
- ],
"properties": {
"tenantId": {
- "type": "boolean",
+ "type": "string",
"description": "Azure active directory tenant id."
},
"clusterApplication": {
"type": "string",
- "description": "Azure active directory cluster application."
+ "description": "Azure active directory cluster application id."
},
"clientApplication": {
"type": "string",
- "description": "Azure active directory client application."
+ "description": "Azure active directory client application id."
}
},
- "description": "Azure active directory."
+ "description": "The settings to enable AAD authentication on the cluster."
},
"ClientCertificate": {
"required": [
@@ -487,7 +491,7 @@
"Ready"
]
},
- "ClusterVersionDetails": {
+ "ManagedClusterVersionDetails": {
"properties": {
"msiVersion": {
"type": "string",
@@ -514,12 +518,14 @@
"properties": {
"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 1 and 65534.",
"minimum": 1,
"maximum": 65534
},
"backendPort": {
"type": "integer",
+ "format": "int32",
"description": "The port used for internal connections on the endpoint. Acceptable values are between 1 and 65535.",
"minimum": 1,
"maximum": 65534
@@ -629,11 +635,13 @@
},
"clientConnectionPort": {
"type": "integer",
+ "format": "int32",
"description": "The port used for client connections to the cluster.",
"default": 19000
},
"httpGatewayConnectionPort": {
"type": "integer",
+ "format": "int32",
"description": "The port used for http connections to the cluster.",
"default": 19080
},
@@ -649,38 +657,37 @@
},
"loadBalancingRules": {
"type": "array",
- "$ref": "#/definitions/LoadBalancingRule",
- "description": "Describes a load balancing rule."
+ "items": {
+ "$ref": "#/definitions/LoadBalancingRule"
+ },
+ "description": "Describes load balancing rules."
},
"clients": {
"type": "array",
- "$ref": "#/definitions/ClientCertificate",
+ "items": {
+ "$ref": "#/definitions/ClientCertificate"
+ },
"description": "client certificates for the cluster."
},
"azureActiveDirectory": {
- "type": "array",
"$ref": "#/definitions/AzureActiveDirectory",
"description": "Azure active directory."
},
"fabricSettings": {
"type": "array",
- "$ref": "#/definitions/SettingsSectionDescription",
+ "items": {
+ "$ref": "#/definitions/SettingsSectionDescription"
+ },
"description": "The list of custom fabric settings to configure the cluster."
},
+ "useTestExtension": {
+ "type": "boolean",
+ "description": "Use service fabric test vm extension, by default it's false."
+ },
"provisioningState": {
- "type": "string",
+ "$ref": "#/definitions/ManagedResourceProvisioningState",
"description": "The provisioning state of the managed cluster resource.",
- "readOnly": true,
- "enum": [
- "Updating",
- "Succeeded",
- "Failed",
- "Canceled"
- ],
- "x-ms-enum": {
- "name": "ProvisioningState",
- "modelAsString": true
- }
+ "readOnly": true
},
"clusterCodeVersion": {
"type": "string",
@@ -696,6 +703,7 @@
},
"reverseProxyEndpointPort": {
"type": "integer",
+ "format": "int32",
"description": "The endpoint used by reverse proxy."
}
},
@@ -705,30 +713,37 @@
"properties": {
"clientConnectionPort": {
"type": "integer",
+ "format": "int32",
"description": "The port used for client connections to the cluster."
},
"httpGatewayConnectionPort": {
"type": "integer",
+ "format": "int32",
"description": "The port used for http connections to the cluster."
},
"loadBalancingRules": {
"type": "array",
- "$ref": "#/definitions/LoadBalancingRule",
+ "items": {
+ "$ref": "#/definitions/LoadBalancingRule"
+ },
"description": "Describes a load balancing rule."
},
"clients": {
"type": "array",
- "$ref": "#/definitions/ClientCertificate",
+ "items": {
+ "$ref": "#/definitions/ClientCertificate"
+ },
"description": "client certificates for the cluster."
},
"azureActiveDirectory": {
- "type": "array",
"$ref": "#/definitions/AzureActiveDirectory",
"description": "Azure active directory."
},
"fabricSettings": {
"type": "array",
- "$ref": "#/definitions/SettingsSectionDescription",
+ "items": {
+ "$ref": "#/definitions/SettingsSectionDescription"
+ },
"description": "The list of custom fabric settings to configure the cluster."
},
"clusterCodeVersion": {
@@ -745,6 +760,7 @@
},
"reverseProxyEndpointPort": {
"type": "integer",
+ "format": "int32",
"description": "The endpoint used by reverse proxy."
}
},
@@ -978,6 +994,22 @@
},
"description": "The error details."
},
+ "ManagedResourceProvisioningState": {
+ "type": "string",
+ "description": "The provisioning state of the managed resource.",
+ "enum": [
+ "None",
+ "Creating",
+ "Created",
+ "Updating",
+ "Succeeded",
+ "Failed",
+ "Canceled",
+ "Deleting",
+ "Deleted",
+ "Other"
+ ]
+ },
"OperationListResult": {
"properties": {
"value": {
diff --git a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/nodetype.json b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/nodetype.json
index a3105dbd9133..04f22ffa6b1b 100644
--- a/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/nodetype.json
+++ b/specification/servicefabric/resource-manager/Microsoft.ServiceFabric/preview/2020-01-01-preview/nodetype.json
@@ -523,6 +523,9 @@
"204": {
"description": "The resource was not found."
},
+ "200": {
+ "description": "The operation completed successfully."
+ },
"default": {
"description": "The detailed error response.",
"schema": {
@@ -540,7 +543,7 @@
"description": "The node type definition"
},
{
- "$ref": "#/definitions/ProxyResource"
+ "$ref": "#/definitions/ManagedProxyResource"
}
],
"properties": {
@@ -575,7 +578,7 @@
"required": [
"isPrimary",
"vmInstanceCount",
- "diskSizeInGB"
+ "dataDiskSizeGB"
],
"properties": {
"isPrimary": {
@@ -584,12 +587,14 @@
},
"vmInstanceCount": {
"type": "integer",
+ "format": "int32",
"description": "The number of nodes in the node type. This count should match the capacity property in the corresponding VirtualMachineScaleSet resource.",
"minimum": 1,
"maximum": 2147483647
},
- "diskSizeInGB": {
+ "dataDiskSizeGB": {
"type": "integer",
+ "format": "int32",
"description": "Disk size for each vm in the node type in GBs."
},
"placementProperties": {
@@ -651,6 +656,11 @@
"items": {
"$ref": "#/definitions/VMSSExtension"
}
+ },
+ "provisioningState": {
+ "$ref": "#/definitions/ManagedResourceProvisioningState",
+ "description": "The provisioning state of the managed cluster resource.",
+ "readOnly": true
}
},
"description": "Describes a node type in the cluster, each node type represents sub set of nodes in the cluster."
@@ -676,6 +686,7 @@
"properties": {
"vmInstanceCount": {
"type": "integer",
+ "format": "int32",
"description": "The number of nodes in the node type. This count should match the capacity property in the corresponding VirtualMachineScaleSet resource.",
"minimum": 1,
"maximum": 2147483647
@@ -740,7 +751,7 @@
},
"description": "Node type update request"
},
- "ProxyResource": {
+ "ManagedProxyResource": {
"properties": {
"id": {
"type": "string",
@@ -772,6 +783,22 @@
"description": "The resource model definition for proxy-only resource.",
"x-ms-azure-resource": true
},
+ "ManagedResourceProvisioningState": {
+ "type": "string",
+ "description": "The provisioning state of the managed resource.",
+ "enum": [
+ "None",
+ "Creating",
+ "Created",
+ "Updating",
+ "Succeeded",
+ "Failed",
+ "Canceled",
+ "Deleting",
+ "Deleted",
+ "Other"
+ ]
+ },
"SubResource": {
"properties": {
"id": {
@@ -844,6 +871,10 @@
"typeHandlerVersion"
],
"properties": {
+ "forceUpdateTag": {
+ "type": "string",
+ "description": "If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed."
+ },
"publisher": {
"type": "string",
"description": "The name of the extension handler publisher."
@@ -860,10 +891,6 @@
"type": "boolean",
"description": "Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true."
},
- "enableAutomaticUpgrade": {
- "type": "boolean",
- "description": "Indicates if the extension will upgrade automatically."
- },
"settings": {
"type": "object",
"description": "Json formatted public settings for the extension."
@@ -876,6 +903,13 @@
"readOnly": true,
"type": "string",
"description": "The provisioning state, which only appears in the response."
+ },
+ "provisionAfterExtensions": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Collection of extension names after which this extension needs to be provisioned."
}
},
"description": "Describes the properties of a Virtual Machine Scale Set Extension."
diff --git a/specification/servicefabric/resource-manager/readme.md b/specification/servicefabric/resource-manager/readme.md
index 0e301cceb90e..49b1b2250bdd 100644
--- a/specification/servicefabric/resource-manager/readme.md
+++ b/specification/servicefabric/resource-manager/readme.md
@@ -68,6 +68,8 @@ These settings apply only when `--tag=package-2020-03` is specified on the comma
input-file:
- Microsoft.ServiceFabric/stable/2020-03-01/cluster.json
- Microsoft.ServiceFabric/stable/2020-03-01/application.json
+- Microsoft.ServiceFabric/preview/2020-01-01-preview/managedcluster.json
+- Microsoft.ServiceFabric/preview/2020-01-01-preview/nodetype.json
```
### Tag: package-2020-01-preview
@@ -217,6 +219,8 @@ require: $(this-folder)/../../../profiles/readme.md
input-file:
- $(this-folder)/Microsoft.ServiceFabric/stable/2020-03-01/cluster.json
- $(this-folder)/Microsoft.ServiceFabric/stable/2020-03-01/application.json
+ - $(this-folder)/Microsoft.ServiceFabric/preview/2020-01-01-preview/managedcluster.json
+ - $(this-folder)/Microsoft.ServiceFabric/preview/2020-01-01-preview/nodetype.json
- $(this-folder)/Microsoft.ServiceFabric/preview/2019-11-01-preview/cluster.json
- $(this-folder)/Microsoft.ServiceFabric/preview/2019-11-01-preview/application.json
- $(this-folder)/Microsoft.ServiceFabric/preview/2019-06-01-preview/cluster.json
@@ -229,8 +233,6 @@ input-file:
- $(this-folder)/Microsoft.ServiceFabric/preview/2017-07-01-preview/application.json
- $(this-folder)/Microsoft.ServiceFabric/preview/2017-07-01-preview/servicefabric.json
- $(this-folder)/Microsoft.ServiceFabric/stable/2016-09-01/servicefabric.json
- - $(this-folder)/Microsoft.ServiceFabric/preview/2020-01-01-preview/managedcluster.json
- - $(this-folder)/Microsoft.ServiceFabric/preview/2020-01-01-preview/nodetype.json
```
diff --git a/specification/signalr/resource-manager/readme.md b/specification/signalr/resource-manager/readme.md
index 2f52d708922d..bfcc6c5aae19 100644
--- a/specification/signalr/resource-manager/readme.md
+++ b/specification/signalr/resource-manager/readme.md
@@ -149,6 +149,7 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.SignalRService/preview/2020-07-01-preview/signalr.json
- $(this-folder)/Microsoft.SignalRService/stable/2020-05-01/signalr.json
- $(this-folder)/Microsoft.SignalRService/stable/2018-10-01/signalr.json
- $(this-folder)/Microsoft.SignalRService/preview/2018-03-01-preview/signalr.json
diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/ServerAzureADAdministrators.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/ServerAzureADAdministrators.json
index cdd9476a0624..5fd09941f7c8 100644
--- a/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/ServerAzureADAdministrators.json
+++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/ServerAzureADAdministrators.json
@@ -90,6 +90,7 @@
{
"name": "administratorName",
"in": "path",
+ "description": "The name of server active directory administrator.",
"required": true,
"type": "string",
"enum": [
@@ -103,7 +104,7 @@
{
"name": "parameters",
"in": "body",
- "description": "The required parameters for creating or updating an Active Directory Administrator.",
+ "description": "The requested Azure Active Directory administrator Resource state.",
"required": true,
"schema": {
"$ref": "#/definitions/ServerAzureADAdministrator"
@@ -118,7 +119,7 @@
}
},
"default": {
- "description": "*** Error Responses: ***\n\n * 400 InvalidServerAzureADOnlyAuthenticationParameter - User tried to set AzureADOnlyAuthentication parameter to false which is not allowed, please use disableAzureADOnlyAuthentication API instead.\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 OperationIdNotFound - The operation with Id does not exist.\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."
+ "description": "*** Error Responses: ***\n\n * 400 InvalidServerAzureADOnlyAuthenticationParameter - User tried to set AzureADOnlyAuthentication parameter to false which is not allowed, please use azureADOnlyAuthentications API instead.\n\n * 400 InvalidServerAzureADAdminDeleteOperation - User tried to delete server Azure Active Azure admin when AzureADOnlyAuthentication is set, please use azureADOnlyAuthentications API first.\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 OperationIdNotFound - The operation with Id does not exist.\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."
},
"202": {
"description": "Accepted"
@@ -176,7 +177,7 @@
"description": "Successfully deleted the Azure Active Directory administrator."
},
"default": {
- "description": "*** Error Responses: ***\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 OperationIdNotFound - The operation with Id does not exist.\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."
+ "description": "*** Error Responses: ***\n\n * 400 InvalidServerAzureADOnlyAuthenticationParameter - User tried to set AzureADOnlyAuthentication parameter to false which is not allowed, please use azureADOnlyAuthentications API instead.\n\n * 400 InvalidServerAzureADAdminDeleteOperation - User tried to delete server Azure Active Azure admin when AzureADOnlyAuthentication is set, please use azureADOnlyAuthentications API first.\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 OperationIdNotFound - The operation with Id does not exist.\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."
},
"202": {
"description": "Accepted"
@@ -234,49 +235,6 @@
}
}
}
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/disableAzureADOnlyAuthentication": {
- "post": {
- "tags": [
- "ServerAzureADAdministrators"
- ],
- "description": "Disables Azure Active Directory only authentication on logical Server.",
- "operationId": "ServerAzureADAdministrators_DisableAzureADOnlyAuthentication",
- "parameters": [
- {
- "$ref": "../../../common/v1/types.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "../../../common/v1/types.json#/parameters/SubscriptionIdParameter"
- },
- {
- "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupParameter"
- },
- {
- "$ref": "#/parameters/ServerNameParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Successfully disabled Azure Active Directory only authentication on logical server.",
- "schema": {
- "$ref": "#/definitions/ServerAzureADAdministrator"
- }
- },
- "default": {
- "description": "*** Error Responses: ***\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 OperationIdNotFound - The operation with Id does not exist.\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."
- },
- "202": {
- "description": "Accepted"
- }
- },
- "x-ms-long-running-operation": true,
- "x-ms-examples": {
- "Disables Azure Active Directory only authentication on logical server.": {
- "$ref": "./examples/DisableAzureADOnlyAuthUpdate.json"
- }
- }
- }
}
},
"definitions": {
@@ -316,7 +274,8 @@
},
"azureADOnlyAuthentication": {
"description": "Azure Active Directory only Authentication enabled.",
- "type": "boolean"
+ "type": "boolean",
+ "readOnly": true
}
}
},
@@ -447,6 +406,30 @@
"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": {
diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/AdministratorCreateOrUpdate.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/AdministratorCreateOrUpdate.json
index bf99bf84a0fa..8697a1c2f6f9 100644
--- a/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/AdministratorCreateOrUpdate.json
+++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/AdministratorCreateOrUpdate.json
@@ -11,8 +11,7 @@
"administratorType": "ActiveDirectory",
"login": "bob@contoso.com",
"sid": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c",
- "tenantId": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c",
- "azureADOnlyAuthentication": true
+ "tenantId": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c"
}
}
},
@@ -26,8 +25,7 @@
"administratorType": "ActiveDirectory",
"login": "bob@contoso.com",
"sid": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c",
- "tenantId": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c",
- "azureADOnlyAuthentication": true
+ "tenantId": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c"
}
}
},
@@ -40,8 +38,7 @@
"administratorType": "ActiveDirectory",
"login": "bob@contoso.com",
"sid": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c",
- "tenantId": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c",
- "azureADOnlyAuthentication": true
+ "tenantId": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c"
}
}
},
diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/AdministratorGet.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/AdministratorGet.json
index 52aee36b3f44..ff2acb6324dc 100644
--- a/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/AdministratorGet.json
+++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/AdministratorGet.json
@@ -16,8 +16,7 @@
"administratorType": "ActiveDirectory",
"login": "bob@contoso.com",
"sid": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c",
- "tenantId": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c",
- "azureADOnlyAuthentication": true
+ "tenantId": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c"
}
}
}
diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/AdministratorList.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/AdministratorList.json
index 0fb15a505729..282785c9164a 100644
--- a/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/AdministratorList.json
+++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/AdministratorList.json
@@ -18,8 +18,7 @@
"administratorType": "ActiveDirectory",
"login": "bob@contoso.com",
"sid": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c",
- "tenantId": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c",
- "azureADOnlyAuthentication": true
+ "tenantId": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c"
}
}
]
diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/DisableAzureADOnlyAuthUpdate.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/DisableAzureADOnlyAuthUpdate.json
deleted file mode 100644
index 91bf39fc96a1..000000000000
--- a/specification/sql/resource-manager/Microsoft.Sql/preview/2019-06-01-preview/examples/DisableAzureADOnlyAuthUpdate.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "parameters": {
- "subscriptionId": "00000000-1111-2222-3333-444444444444",
- "resourceGroupName": "sqlcrudtest-4799",
- "serverName": "sqlcrudtest-6440",
- "api-version": "2019-06-01-preview",
- "parameters": {}
- },
- "responses": {
- "200": {
- "body": {
- "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-4799/providers/Microsoft.Sql/servers/sqlcrudtest-6440/administrators/ActiveDirectory",
- "name": "ActiveDirectory",
- "type": "Microsoft.Sql/servers/administrators",
- "properties": {
- "administratorType": "ActiveDirectory",
- "login": "bob@contoso.com",
- "sid": "c6b82b90-a647-49cb-8a62-0d2d3cb7ac7c",
- "tenantId": "d6b82b90-a647-49cb-8a62-0d2d3cb7ac7c",
- "azureADOnlyAuthentication": false
- }
- }
- },
- "202": {}
- }
-}
diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/ServerAzureADOnlyAuthentications.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/ServerAzureADOnlyAuthentications.json
new file mode 100644
index 000000000000..ad025ce40cd6
--- /dev/null
+++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/ServerAzureADOnlyAuthentications.json
@@ -0,0 +1,418 @@
+{
+ "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}/azureADOnlyAuthentications/{authenticationName}": {
+ "get": {
+ "tags": [
+ "ServerAzureADOnlyAuthentications"
+ ],
+ "description": "Gets a specific Azure Active Directory only authentication property.",
+ "operationId": "ServerAzureADOnlyAuthentications_Get",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ServerNameParameter"
+ },
+ {
+ "name": "authenticationName",
+ "in": "path",
+ "description": "The name of server azure active directory only authentication.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "Default"
+ ],
+ "x-ms-enum": {
+ "name": "AuthenticationName",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved a specified Azure Active Directory only authentication properties.",
+ "schema": {
+ "$ref": "#/definitions/ServerAzureADOnlyAuthentication"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 ResourceNotFound - The requested resource was not found."
+ }
+ },
+ "x-ms-examples": {
+ "Gets a Azure Active Directory only authentication property.": {
+ "$ref": "./examples/AzureADOnlyAuthGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ServerAzureADOnlyAuthentications"
+ ],
+ "description": "Sets Server Active Directory only authentication property or updates an existing server Active Directory only authentication property.",
+ "operationId": "ServerAzureADOnlyAuthentications_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ServerNameParameter"
+ },
+ {
+ "name": "authenticationName",
+ "in": "path",
+ "description": "The name of server azure active directory only authentication.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "Default"
+ ],
+ "x-ms-enum": {
+ "name": "AuthenticationName",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The required parameters for creating or updating an Active Directory only authentication property.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ServerAzureADOnlyAuthentication"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated a Azure Active Directory only authentication property.",
+ "schema": {
+ "$ref": "#/definitions/ServerAzureADOnlyAuthentication"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 OperationIdNotFound - The operation with Id does not exist.\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."
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "201": {
+ "description": "Successfully updated Azure Active Directory only authentication property.",
+ "schema": {
+ "$ref": "#/definitions/ServerAzureADOnlyAuthentication"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Creates or updates Azure Active Directory only authentication object.": {
+ "$ref": "./examples/AzureADOnlyAuthCreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ServerAzureADOnlyAuthentications"
+ ],
+ "description": "Deletes an existing server Active Directory only authentication property.",
+ "operationId": "ServerAzureADOnlyAuthentications_Delete",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ServerNameParameter"
+ },
+ {
+ "name": "authenticationName",
+ "in": "path",
+ "description": "The name of server azure active directory only authentication.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "Default"
+ ],
+ "x-ms-enum": {
+ "name": "AuthenticationName",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the Azure Active Directory only property."
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 OperationIdNotFound - The operation with Id does not exist.\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."
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "The specified Azure Active Directory only property does not exist."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Deletes Azure Active Directory only authentication object.": {
+ "$ref": "./examples/AzureADOnlyAuthDelete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/azureADOnlyAuthentications": {
+ "get": {
+ "tags": [
+ "ServerAzureADOnlyAuthentications"
+ ],
+ "description": "Gets a list of server Azure Active Directory only authentications.",
+ "operationId": "ServerAzureADOnlyAuthentications_ListByServer",
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ServerNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the list of Azure Active Directory only authentication objects.",
+ "schema": {
+ "$ref": "#/definitions/AzureADOnlyAuthListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ServerNotInSubscriptionResourceGroup - Specified server does not exist in the specified resource group and subscription.\n\n * 404 ResourceNotFound - The requested resource was not found."
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Gets a list of Azure Active Directory only authentication object.": {
+ "$ref": "./examples/AzureADOnlyAuthList.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AzureADOnlyAuthProperties": {
+ "description": "Properties of a active directory only authentication.",
+ "required": [
+ "azureADOnlyAuthentication"
+ ],
+ "type": "object",
+ "properties": {
+ "azureADOnlyAuthentication": {
+ "description": "Azure Active Directory only Authentication enabled.",
+ "type": "boolean"
+ }
+ }
+ },
+ "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": {}
+ },
+ "ServerAzureADOnlyAuthentication": {
+ "description": "Azure Active Directory only authentication.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/AzureADOnlyAuthProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "AzureADOnlyAuthListResult": {
+ "description": "A list of active directory only authentications.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServerAzureADOnlyAuthentication"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ }
+ },
+ "parameters": {
+ "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/Microsoft.Sql/preview/2020-02-02-preview/examples/AzureADOnlyAuthCreateOrUpdate.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/AzureADOnlyAuthCreateOrUpdate.json
new file mode 100644
index 000000000000..9a22a93dc4cd
--- /dev/null
+++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/AzureADOnlyAuthCreateOrUpdate.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-4799",
+ "serverName": "sqlcrudtest-6440",
+ "authenticationName": "Default",
+ "api-version": "2020-02-02-preview",
+ "name": "Default",
+ "parameters": {
+ "properties": {
+ "azureADOnlyAuthentication": false
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-4799/providers/Microsoft.Sql/servers/sqlcrudtest-6440/azureadonlyauthentications/default",
+ "name": "Default",
+ "type": "Microsoft.Sql/servers/azureadonlyauthentications",
+ "properties": {
+ "azureADOnlyAuthentication": false
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-4799/providers/Microsoft.Sql/servers/sqlcrudtest-6440/azureadonlyauthentications/default",
+ "name": "Default",
+ "type": "Microsoft.Sql/servers/azureadonlyauthentications",
+ "properties": {
+ "azureADOnlyAuthentication": false
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/AzureADOnlyAuthDelete.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/AzureADOnlyAuthDelete.json
new file mode 100644
index 000000000000..88b5bf5a4fef
--- /dev/null
+++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/AzureADOnlyAuthDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-4799",
+ "serverName": "sqlcrudtest-6440",
+ "authenticationName": "Default",
+ "api-version": "2020-02-02-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/AzureADOnlyAuthGet.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/AzureADOnlyAuthGet.json
new file mode 100644
index 000000000000..1500749144cc
--- /dev/null
+++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/AzureADOnlyAuthGet.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-4799",
+ "serverName": "sqlcrudtest-6440",
+ "authenticationName": "Default",
+ "api-version": "2020-02-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-4799/providers/Microsoft.Sql/servers/sqlcrudtest-6440/azureadonlyauthentications/default",
+ "name": "Default",
+ "type": "Microsoft.Sql/servers/azureadonlyauthentications",
+ "properties": {
+ "azureADOnlyAuthentication": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/AzureADOnlyAuthList.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/AzureADOnlyAuthList.json
new file mode 100644
index 000000000000..21395a5084fa
--- /dev/null
+++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2020-02-02-preview/examples/AzureADOnlyAuthList.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "sqlcrudtest-4799",
+ "serverName": "sqlcrudtest-6440",
+ "authenticationName": "Default",
+ "api-version": "2020-02-02-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-4799/providers/Microsoft.Sql/servers/sqlcrudtest-6440/azureadonlyauthentications/default",
+ "name": "Default",
+ "type": "Microsoft.Sql/servers/azureadonlyauthentications",
+ "properties": {
+ "azureADOnlyAuthentication": true
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/sql/resource-manager/readme.md b/specification/sql/resource-manager/readme.md
index bb93264ff82f..52f33c520137 100644
--- a/specification/sql/resource-manager/readme.md
+++ b/specification/sql/resource-manager/readme.md
@@ -135,12 +135,13 @@ input-file:
- 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/ServerAzureADAdministrators.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
# Needed when there is more than one input file
override-info:
@@ -243,6 +244,7 @@ input-file:
- 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
# Needed when there is more than one input file
override-info:
@@ -334,6 +336,7 @@ input-file:
- 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
# Needed when there is more than one input file
override-info:
@@ -495,6 +498,7 @@ input-file:
- ./Microsoft.Sql/preview/2020-02-02-preview/ServerSecurityAlertPolicies.json
- ./Microsoft.Sql/preview/2020-02-02-preview/operations.json
- ./Microsoft.Sql/preview/2020-02-02-preview/managedDatabases.json
+- Microsoft.Sql/preview/2020-02-02-preview/ServerAzureADOnlyAuthentications.json
# Needed when there is more than one input file
override-info:
@@ -892,12 +896,13 @@ input-file:
- $(this-folder)/Microsoft.Sql/preview/2018-06-01-preview/ManagedInstanceLongTermRetentionPolicies.json
- $(this-folder)/Microsoft.Sql/preview/2019-06-01-preview/WorkloadGroups.json
- $(this-folder)/Microsoft.Sql/preview/2019-06-01-preview/WorkloadClassifiers.json
- - $(this-folder)/Microsoft.Sql/preview/2019-06-01-preview/managedDatabases.json
- - $(this-folder)/Microsoft.Sql/preview/2019-06-01-preview/ServerAzureADAdministrators.json
- $(this-folder)/Microsoft.Sql/preview/2019-06-01-preview/managedInstanceOperations.json
+ - $(this-folder)/Microsoft.Sql/preview/2019-06-01-preview/ServerAzureADAdministrators.json
- $(this-folder)/Microsoft.Sql/preview/2019-06-01-preview/syncGroups.json
- $(this-folder)/Microsoft.Sql/preview/2019-06-01-preview/syncMembers.json
+ - $(this-folder)/Microsoft.Sql/preview/2019-06-01-preview/FailoverManagedInstance.json
- $(this-folder)/Microsoft.Sql/preview/2020-02-02-preview/managedDatabases.json
+ - $(this-folder)/Microsoft.Sql/preview/2020-02-02-preview/ServerAzureADOnlyAuthentications.json
- $(this-folder)/Microsoft.Sql/stable/2014-04-01/capabilities.json
- $(this-folder)/Microsoft.Sql/stable/2014-04-01/databases.json
- $(this-folder)/Microsoft.Sql/stable/2014-04-01/elasticPools.json
@@ -915,6 +920,10 @@ input-file:
- $(this-folder)/Microsoft.Sql/stable/2014-04-01/restorePoints.json
- $(this-folder)/Microsoft.Sql/stable/2015-05-01/capabilities.json
- $(this-folder)/Microsoft.Sql/preview/2015-05-01-preview/blobAuditing.json
+ - $(this-folder)/./Microsoft.Sql/preview/2020-02-02-preview/DatabaseSecurityAlertPolicies.json
+ - $(this-folder)/./Microsoft.Sql/preview/2020-02-02-preview/ManagedServerSecurityAlertPolicies.json
+ - $(this-folder)/./Microsoft.Sql/preview/2020-02-02-preview/ServerSecurityAlertPolicies.json
+ - $(this-folder)/./Microsoft.Sql/preview/2020-02-02-preview/operations.json
- $(this-folder)/./Microsoft.Sql/preview/2020-02-02-preview/managedDatabases.json
- $(this-folder)/./Microsoft.Sql/preview/2019-06-01-preview/databases.json
- $(this-folder)/./Microsoft.Sql/preview/2019-06-01-preview/managedDatabases.json
@@ -926,6 +935,7 @@ input-file:
- $(this-folder)/./Microsoft.Sql/preview/2019-06-01-preview/ServerAzureADAdministrators.json
- $(this-folder)/./Microsoft.Sql/preview/2019-06-01-preview/syncGroups.json
- $(this-folder)/./Microsoft.Sql/preview/2019-06-01-preview/syncMembers.json
+ - $(this-folder)/./Microsoft.Sql/preview/2019-06-01-preview/FailoverManagedInstance.json
- $(this-folder)/./Microsoft.Sql/preview/2018-06-01-preview/DatabaseSecurityAlertPolicies.json
- $(this-folder)/./Microsoft.Sql/preview/2018-06-01-preview/managedDatabaseSensitivityLabels.json
- $(this-folder)/./Microsoft.Sql/preview/2018-06-01-preview/ManagedInstanceVulnerabilityAssessments.json
diff --git a/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/CreateExportJob.json b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/CreateExportJob.json
new file mode 100644
index 000000000000..45993841892d
--- /dev/null
+++ b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/CreateExportJob.json
@@ -0,0 +1,156 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "jobName": "myExportJob",
+ "body": {
+ "location": "West US",
+ "properties": {
+ "storageAccountId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ClassicStorage/storageAccounts/test",
+ "jobType": "Export",
+ "returnAddress": {
+ "recipientName": "Test",
+ "streetAddress1": "Street1",
+ "streetAddress2": "street2",
+ "city": "Redmond",
+ "stateOrProvince": "wa",
+ "postalCode": "98007",
+ "countryOrRegion": "USA",
+ "phone": "4250000000",
+ "email": "Test@contoso.com"
+ },
+ "returnShipping": {
+ "carrierName": "FedEx",
+ "carrierAccountNumber": "989ffff"
+ },
+ "diagnosticsPath": "waimportexport",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true,
+ "export": {
+ "blobList": {
+ "blobPathPrefix": [
+ "/"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "storageAccountId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ClassicStorage/storageAccounts/test",
+ "jobType": "Export",
+ "returnAddress": {
+ "recipientName": "Test",
+ "streetAddress1": "Street1",
+ "streetAddress2": "street2",
+ "city": "Redmond",
+ "stateOrProvince": "wa",
+ "postalCode": "98007",
+ "countryOrRegion": "USA",
+ "phone": "4250000000",
+ "email": "Test@contoso.com"
+ },
+ "returnShipping": {
+ "carrierName": "FedEx",
+ "carrierAccountNumber": "989ffff"
+ },
+ "shippingInformation": {
+ "recipientName": "Microsoft Azure Import/Export Service",
+ "streetAddress1": "2045 Lafayette Street",
+ "streetAddress2": "",
+ "city": "Santa Clara",
+ "stateOrProvince": "CA",
+ "postalCode": "95050",
+ "countryOrRegion": "USA",
+ "phone": "408 0000 0000",
+ "additionalInformation": ""
+ },
+ "diagnosticsPath": "waimportexport",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true,
+ "cancelRequested": false,
+ "state": "Creating",
+ "export": {
+ "blobList": {
+ "blobPathPrefix": [
+ "/"
+ ]
+ }
+ },
+ "provisioningState": "Succeeded",
+ "encryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ImportExport/jobs/myExportJob",
+ "name": "myExportJob",
+ "type": "Microsoft.ImportExport/jobs",
+ "location": "West US"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "storageAccountId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ClassicStorage/storageAccounts/test",
+ "jobType": "Export",
+ "returnAddress": {
+ "recipientName": "Test",
+ "streetAddress1": "Street1",
+ "streetAddress2": "street2",
+ "city": "Redmond",
+ "stateOrProvince": "wa",
+ "postalCode": "98007",
+ "countryOrRegion": "USA",
+ "phone": "4250000000",
+ "email": "Test@contoso.com"
+ },
+ "returnShipping": {
+ "carrierName": "FedEx",
+ "carrierAccountNumber": "989ffff"
+ },
+ "shippingInformation": {
+ "recipientName": "Microsoft Azure Import/Export Service",
+ "streetAddress1": "2045 Lafayette Street",
+ "streetAddress2": "",
+ "city": "Santa Clara",
+ "stateOrProvince": "CA",
+ "postalCode": "95050",
+ "countryOrRegion": "USA",
+ "phone": "408 0000 0000",
+ "additionalInformation": ""
+ },
+ "diagnosticsPath": "waimportexport",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true,
+ "cancelRequested": false,
+ "state": "Creating",
+ "export": {
+ "blobList": {
+ "blobPathPrefix": [
+ "/"
+ ]
+ }
+ },
+ "provisioningState": "Succeeded",
+ "encryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ImportExport/jobs/myExportJob",
+ "name": "myExportJob",
+ "type": "Microsoft.ImportExport/jobs",
+ "location": "West US"
+ }
+ }
+ }
+}
diff --git a/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/CreateJob.json b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/CreateJob.json
new file mode 100644
index 000000000000..51c70223bd5b
--- /dev/null
+++ b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/CreateJob.json
@@ -0,0 +1,162 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "jobName": "myJob",
+ "body": {
+ "location": "West US",
+ "properties": {
+ "storageAccountId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ClassicStorage/storageAccounts/test",
+ "jobType": "Import",
+ "returnAddress": {
+ "recipientName": "Test",
+ "streetAddress1": "Street1",
+ "streetAddress2": "street2",
+ "city": "Redmond",
+ "stateOrProvince": "wa",
+ "postalCode": "98007",
+ "countryOrRegion": "USA",
+ "phone": "4250000000",
+ "email": "Test@contoso.com"
+ },
+ "returnShipping": {
+ "carrierName": "FedEx",
+ "carrierAccountNumber": "989ffff"
+ },
+ "diagnosticsPath": "waimportexport",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true,
+ "driveList": [
+ {
+ "driveId": "9CA995BB",
+ "bitLockerKey": "238810-662376-448998-450120-652806-203390-606320-483076",
+ "manifestFile": "\\8a0c23f7-14b7-470a-9633-fcd46590a1bc.manifest",
+ "manifestHash": "4228EC5D8E048CB9B515338C789314BE8D0B2FDBC7C7A0308E1C826242CDE74E",
+ "driveHeaderHash": "0:1048576:FB6B6ED500D49DA6E0D723C98D42C657F2881CC13357C28DCECA6A524F1292501571A321238540E621AB5BD9C9A32637615919A75593E6CB5C1515DAE341CABF;135266304:143360:C957A189AFC38C4E80731252301EB91427CE55E61448FA3C73C6FDDE70ABBC197947EC8D0249A2C639BB10B95957D5820A4BE8DFBBF76FFFA688AE5CE0D42EC3"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "storageAccountId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ClassicStorage/storageAccounts/test",
+ "jobType": "Import",
+ "returnAddress": {
+ "recipientName": "Test",
+ "streetAddress1": "Street1",
+ "streetAddress2": "street2",
+ "city": "Redmond",
+ "stateOrProvince": "wa",
+ "postalCode": "98007",
+ "countryOrRegion": "USA",
+ "phone": "4250000000",
+ "email": "Test@contoso.com"
+ },
+ "returnShipping": {
+ "carrierName": "FedEx",
+ "carrierAccountNumber": "989ffff"
+ },
+ "shippingInformation": {
+ "recipientName": "Microsoft Azure Import/Export Service",
+ "streetAddress1": "2045 Lafayette Street",
+ "streetAddress2": "",
+ "city": "Santa Clara",
+ "stateOrProvince": "CA",
+ "postalCode": "95050",
+ "countryOrRegion": "USA",
+ "phone": "408 0000 0000",
+ "additionalInformation": ""
+ },
+ "diagnosticsPath": "waimportexport",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true,
+ "cancelRequested": false,
+ "state": "Creating",
+ "driveList": [
+ {
+ "driveId": "9CA995BB",
+ "manifestFile": "\\8a0c23f7-14b7-470a-9633-fcd46590a1bc.manifest",
+ "manifestHash": "4228EC5D8E048CB9B515338C789314BE8D0B2FDBC7C7A0308E1C826242CDE74E",
+ "driveHeaderHash": "0:1048576:FB6B6ED500D49DA6E0D723C98D42C657F2881CC13357C28DCECA6A524F1292501571A321238540E621AB5BD9C9A32637615919A75593E6CB5C1515DAE341CABF;135266304:143360:C957A189AFC38C4E80731252301EB91427CE55E61448FA3C73C6FDDE70ABBC197947EC8D0249A2C639BB10B95957D5820A4BE8DFBBF76FFFA688AE5CE0D42EC3",
+ "state": "Specified"
+ }
+ ],
+ "provisioningState": "Succeeded",
+ "encryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ImportExport/jobs/myJob",
+ "name": "myJob",
+ "type": "Microsoft.ImportExport/jobs",
+ "location": "West US"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "storageAccountId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ClassicStorage/storageAccounts/test",
+ "jobType": "Import",
+ "returnAddress": {
+ "recipientName": "Test",
+ "streetAddress1": "Street1",
+ "streetAddress2": "street2",
+ "city": "Redmond",
+ "stateOrProvince": "wa",
+ "postalCode": "98007",
+ "countryOrRegion": "USA",
+ "phone": "4250000000",
+ "email": "Test@contoso.com"
+ },
+ "returnShipping": {
+ "carrierName": "FedEx",
+ "carrierAccountNumber": "989ffff"
+ },
+ "shippingInformation": {
+ "recipientName": "Microsoft Azure Import/Export Service",
+ "streetAddress1": "2045 Lafayette Street",
+ "streetAddress2": "",
+ "city": "Santa Clara",
+ "stateOrProvince": "CA",
+ "postalCode": "95050",
+ "countryOrRegion": "USA",
+ "phone": "408 0000 0000",
+ "additionalInformation": ""
+ },
+ "diagnosticsPath": "waimportexport",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true,
+ "cancelRequested": false,
+ "state": "Creating",
+ "driveList": [
+ {
+ "driveId": "9CA995BB",
+ "manifestFile": "\\8a0c23f7-14b7-470a-9633-fcd46590a1bc.manifest",
+ "manifestHash": "4228EC5D8E048CB9B515338C789314BE8D0B2FDBC7C7A0308E1C826242CDE74E",
+ "driveHeaderHash": "0:1048576:FB6B6ED500D49DA6E0D723C98D42C657F2881CC13357C28DCECA6A524F1292501571A321238540E621AB5BD9C9A32637615919A75593E6CB5C1515DAE341CABF;135266304:143360:C957A189AFC38C4E80731252301EB91427CE55E61448FA3C73C6FDDE70ABBC197947EC8D0249A2C639BB10B95957D5820A4BE8DFBBF76FFFA688AE5CE0D42EC3",
+ "state": "Specified"
+ }
+ ],
+ "provisioningState": "Succeeded",
+ "encryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ImportExport/jobs/myJob",
+ "name": "myJob",
+ "type": "Microsoft.ImportExport/jobs",
+ "location": "West US"
+ }
+ }
+ }
+}
diff --git a/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/DeleteJob.json b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/DeleteJob.json
new file mode 100644
index 000000000000..d69a85e6b1f6
--- /dev/null
+++ b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/DeleteJob.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "jobName": "myJob"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/GetExportJob.json b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/GetExportJob.json
new file mode 100644
index 000000000000..5325f74af9c1
--- /dev/null
+++ b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/GetExportJob.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "jobName": "myJob"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "storageAccountId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ClassicStorage/storageAccounts/test",
+ "jobType": "Export",
+ "returnAddress": {
+ "recipientName": "Test",
+ "streetAddress1": "Street1",
+ "streetAddress2": "street2",
+ "city": "Redmond",
+ "stateOrProvince": "wa",
+ "postalCode": "98007",
+ "countryOrRegion": "USA",
+ "phone": "4250000000",
+ "email": "Test@contoso.com"
+ },
+ "returnShipping": {
+ "carrierName": "FedEx",
+ "carrierAccountNumber": "989ffff"
+ },
+ "shippingInformation": {
+ "recipientName": "Microsoft Azure Import/Export Service",
+ "streetAddress1": "2045 Lafayette Street",
+ "streetAddress2": "",
+ "city": "Santa Clara",
+ "stateOrProvince": "CA",
+ "postalCode": "95050",
+ "countryOrRegion": "USA",
+ "phone": "408 0000 0000",
+ "additionalInformation": ""
+ },
+ "diagnosticsPath": "waimportexport",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true,
+ "cancelRequested": false,
+ "state": "Creating",
+ "driveList": [],
+ "export": {
+ "blobList": {
+ "blobPathPrefix": [
+ "/"
+ ]
+ }
+ },
+ "provisioningState": "Succeeded",
+ "encryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ImportExport/jobs/test",
+ "name": "myJob",
+ "type": "Microsoft.ImportExport/jobs",
+ "location": "West US"
+ }
+ }
+ }
+}
diff --git a/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/GetJob.json b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/GetJob.json
new file mode 100644
index 000000000000..3cce5366748c
--- /dev/null
+++ b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/GetJob.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "jobName": "myJob"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "storageAccountId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ClassicStorage/storageAccounts/test",
+ "jobType": "Import",
+ "returnAddress": {
+ "recipientName": "Test",
+ "streetAddress1": "Street1",
+ "streetAddress2": "street2",
+ "city": "Redmond",
+ "stateOrProvince": "wa",
+ "postalCode": "98007",
+ "countryOrRegion": "USA",
+ "phone": "4250000000",
+ "email": "Test@contoso.com"
+ },
+ "returnShipping": {
+ "carrierName": "FedEx",
+ "carrierAccountNumber": "989ffff"
+ },
+ "shippingInformation": {
+ "recipientName": "Microsoft Azure Import/Export Service",
+ "streetAddress1": "2045 Lafayette Street",
+ "streetAddress2": "",
+ "city": "Santa Clara",
+ "stateOrProvince": "CA",
+ "postalCode": "95050",
+ "countryOrRegion": "USA",
+ "phone": "408 0000 0000",
+ "additionalInformation": ""
+ },
+ "diagnosticsPath": "waimportexport",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true,
+ "cancelRequested": false,
+ "state": "Creating",
+ "driveList": [
+ {
+ "driveId": "9CA995BB",
+ "manifestFile": "\\DriveManifest.xml",
+ "manifestHash": "109B21108597EF36D5785F08303F3638",
+ "driveHeaderHash": "",
+ "state": "Specified"
+ }
+ ],
+ "provisioningState": "Succeeded",
+ "encryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ImportExport/jobs/test",
+ "name": "myJob",
+ "type": "Microsoft.ImportExport/jobs",
+ "location": "West US"
+ }
+ }
+ }
+}
diff --git a/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/GetLocation.json b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/GetLocation.json
new file mode 100644
index 000000000000..bc47468af2d1
--- /dev/null
+++ b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/GetLocation.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01",
+ "locationName": "West US"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "recipientName": "Microsoft Azure Import/Export Service",
+ "streetAddress1": "2045 Lafayette Street",
+ "streetAddress2": "",
+ "city": "Santa Clara",
+ "stateOrProvince": "CA",
+ "postalCode": "95050",
+ "countryOrRegion": "USA",
+ "phone": "408 352 7600",
+ "supportedCarriers": [
+ "FedEx"
+ ],
+ "alternateLocations": [
+ "/providers/Microsoft.ImportExport/locations/westus"
+ ]
+ },
+ "id": "/providers/Microsoft.ImportExport/locations/westus",
+ "name": "West US",
+ "type": "Microsoft.ImportExport/locations"
+ }
+ }
+ }
+}
diff --git a/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListBitLockerKeys.json b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListBitLockerKeys.json
new file mode 100644
index 000000000000..3b3e8b3ff686
--- /dev/null
+++ b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListBitLockerKeys.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "jobName": "myJob"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "driveId": "9CA995BB",
+ "bitLockerKey": "000000-000000-111111-222222-333333-444444-555555-666666"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListJobsInResourceGroup.json b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListJobsInResourceGroup.json
new file mode 100644
index 000000000000..ceb96820992a
--- /dev/null
+++ b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListJobsInResourceGroup.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "storageAccountId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ClassicStorage/storageAccounts/xtprodtestwu",
+ "jobType": "Import",
+ "returnAddress": {
+ "recipientName": "La",
+ "streetAddress1": "Street1",
+ "streetAddress2": "street2",
+ "city": "Redmond",
+ "stateOrProvince": "wa",
+ "postalCode": "98007",
+ "countryOrRegion": "USA",
+ "phone": "4250000000",
+ "email": "test@contoso.com"
+ },
+ "returnShipping": {
+ "carrierName": "FedEx",
+ "carrierAccountNumber": "989ffff"
+ },
+ "shippingInformation": {
+ "recipientName": "Microsoft Azure Import/Export Service",
+ "streetAddress1": "2045 Lafayette Street",
+ "streetAddress2": "",
+ "city": "Santa Clara",
+ "stateOrProvince": "CA",
+ "postalCode": "95050",
+ "countryOrRegion": "USA",
+ "phone": "408 352 7600",
+ "additionalInformation": ""
+ },
+ "deliveryPackage": {
+ "carrierName": "FedEx",
+ "trackingNumber": "787895108176",
+ "driveCount": 1,
+ "shipDate": "9/29/2017 10:28:35 PM"
+ },
+ "diagnosticsPath": "waimportexport",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true,
+ "cancelRequested": false,
+ "state": "Received",
+ "provisioningState": "Succeeded",
+ "encryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ImportExport/jobs/test-by1-ssd-2",
+ "name": "test-by1-ssd-2",
+ "type": "Microsoft.ImportExport/jobs",
+ "location": "West US"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListJobsInSubscription.json b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListJobsInSubscription.json
new file mode 100644
index 000000000000..eacade5d32d9
--- /dev/null
+++ b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListJobsInSubscription.json
@@ -0,0 +1,139 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "storageAccountId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/xtprodtestarmos2",
+ "jobType": "Import",
+ "returnAddress": {
+ "recipientName": "La",
+ "streetAddress1": "Street1",
+ "streetAddress2": "street2",
+ "city": "city",
+ "stateOrProvince": "wa",
+ "postalCode": "98007",
+ "countryOrRegion": "USA",
+ "phone": "425000000",
+ "email": "test@contoso.com"
+ },
+ "returnShipping": {
+ "carrierName": "FedEx",
+ "carrierAccountNumber": "989ffff"
+ },
+ "shippingInformation": {
+ "recipientName": "Windows Azure Import Export Service",
+ "streetAddress1": "Boydton 1 / BLDG # 1 101 Herbert Drive",
+ "streetAddress2": "",
+ "city": "Boydton",
+ "stateOrProvince": "VA",
+ "postalCode": "23917",
+ "countryOrRegion": "USA",
+ "phone": "+1-434-738-9443",
+ "additionalInformation": ""
+ },
+ "deliveryPackage": {
+ "carrierName": "FedEx",
+ "trackingNumber": "992016102507",
+ "driveCount": 1,
+ "shipDate": "8/11/2017 9:05:00 PM"
+ },
+ "diagnosticsPath": "waimportexport",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true,
+ "cancelRequested": false,
+ "state": "Received",
+ "driveList": [
+ {
+ "driveId": "7PHR882C",
+ "manifestFile": "\\DriveManifest.xml",
+ "manifestHash": "E5D632DB047C74B3B17C8F3359950ADB",
+ "state": "Received"
+ }
+ ],
+ "provisioningState": "Succeeded",
+ "encryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testrg/providers/Microsoft.ImportExport/jobs/test-bn1-import-cpu100-01",
+ "name": "test-bn1-import-cpu100-01",
+ "type": "Microsoft.ImportExport/jobs",
+ "location": "East US 2"
+ },
+ {
+ "properties": {
+ "storageAccountId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/xtprodtestarmos2",
+ "jobType": "Import",
+ "returnAddress": {
+ "recipientName": "La",
+ "streetAddress1": "Street1",
+ "streetAddress2": "street2",
+ "city": "city",
+ "stateOrProvince": "wa",
+ "postalCode": "98007",
+ "countryOrRegion": "USA",
+ "phone": "4256150991",
+ "email": "test@contoso.com"
+ },
+ "shippingInformation": {
+ "recipientName": "Windows Azure Import Export Service",
+ "streetAddress1": "Boydton 1 / BLDG # 1 101 Herbert Drive",
+ "streetAddress2": "",
+ "city": "Boydton",
+ "stateOrProvince": "VA",
+ "postalCode": "23917",
+ "countryOrRegion": "USA",
+ "phone": "+1-434-738-9443",
+ "additionalInformation": ""
+ },
+ "deliveryPackage": {
+ "carrierName": "FedEx",
+ "trackingNumber": "992016102508",
+ "driveCount": 1,
+ "shipDate": "8/13/2017 7:32:23 PM"
+ },
+ "diagnosticsPath": "waimportexport",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true,
+ "cancelRequested": false,
+ "state": "Transferring",
+ "percentComplete": 6,
+ "driveList": [
+ {
+ "driveId": "KV6H86XP",
+ "manifestFile": "\\DriveManifest.xml",
+ "manifestHash": "F6A488A65AF0CCA7D050B7F9F43A197C",
+ "state": "CompletedMoreInfo",
+ "copyStatus": "InProgress",
+ "verboseLogUri": "https://foo.blob.core.windows.net/waimportexport/waies/test-bn1-import-cpu100-02_KV6H86XP_20170813-194618-350_verbose.xml",
+ "errorLogUri": "https://foo.blob.core.windows.net/waimportexport/waies/test-bn1-import-cpu100-02_KV6H86XP_20170813-194620-021_error.xml",
+ "manifestUri": "https://foo.blob.core.windows.net/waimportexport/waies/test-bn1-import-cpu100-02_KV6H86XP_20170813-194620-574_manifest.xml"
+ }
+ ],
+ "provisioningState": "Succeeded",
+ "encryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testrg/providers/Microsoft.ImportExport/jobs/test-bn1-import-cpu100-02",
+ "name": "test-bn1-import-cpu100-02",
+ "type": "Microsoft.ImportExport/jobs",
+ "location": "East US 2"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListLocations.json b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListLocations.json
new file mode 100644
index 000000000000..ac29583c03b1
--- /dev/null
+++ b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListLocations.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "recipientName": "Windows Azure Import/Export Service",
+ "streetAddress1": "Customer-A c/o NEXTDC Ltd, Delivery code ABCDEFG, 4 Eden Park Drive",
+ "streetAddress2": "",
+ "city": "Macquarie Park",
+ "stateOrProvince": "NSW",
+ "postalCode": "2113",
+ "countryOrRegion": "Australia",
+ "phone": "612 0000 0000",
+ "supportedCarriers": [
+ "DHL"
+ ],
+ "alternateLocations": [
+ "/providers/Microsoft.ImportExport/locations/australiaeast"
+ ]
+ },
+ "id": "/providers/Microsoft.ImportExport/locations/australiaeast",
+ "name": "Australia East",
+ "type": "Microsoft.ImportExport/locations"
+ },
+ {
+ "properties": {
+ "recipientName": "Microsoft Azure Import/Export Service",
+ "streetAddress1": "Microsoft, c/o NEXTDC Ltd, Delivery code ABCDEFG, 826-830 Lorimer St, Port",
+ "streetAddress2": "",
+ "city": "Melbourne",
+ "stateOrProvince": "Melbourne",
+ "postalCode": "3207",
+ "countryOrRegion": "Australia",
+ "phone": "61 0 0000 0000",
+ "supportedCarriers": [
+ "DHL"
+ ],
+ "alternateLocations": [
+ "/providers/Microsoft.ImportExport/locations/australiasoutheast"
+ ]
+ },
+ "id": "/providers/Microsoft.ImportExport/locations/australiasoutheast",
+ "name": "Australia Southeast",
+ "type": "Microsoft.ImportExport/locations"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListOperations.json b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListOperations.json
new file mode 100644
index 000000000000..002904d9a2f6
--- /dev/null
+++ b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/ListOperations.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.ImportExport/locations/read",
+ "display": {
+ "provider": "Microsoft Import/Export",
+ "resource": "Locations",
+ "operation": "Get or List Locations",
+ "description": "Gets the properties for the specified location or returns the list of locations."
+ }
+ },
+ {
+ "name": "Microsoft.ImportExport/jobs/write",
+ "display": {
+ "provider": "Microsoft Import/Export",
+ "resource": "Jobs",
+ "operation": "Create or Update Job",
+ "description": "Creates a job with the specified parameters or update the properties or tags for the specified job."
+ }
+ },
+ {
+ "name": "Microsoft.ImportExport/jobs/read",
+ "display": {
+ "provider": "Microsoft Import/Export",
+ "resource": "Jobs",
+ "operation": "Get or List Jobs",
+ "description": "Gets the properties for the specified job or returns the list of jobs."
+ }
+ },
+ {
+ "name": "Microsoft.ImportExport/jobs/listBitLockerKeys/action",
+ "display": {
+ "provider": "Microsoft Import/Export",
+ "resource": "Jobs",
+ "operation": "List BitLocker Keys",
+ "description": "Gets the BitLocker keys for the specified job."
+ }
+ },
+ {
+ "name": "Microsoft.ImportExport/jobs/delete",
+ "display": {
+ "provider": "Microsoft Import/Export",
+ "resource": "Jobs",
+ "operation": "Delete Job",
+ "description": "Deletes an existing job."
+ }
+ },
+ {
+ "name": "Microsoft.ImportExport/register/action",
+ "display": {
+ "provider": "Microsoft Import/Export",
+ "resource": "Import/Export Resource Provider",
+ "operation": "Registers the Import/Export Resource Provider",
+ "description": "Registers the subscription for the import/export resource provider and enables the creation of import/export jobs."
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/UpdateExportJob.json b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/UpdateExportJob.json
new file mode 100644
index 000000000000..54cddee5bc00
--- /dev/null
+++ b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/UpdateExportJob.json
@@ -0,0 +1,74 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "jobName": "myExportJob",
+ "body": {
+ "properties": {
+ "state": "",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "storageAccountId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ClassicStorage/storageAccounts/test",
+ "jobType": "Export",
+ "returnAddress": {
+ "recipientName": "Test",
+ "streetAddress1": "Street1",
+ "streetAddress2": "street2",
+ "city": "Redmond",
+ "stateOrProvince": "wa",
+ "postalCode": "98007",
+ "countryOrRegion": "USA",
+ "phone": "4250000000",
+ "email": "Test@contoso.com"
+ },
+ "returnShipping": {
+ "carrierName": "FedEx",
+ "carrierAccountNumber": "989ffff"
+ },
+ "shippingInformation": {
+ "recipientName": "Microsoft Azure Import/Export Service",
+ "streetAddress1": "2045 Lafayette Street",
+ "streetAddress2": "",
+ "city": "Santa Clara",
+ "stateOrProvince": "CA",
+ "postalCode": "95050",
+ "countryOrRegion": "USA",
+ "phone": "408 352 7600",
+ "additionalInformation": ""
+ },
+ "diagnosticsPath": "waimportexport",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true,
+ "cancelRequested": false,
+ "state": "Creating",
+ "export": {
+ "blobList": {
+ "blobPathPrefix": [
+ "/"
+ ]
+ }
+ },
+ "provisioningState": "Succeeded",
+ "encryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ImportExport/jobs/myExportJob",
+ "name": "myExportJob",
+ "type": "Microsoft.ImportExport/jobs",
+ "location": "West US"
+ }
+ }
+ }
+}
diff --git a/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/UpdateJob.json b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/UpdateJob.json
new file mode 100644
index 000000000000..df0e42281026
--- /dev/null
+++ b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/examples/UpdateJob.json
@@ -0,0 +1,76 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "jobName": "myJob",
+ "body": {
+ "properties": {
+ "state": "",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "storageAccountId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ClassicStorage/storageAccounts/test",
+ "jobType": "Import",
+ "returnAddress": {
+ "recipientName": "Test",
+ "streetAddress1": "Street1",
+ "streetAddress2": "street2",
+ "city": "Redmond",
+ "stateOrProvince": "wa",
+ "postalCode": "98007",
+ "countryOrRegion": "USA",
+ "phone": "4250000000",
+ "email": "Test@contoso.com"
+ },
+ "returnShipping": {
+ "carrierName": "FedEx",
+ "carrierAccountNumber": "989ffff"
+ },
+ "shippingInformation": {
+ "recipientName": "Microsoft Azure Import/Export Service",
+ "streetAddress1": "2045 Lafayette Street",
+ "streetAddress2": "",
+ "city": "Santa Clara",
+ "stateOrProvince": "CA",
+ "postalCode": "95050",
+ "countryOrRegion": "USA",
+ "phone": "408 352 7600",
+ "additionalInformation": ""
+ },
+ "diagnosticsPath": "waimportexport",
+ "logLevel": "Verbose",
+ "backupDriveManifest": true,
+ "cancelRequested": false,
+ "state": "Creating",
+ "driveList": [
+ {
+ "driveId": "9CA995BB",
+ "manifestFile": "\\8a0c23f7-14b7-470a-9633-fcd46590a1bc.manifest",
+ "manifestHash": "4228EC5D8E048CB9B515338C789314BE8D0B2FDBC7C7A0308E1C826242CDE74E",
+ "driveHeaderHash": "0:1048576:FB6B6ED500D49DA6E0D723C98D42C657F2881CC13357C28DCECA6A524F1292501571A321238540E621AB5BD9C9A32637615919A75593E6CB5C1515DAE341CABF;135266304:143360:C957A189AFC38C4E80731252301EB91427CE55E61448FA3C73C6FDDE70ABBC197947EC8D0249A2C639BB10B95957D5820A4BE8DFBBF76FFFA688AE5CE0D42EC3",
+ "state": "Specified"
+ }
+ ],
+ "provisioningState": "Succeeded",
+ "encryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ImportExport/jobs/myJob",
+ "name": "myJob",
+ "type": "Microsoft.ImportExport/jobs",
+ "location": "West US"
+ }
+ }
+ }
+}
diff --git a/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/storageimportexport.json b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/storageimportexport.json
new file mode 100644
index 000000000000..1fec719ac62a
--- /dev/null
+++ b/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2020-08-01/storageimportexport.json
@@ -0,0 +1,1313 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "StorageImportExport",
+ "description": "The Storage Import/Export Resource Provider API.",
+ "version": "2020-08-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.ImportExport/locations": {
+ "get": {
+ "tags": [
+ "StorageImportExport"
+ ],
+ "operationId": "Locations_List",
+ "description": "Returns a list of locations to which you can ship the disks associated with an import or export job. A location is a Microsoft data center region.",
+ "x-ms-examples": {
+ "List locations": {
+ "$ref": "examples/ListLocations.json"
+ }
+ },
+ "externalDocs": {
+ "url": ""
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/Accept-Language"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/LocationsResponse"
+ }
+ },
+ "default": {
+ "description": "An error occurs.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/providers/Microsoft.ImportExport/locations/{locationName}": {
+ "get": {
+ "tags": [
+ "StorageImportExport"
+ ],
+ "operationId": "Locations_Get",
+ "description": "Returns the details about a location to which you can ship the disks associated with an import or export job. A location is an Azure region.",
+ "x-ms-examples": {
+ "Get locations": {
+ "$ref": "examples/GetLocation.json"
+ }
+ },
+ "externalDocs": {
+ "url": ""
+ },
+ "parameters": [
+ {
+ "name": "locationName",
+ "in": "path",
+ "description": "The name of the location. For example, West US or westus.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/Accept-Language"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Location"
+ }
+ },
+ "default": {
+ "description": "An error occurs.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ImportExport/jobs": {
+ "get": {
+ "tags": [
+ "StorageImportExport"
+ ],
+ "operationId": "Jobs_ListBySubscription",
+ "description": "Returns all active and completed jobs in a subscription.",
+ "x-ms-examples": {
+ "List jobs in a subscription": {
+ "$ref": "examples/ListJobsInSubscription.json"
+ }
+ },
+ "externalDocs": {
+ "url": ""
+ },
+ "parameters": [
+ {
+ "name": "$top",
+ "in": "query",
+ "description": "An integer value that specifies how many jobs at most should be returned. The value cannot exceed 100.",
+ "required": false,
+ "type": "integer"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "description": "Can be used to restrict the results to certain conditions.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/Accept-Language"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ListJobsResponse"
+ }
+ },
+ "default": {
+ "description": "An error occurs.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ImportExport/jobs": {
+ "get": {
+ "tags": [
+ "StorageImportExport"
+ ],
+ "operationId": "Jobs_ListByResourceGroup",
+ "description": "Returns all active and completed jobs in a resource group.",
+ "x-ms-examples": {
+ "List jobs in a resource group": {
+ "$ref": "examples/ListJobsInResourceGroup.json"
+ }
+ },
+ "externalDocs": {
+ "url": ""
+ },
+ "parameters": [
+ {
+ "name": "$top",
+ "in": "query",
+ "description": "An integer value that specifies how many jobs at most should be returned. The value cannot exceed 100.",
+ "required": false,
+ "type": "integer"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "description": "Can be used to restrict the results to certain conditions.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/Accept-Language"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ListJobsResponse"
+ }
+ },
+ "default": {
+ "description": "An error occurs.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ImportExport/jobs/{jobName}": {
+ "get": {
+ "tags": [
+ "StorageImportExport"
+ ],
+ "operationId": "Jobs_Get",
+ "description": "Gets information about an existing job.",
+ "x-ms-examples": {
+ "Get import job": {
+ "$ref": "examples/GetJob.json"
+ },
+ "Get export job": {
+ "$ref": "examples/GetExportJob.json"
+ }
+ },
+ "externalDocs": {
+ "url": ""
+ },
+ "parameters": [
+ {
+ "name": "jobName",
+ "in": "path",
+ "description": "The name of the import/export job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/Accept-Language"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/JobResponse"
+ }
+ },
+ "default": {
+ "description": "An error occurs.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "StorageImportExport"
+ ],
+ "operationId": "Jobs_Update",
+ "description": "Updates specific properties of a job. You can call this operation to notify the Import/Export service that the hard drives comprising the import or export job have been shipped to the Microsoft data center. It can also be used to cancel an existing job.",
+ "x-ms-examples": {
+ "Update import job": {
+ "$ref": "examples/UpdateJob.json"
+ },
+ "Update export job": {
+ "$ref": "examples/UpdateExportJob.json"
+ }
+ },
+ "externalDocs": {
+ "url": ""
+ },
+ "parameters": [
+ {
+ "name": "jobName",
+ "in": "path",
+ "description": "The name of the import/export job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/Accept-Language"
+ },
+ {
+ "name": "body",
+ "in": "body",
+ "required": true,
+ "description": "The parameters to update in the job",
+ "schema": {
+ "$ref": "#/definitions/UpdateJobParameters"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/JobResponse"
+ }
+ },
+ "default": {
+ "description": "An error occurs.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "StorageImportExport"
+ ],
+ "operationId": "Jobs_Create",
+ "description": "Creates a new job or updates an existing job in the specified subscription.",
+ "x-ms-examples": {
+ "Create import job": {
+ "$ref": "examples/CreateJob.json"
+ },
+ "Create export job": {
+ "$ref": "examples/CreateExportJob.json"
+ }
+ },
+ "externalDocs": {
+ "url": ""
+ },
+ "parameters": [
+ {
+ "name": "jobName",
+ "in": "path",
+ "description": "The name of the import/export job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/Accept-Language"
+ },
+ {
+ "$ref": "#/parameters/x-ms-client-tenant-id"
+ },
+ {
+ "name": "body",
+ "in": "body",
+ "description": "The parameters used for creating the job",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PutJobParameters"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/JobResponse"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/JobResponse"
+ }
+ },
+ "default": {
+ "description": "An error occurs.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "StorageImportExport"
+ ],
+ "operationId": "Jobs_Delete",
+ "description": "Deletes an existing job. Only jobs in the Creating or Completed states can be deleted.",
+ "x-ms-examples": {
+ "Delete job": {
+ "$ref": "examples/DeleteJob.json"
+ }
+ },
+ "externalDocs": {
+ "url": ""
+ },
+ "parameters": [
+ {
+ "name": "jobName",
+ "in": "path",
+ "description": "The name of the import/export job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/Accept-Language"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "default": {
+ "description": "An error occurs.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ImportExport/jobs/{jobName}/listBitLockerKeys": {
+ "post": {
+ "tags": [
+ "StorageImportExport"
+ ],
+ "operationId": "BitLockerKeys_List",
+ "description": "Returns the BitLocker Keys for all drives in the specified job.",
+ "x-ms-examples": {
+ "List BitLocker Keys for drives in a job": {
+ "$ref": "examples/ListBitLockerKeys.json"
+ }
+ },
+ "externalDocs": {
+ "url": ""
+ },
+ "parameters": [
+ {
+ "name": "jobName",
+ "in": "path",
+ "description": "The name of the import/export job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/Accept-Language"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GetBitLockerKeysResponse"
+ }
+ },
+ "default": {
+ "description": "An error occurs.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/providers/Microsoft.ImportExport/operations": {
+ "get": {
+ "tags": [
+ "StorageImportExport"
+ ],
+ "operationId": "Operations_List",
+ "description": "Returns the list of operations supported by the import/export resource provider.",
+ "x-ms-examples": {
+ "List available operations": {
+ "$ref": "examples/ListOperations.json"
+ }
+ },
+ "externalDocs": {
+ "url": ""
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/Accept-Language"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ListOperationsResponse"
+ }
+ },
+ "default": {
+ "description": "An error occurs.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ErrorResponse": {
+ "description": "Response when errors occurred",
+ "properties": {
+ "error": {
+ "x-ms-client-flatten": true,
+ "description": "Describes the error information.",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Provides information about the error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Provides information about the error message."
+ },
+ "target": {
+ "type": "string",
+ "description": "Provides information about the error target."
+ },
+ "details": {
+ "type": "array",
+ "description": "Describes the error details if present.",
+ "items": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Provides information about the error code."
+ },
+ "target": {
+ "type": "string",
+ "description": "Provides information about the error target."
+ },
+ "message": {
+ "type": "string",
+ "description": "Provides information about the error message."
+ }
+ }
+ }
+ },
+ "innererror": {
+ "type": "object",
+ "description": "Inner error object if present."
+ }
+ }
+ }
+ }
+ },
+ "PutJobParameters": {
+ "description": "Put Job parameters",
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Specifies the supported Azure location where the job should be created"
+ },
+ "tags": {
+ "type": "object",
+ "description": "Specifies the tags that will be assigned to the job."
+ },
+ "properties": {
+ "$ref": "#/definitions/JobDetails",
+ "description": "Specifies the job properties"
+ }
+ }
+ },
+ "JobDetails": {
+ "description": "Specifies the job properties",
+ "properties": {
+ "storageAccountId": {
+ "type": "string",
+ "description": "The resource identifier of the storage account where data will be imported to or exported from."
+ },
+ "jobType": {
+ "type": "string",
+ "description": "The type of job"
+ },
+ "returnAddress": {
+ "description": "Specifies the return address information for the job. ",
+ "$ref": "#/definitions/ReturnAddress"
+ },
+ "returnShipping": {
+ "description": "Specifies the return carrier and customer's account with the carrier. ",
+ "$ref": "#/definitions/ReturnShipping"
+ },
+ "shippingInformation": {
+ "description": "Contains information about the Microsoft datacenter to which the drives should be shipped. ",
+ "$ref": "#/definitions/ShippingInformation"
+ },
+ "deliveryPackage": {
+ "description": "Contains information about the package being shipped by the customer to the Microsoft data center. ",
+ "$ref": "#/definitions/PackageInformation"
+ },
+ "returnPackage": {
+ "description": "Contains information about the package being shipped from the Microsoft data center to the customer to return the drives. The format is the same as the deliveryPackage property above. This property is not included if the drives have not yet been returned. ",
+ "$ref": "#/definitions/PackageInformation"
+ },
+ "diagnosticsPath": {
+ "type": "string",
+ "description": "The virtual blob directory to which the copy logs and backups of drive manifest files (if enabled) will be stored."
+ },
+ "logLevel": {
+ "type": "string",
+ "description": "Default value is Error. Indicates whether error logging or verbose logging will be enabled."
+ },
+ "backupDriveManifest": {
+ "type": "boolean",
+ "description": "Default value is false. Indicates whether the manifest files on the drives should be copied to block blobs."
+ },
+ "state": {
+ "type": "string",
+ "description": "Current state of the job."
+ },
+ "cancelRequested": {
+ "type": "boolean",
+ "description": "Indicates whether a request has been submitted to cancel the job."
+ },
+ "percentComplete": {
+ "type": "integer",
+ "description": "Overall percentage completed for the job."
+ },
+ "incompleteBlobListUri": {
+ "type": "string",
+ "description": "A blob path that points to a block blob containing a list of blob names that were not exported due to insufficient drive space. If all blobs were exported successfully, then this element is not included in the response."
+ },
+ "driveList": {
+ "description": "List of up to ten drives that comprise the job. The drive list is a required element for an import job; it is not specified for export jobs.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DriveStatus"
+ }
+ },
+ "export": {
+ "description": "A property containing information about the blobs to be exported for an export job. This property is included for export jobs only.",
+ "$ref": "#/definitions/Export"
+ },
+ "provisioningState": {
+ "type": "string",
+ "description": "Specifies the provisioning state of the job."
+ },
+ "encryptionKey": {
+ "description": "Contains information about the encryption key.",
+ "$ref": "#/definitions/EncryptionKeyDetails"
+ }
+ }
+ },
+ "EncryptionKeyDetails": {
+ "description": "Specifies the encryption key properties",
+ "properties": {
+ "kekType": {
+ "type": "string",
+ "description": "The type of kek encryption key",
+ "default": "MicrosoftManaged",
+ "enum": [
+ "MicrosoftManaged",
+ "CustomerManaged"
+ ]
+ },
+ "kekUrl": {
+ "description": "Specifies the url for kek encryption key. ",
+ "type": "string"
+ },
+ "kekVaultResourceID": {
+ "description": "Specifies the keyvault resource id for kek encryption key. ",
+ "type": "string"
+ }
+ }
+ },
+ "IdentityDetails": {
+ "description": "Specifies the identity properties. ",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "The type of identity",
+ "default": "None",
+ "enum": [
+ "None",
+ "SystemAssigned",
+ "UserAssigned"
+ ]
+ },
+ "principalId": {
+ "description": "Specifies the principal id for the identity for the job. ",
+ "type": "string",
+ "readOnly": true
+ },
+ "tenantId": {
+ "description": "Specifies the tenant id for the identity for the job. ",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UpdateJobParameters": {
+ "description": "Update Job parameters",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "description": "Specifies the tags that will be assigned to the job"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "properties": {
+ "cancelRequested": {
+ "type": "boolean",
+ "description": "If specified, the value must be true. The service will attempt to cancel the job. "
+ },
+ "state": {
+ "type": "string",
+ "description": "If specified, the value must be Shipping, which tells the Import/Export service that the package for the job has been shipped. The ReturnAddress and DeliveryPackage properties must have been set either in this request or in a previous request, otherwise the request will fail. "
+ },
+ "returnAddress": {
+ "description": "Specifies the return address information for the job.",
+ "$ref": "#/definitions/ReturnAddress"
+ },
+ "returnShipping": {
+ "description": "Specifies the return carrier and customer's account with the carrier.",
+ "$ref": "#/definitions/ReturnShipping"
+ },
+ "deliveryPackage": {
+ "description": "Contains information about the package being shipped by the customer to the Microsoft data center.",
+ "$ref": "#/definitions/PackageInformation"
+ },
+ "logLevel": {
+ "type": "string",
+ "description": "Indicates whether error logging or verbose logging is enabled."
+ },
+ "backupDriveManifest": {
+ "type": "boolean",
+ "description": "Indicates whether the manifest files on the drives should be copied to block blobs."
+ },
+ "driveList": {
+ "description": "List of drives that comprise the job.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DriveStatus"
+ }
+ }
+ },
+ "description": "Specifies the properties of a UpdateJob."
+ }
+ }
+ },
+ "ListJobsResponse": {
+ "description": "List jobs response",
+ "properties": {
+ "nextLink": {
+ "type": "string",
+ "description": "link to next batch of jobs"
+ },
+ "value": {
+ "type": "array",
+ "description": "Job list",
+ "items": {
+ "$ref": "#/definitions/JobResponse"
+ }
+ }
+ }
+ },
+ "JobResponse": {
+ "x-ms-azure-resource": true,
+ "description": "Contains the job information.",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Specifies the resource identifier of the job.",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Specifies the name of the job.",
+ "readOnly": true
+ },
+ "type": {
+ "type": "string",
+ "description": "Specifies the type of the job resource.",
+ "readOnly": true
+ },
+ "location": {
+ "type": "string",
+ "description": "Specifies the Azure location where the job is created."
+ },
+ "tags": {
+ "type": "object",
+ "description": "Specifies the tags that are assigned to the job."
+ },
+ "properties": {
+ "$ref": "#/definitions/JobDetails",
+ "description": "Specifies the job properties"
+ },
+ "identity": {
+ "$ref": "#/definitions/IdentityDetails",
+ "description": "Specifies the job identity details"
+ }
+ }
+ },
+ "Operation": {
+ "description": "Describes a supported operation by the Storage Import/Export job API.",
+ "required": [
+ "name",
+ "display"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the operation."
+ },
+ "display": {
+ "x-ms-client-flatten": true,
+ "description": "operation display properties",
+ "properties": {
+ "provider": {
+ "type": "string",
+ "description": "The resource provider name to which the operation belongs."
+ },
+ "resource": {
+ "type": "string",
+ "description": "The name of the resource to which the operation belongs."
+ },
+ "operation": {
+ "type": "string",
+ "description": "The display name of the operation."
+ },
+ "description": {
+ "type": "string",
+ "description": "Short description of the operation."
+ }
+ }
+ }
+ }
+ },
+ "Location": {
+ "description": "Provides information about an Azure data center location.",
+ "properties": {
+ "id": {
+ "description": "Specifies the resource identifier of the location. ",
+ "type": "string"
+ },
+ "name": {
+ "description": "Specifies the name of the location. Use List Locations to get all supported locations. ",
+ "type": "string"
+ },
+ "type": {
+ "description": "Specifies the type of the location. ",
+ "type": "string"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "location properties",
+ "properties": {
+ "recipientName": {
+ "description": "The recipient name to use when shipping the drives to the Azure data center. ",
+ "type": "string"
+ },
+ "streetAddress1": {
+ "description": "The first line of the street address to use when shipping the drives to the Azure data center. ",
+ "type": "string"
+ },
+ "streetAddress2": {
+ "description": "The second line of the street address to use when shipping the drives to the Azure data center. ",
+ "type": "string"
+ },
+ "city": {
+ "description": "The city name to use when shipping the drives to the Azure data center. ",
+ "type": "string"
+ },
+ "stateOrProvince": {
+ "description": "The state or province to use when shipping the drives to the Azure data center. ",
+ "type": "string"
+ },
+ "postalCode": {
+ "description": "The postal code to use when shipping the drives to the Azure data center. ",
+ "type": "string"
+ },
+ "countryOrRegion": {
+ "description": "The country or region to use when shipping the drives to the Azure data center. ",
+ "type": "string"
+ },
+ "phone": {
+ "description": "The phone number for the Azure data center. ",
+ "type": "string"
+ },
+ "supportedCarriers": {
+ "type": "array",
+ "description": "A list of carriers that are supported at this location. ",
+ "items": {
+ "type": "string"
+ }
+ },
+ "alternateLocations": {
+ "type": "array",
+ "description": "A list of location IDs that should be used to ship shipping drives to for jobs created against the current location. If the current location is active, it will be part of the list. If it is temporarily closed due to maintenance, this list may contain other locations. ",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "ReturnAddress": {
+ "description": "Specifies the return address information for the job.",
+ "required": [
+ "recipientName",
+ "streetAddress1",
+ "city",
+ "postalCode",
+ "countryOrRegion",
+ "phone",
+ "email"
+ ],
+ "properties": {
+ "recipientName": {
+ "type": "string",
+ "description": "The name of the recipient who will receive the hard drives when they are returned. "
+ },
+ "streetAddress1": {
+ "type": "string",
+ "description": "The first line of the street address to use when returning the drives. "
+ },
+ "streetAddress2": {
+ "type": "string",
+ "description": "The second line of the street address to use when returning the drives. "
+ },
+ "city": {
+ "type": "string",
+ "description": "The city name to use when returning the drives."
+ },
+ "stateOrProvince": {
+ "type": "string",
+ "description": "The state or province to use when returning the drives."
+ },
+ "postalCode": {
+ "type": "string",
+ "description": "The postal code to use when returning the drives."
+ },
+ "countryOrRegion": {
+ "type": "string",
+ "description": "The country or region to use when returning the drives. "
+ },
+ "phone": {
+ "type": "string",
+ "description": "Phone number of the recipient of the returned drives."
+ },
+ "email": {
+ "type": "string",
+ "description": "Email address of the recipient of the returned drives."
+ }
+ }
+ },
+ "ReturnShipping": {
+ "description": "Specifies the return carrier and customer's account with the carrier.",
+ "required": [
+ "carrierName",
+ "carrierAccountNumber"
+ ],
+ "properties": {
+ "carrierName": {
+ "type": "string",
+ "description": "The carrier's name."
+ },
+ "carrierAccountNumber": {
+ "type": "string",
+ "description": "The customer's account number with the carrier."
+ }
+ }
+ },
+ "ShippingInformation": {
+ "description": "Contains information about the Microsoft datacenter to which the drives should be shipped.",
+ "required": [
+ "recipientName",
+ "streetAddress1",
+ "city",
+ "stateOrProvince",
+ "postalCode",
+ "countryOrRegion"
+ ],
+ "properties": {
+ "recipientName": {
+ "type": "string",
+ "description": "The name of the recipient who will receive the hard drives when they are returned. "
+ },
+ "streetAddress1": {
+ "type": "string",
+ "description": "The first line of the street address to use when returning the drives. "
+ },
+ "streetAddress2": {
+ "type": "string",
+ "description": "The second line of the street address to use when returning the drives. "
+ },
+ "city": {
+ "type": "string",
+ "description": "The city name to use when returning the drives."
+ },
+ "stateOrProvince": {
+ "type": "string",
+ "description": "The state or province to use when returning the drives."
+ },
+ "postalCode": {
+ "type": "string",
+ "description": "The postal code to use when returning the drives."
+ },
+ "countryOrRegion": {
+ "type": "string",
+ "description": "The country or region to use when returning the drives. "
+ },
+ "phone": {
+ "type": "string",
+ "description": "Phone number of the recipient of the returned drives."
+ },
+ "additionalInformation": {
+ "type": "string",
+ "description": "Additional shipping information for customer, specific to datacenter to which customer should send their disks.",
+ "readOnly": true
+ }
+ }
+ },
+ "PackageInformation": {
+ "description": "Contains information about the package being shipped by the customer to the Microsoft data center.",
+ "required": [
+ "carrierName",
+ "trackingNumber",
+ "driveCount",
+ "shipDate"
+ ],
+ "properties": {
+ "carrierName": {
+ "type": "string",
+ "description": "The name of the carrier that is used to ship the import or export drives."
+ },
+ "trackingNumber": {
+ "type": "string",
+ "description": "The tracking number of the package."
+ },
+ "driveCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The number of drives included in the package."
+ },
+ "shipDate": {
+ "type": "string",
+ "description": "The date when the package is shipped."
+ }
+ }
+ },
+ "DriveStatus": {
+ "description": "Provides information about the drive's status",
+ "properties": {
+ "driveId": {
+ "type": "string",
+ "description": "The drive's hardware serial number, without spaces."
+ },
+ "bitLockerKey": {
+ "type": "string",
+ "description": "The BitLocker key used to encrypt the drive."
+ },
+ "manifestFile": {
+ "type": "string",
+ "description": "The relative path of the manifest file on the drive. "
+ },
+ "manifestHash": {
+ "type": "string",
+ "description": "The Base16-encoded MD5 hash of the manifest file on the drive."
+ },
+ "driveHeaderHash": {
+ "type": "string",
+ "description": "The drive header hash value."
+ },
+ "state": {
+ "type": "string",
+ "description": "The drive's current state. ",
+ "enum": [
+ "Specified",
+ "Received",
+ "NeverReceived",
+ "Transferring",
+ "Completed",
+ "CompletedMoreInfo",
+ "ShippedBack"
+ ],
+ "x-ms-enum": {
+ "name": "DriveState",
+ "modelAsString": true
+ }
+ },
+ "copyStatus": {
+ "type": "string",
+ "description": "Detailed status about the data transfer process. This field is not returned in the response until the drive is in the Transferring state."
+ },
+ "percentComplete": {
+ "type": "integer",
+ "description": "Percentage completed for the drive. "
+ },
+ "verboseLogUri": {
+ "type": "string",
+ "description": "A URI that points to the blob containing the verbose log for the data transfer operation. "
+ },
+ "errorLogUri": {
+ "type": "string",
+ "description": "A URI that points to the blob containing the error log for the data transfer operation."
+ },
+ "manifestUri": {
+ "type": "string",
+ "description": "A URI that points to the blob containing the drive manifest file. "
+ },
+ "bytesSucceeded": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Bytes successfully transferred for the drive."
+ }
+ }
+ },
+ "Export": {
+ "description": "A property containing information about the blobs to be exported for an export job. This property is required for export jobs, but must not be specified for import jobs.",
+ "properties": {
+ "blobList": {
+ "description": "A list of the blobs to be exported.",
+ "x-ms-client-flatten": true,
+ "properties": {
+ "blobPath": {
+ "type": "array",
+ "description": "A collection of blob-path strings.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "blobPathPrefix": {
+ "type": "array",
+ "description": "A collection of blob-prefix strings.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "blobListBlobPath": {
+ "type": "string",
+ "description": "The relative URI to the block blob that contains the list of blob paths or blob path prefixes as defined above, beginning with the container name. If the blob is in root container, the URI must begin with $root. "
+ }
+ }
+ },
+ "LocationsResponse": {
+ "description": "Locations response",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "locations",
+ "items": {
+ "$ref": "#/definitions/Location"
+ }
+ }
+ }
+ },
+ "GetBitLockerKeysResponse": {
+ "description": "GetBitLockerKeys response",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "drive status",
+ "items": {
+ "$ref": "#/definitions/DriveBitLockerKey"
+ }
+ }
+ }
+ },
+ "DriveBitLockerKey": {
+ "description": "BitLocker recovery key or password to the specified drive",
+ "properties": {
+ "bitLockerKey": {
+ "type": "string",
+ "description": "BitLocker recovery key or password"
+ },
+ "driveId": {
+ "type": "string",
+ "description": "Drive ID"
+ }
+ }
+ },
+ "ListOperationsResponse": {
+ "description": "List operations response",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "operations",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "api-version": {
+ "name": "api-version",
+ "in": "query",
+ "description": "Specifies the API version to use for this request.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "2020-08-01"
+ ]
+ },
+ "subscriptionId": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "The subscription ID for the Azure user.",
+ "required": true,
+ "type": "string"
+ },
+ "resourceGroupName": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "description": "The resource group name uniquely identifies the resource group within the user subscription.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "Accept-Language": {
+ "name": "Accept-Language",
+ "in": "header",
+ "description": "Specifies the preferred language for the response.",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "client"
+ },
+ "x-ms-client-tenant-id": {
+ "name": "x-ms-client-tenant-id",
+ "in": "header",
+ "description": "The tenant ID of the client making the request.",
+ "required": false,
+ "type": "string",
+ "x-ms-client-name": "ClientTenantId",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/storageimportexport/resource-manager/readme.go.md b/specification/storageimportexport/resource-manager/readme.go.md
index 9b48808d7a27..28ce19ba3744 100644
--- a/specification/storageimportexport/resource-manager/readme.go.md
+++ b/specification/storageimportexport/resource-manager/readme.go.md
@@ -15,6 +15,12 @@ go:
batch:
- tag: package-2016-11
```
+or
+
+``` yaml $(go) && $(multiapi)
+batch:
+ - tag: package-2020-08
+```
### Tag: package-2016-11 and go
@@ -23,4 +29,13 @@ Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-08' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-08-01/$(namespace)
```
\ No newline at end of file
diff --git a/specification/storageimportexport/resource-manager/readme.md b/specification/storageimportexport/resource-manager/readme.md
index 7b2c9dc33212..dff85c194da0 100644
--- a/specification/storageimportexport/resource-manager/readme.md
+++ b/specification/storageimportexport/resource-manager/readme.md
@@ -28,7 +28,12 @@ These are the global settings for the StorageImportExport API.
openapi-type: arm
tag: package-2016-11
```
+or
+``` yaml
+openapi-type: arm
+tag: package-2020-08
+```
### Tag: package-2016-11
@@ -39,6 +44,14 @@ input-file:
- Microsoft.ImportExport/stable/2016-11-01/storageimportexport.json
```
+### Tag: package-2020-08
+
+These settings apply only when `--tag=package-2020-08` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-08'
+input-file:
+- Microsoft.ImportExport/stable/2020-08-01/storageimportexport.json
+```
---
# Code Generation
@@ -80,6 +93,12 @@ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-storageimportexport
batch:
- tag: package-2016-11
```
+or
+
+``` yaml $(java) && $(multiapi)
+batch:
+ - tag: package-2020-08
+```
### Tag: package-2016-11 and java
@@ -94,6 +113,19 @@ regenerate-manager: true
generate-interface: true
```
+### Tag: package-2020-08 and java
+
+These settings apply only when `--tag=package-2020-08 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2020-08' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.storageimportexport.v2020_08_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/storageimportexport/mgmt-v2020_08_01
+regenerate-manager: true
+generate-interface: true
+```
+
## Multi-API/Profile support for AutoRest v3 generators
@@ -109,6 +141,7 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
- $(this-folder)/Microsoft.ImportExport/stable/2016-11-01/storageimportexport.json
+ - $(this-folder)/Microsoft.ImportExport/stable/2020-08-01/storageimportexport.json
```
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 0dfc0e51ebbd..c7b8fb876b6d 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
@@ -1157,6 +1157,42 @@
}
}
},
+ "/triggers/{triggerName}/triggerRuns/{runId}/cancel": {
+ "post": {
+ "tags": [
+ "triggerruns"
+ ],
+ "operationId": "TriggerRun_CancelTriggerInstance",
+ "x-ms-examples": {
+ "Triggers_Rerun": {
+ "$ref": "./examples/TriggerRuns_Cancel.json"
+ }
+ },
+ "description": "Cancel single trigger instance by runId.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/triggerName"
+ },
+ {
+ "$ref": "#/parameters/runId"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "TriggerRun has been cancelled."
+ },
+ "default": {
+ "description": "An error response received from the Azure Synapse service.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
"/queryTriggerRuns": {
"post": {
"tags": [
diff --git a/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/TriggerRuns_Cancel.json b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/TriggerRuns_Cancel.json
new file mode 100644
index 000000000000..169d70a4e4b5
--- /dev/null
+++ b/specification/synapse/data-plane/Microsoft.Synapse/preview/2019-06-01-preview/examples/TriggerRuns_Cancel.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "endpoint": "exampleWorkspace.dev.azuresynapse.net",
+ "triggerName": "exampleTrigger",
+ "runId": "2f7fdb90-5df1-4b8e-ac2f-064cfa58202b",
+ "api-version": "2019-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "Date": "Sat, 16 Jun 2018 00:46:24 GMT",
+ "X-Content-Type-Options": "nosniff",
+ "x-ms-ratelimit-remaining-subscription-writes": "1198",
+ "x-ms-request-id": "5aa854a5-7ac0-4c7e-9356-79c657f4e231",
+ "x-ms-correlation-request-id": "5aa854a5-7ac0-4c7e-9356-79c657f4e231"
+ }
+ }
+ }
+}
diff --git a/specification/synapse/data-plane/readme.md b/specification/synapse/data-plane/readme.md
index bbc3bb50a0ed..05a24f9f989c 100644
--- a/specification/synapse/data-plane/readme.md
+++ b/specification/synapse/data-plane/readme.md
@@ -161,12 +161,13 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
- - $(this-folder)/Microsoft.Synapse/preview/2019-06-01-preview/artifacts.json
- - $(this-folder)/Microsoft.Synapse/preview/2019-06-01-preview/managedPrivateEndpoints.json
- $(this-folder)/Microsoft.Synapse/preview/2019-11-01-preview/sparkJob.json
- - $(this-folder)/Microsoft.Synapse/preview/2019-11-01-preview/monitoring.json
+ - $(this-folder)/Microsoft.Synapse/preview/2019-06-01-preview/artifacts.json
- $(this-folder)/Microsoft.Synapse/preview/2020-02-01-preview/roles.json
- $(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
+
```
If there are files that should not be in the `all-api-versions` set,
diff --git a/specification/timeseriesinsights/data-plane/Microsoft.TimeSeriesInsights/preview/2018-11-01-preview/timeseriesinsights.json b/specification/timeseriesinsights/data-plane/Microsoft.TimeSeriesInsights/preview/2018-11-01-preview/timeseriesinsights.json
index 687811357947..54f991f6465a 100644
--- a/specification/timeseriesinsights/data-plane/Microsoft.TimeSeriesInsights/preview/2018-11-01-preview/timeseriesinsights.json
+++ b/specification/timeseriesinsights/data-plane/Microsoft.TimeSeriesInsights/preview/2018-11-01-preview/timeseriesinsights.json
@@ -2,7 +2,7 @@
"swagger": "2.0",
"info": {
"title": "TimeSeriesInsightsClient",
- "description": "Time Series Insights environment data plane client for PAYG (Preview L1 SKU) environments.",
+ "description": "Time Series Insights environment data plane client for Gen2 (Preview L1 SKU) environments.",
"version": "2018-11-01-preview"
},
"x-ms-parameterized-host": {
@@ -188,7 +188,7 @@
"ModelSettings"
],
"operationId": "ModelSettings_Get",
- "description": "Returns the model settings which includes model display name, Time Series ID properties and default type ID. Every pay-as-you-go environment has a model that is automatically created.",
+ "description": "Returns the model settings which includes model display name, Time Series ID properties and default type ID. Every Gen2 environment has a model that is automatically created.",
"x-ms-examples": {
"ModelSettingsGet": {
"$ref": "./examples/ModelSettingsGet.json"
diff --git a/specification/timeseriesinsights/data-plane/Microsoft.TimeSeriesInsights/stable/2020-07-31/timeseriesinsights.json b/specification/timeseriesinsights/data-plane/Microsoft.TimeSeriesInsights/stable/2020-07-31/timeseriesinsights.json
index c957f645a35f..b808baee2b50 100644
--- a/specification/timeseriesinsights/data-plane/Microsoft.TimeSeriesInsights/stable/2020-07-31/timeseriesinsights.json
+++ b/specification/timeseriesinsights/data-plane/Microsoft.TimeSeriesInsights/stable/2020-07-31/timeseriesinsights.json
@@ -2,7 +2,7 @@
"swagger": "2.0",
"info": {
"title": "TimeSeriesInsightsClient",
- "description": "Time Series Insights environment data plane client for GA (GA L1 SKU) environments.",
+ "description": "Time Series Insights environment data plane client for Gen2 (GA L1 SKU) environments.",
"version": "2020-07-31"
},
"x-ms-parameterized-host": {
@@ -188,7 +188,7 @@
"ModelSettings"
],
"operationId": "ModelSettings_Get",
- "description": "Returns the model settings which includes model display name, Time Series ID properties and default type ID. Every pay-as-you-go environment has a model that is automatically created.",
+ "description": "Returns the model settings which includes model display name, Time Series ID properties and default type ID. Every Gen2 environment has a model that is automatically created.",
"x-ms-examples": {
"ModelSettingsGet": {
"$ref": "./examples/ModelSettingsGet.json"
diff --git a/specification/timeseriesinsights/data-plane/readme.md b/specification/timeseriesinsights/data-plane/readme.md
index a1b84838b2b2..86b95fdaf588 100644
--- a/specification/timeseriesinsights/data-plane/readme.md
+++ b/specification/timeseriesinsights/data-plane/readme.md
@@ -84,7 +84,6 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
- $(this-folder)/Microsoft.TimeSeriesInsights/stable/2020-07-31/timeseriesinsights.json
- - $(this-folder)/Microsoft.TimeSeriesInsights/preview/2018-11-01-preview/timeseriesinsights.json
```
diff --git a/specification/web/resource-manager/readme.md b/specification/web/resource-manager/readme.md
index 758b1ed4df06..721c9c5bd742 100644
--- a/specification/web/resource-manager/readme.md
+++ b/specification/web/resource-manager/readme.md
@@ -1229,6 +1229,23 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.CertificateRegistration/stable/2020-06-01/AppServiceCertificateOrders.json
+ - $(this-folder)/Microsoft.CertificateRegistration/stable/2020-06-01/CertificateRegistrationProvider.json
+ - $(this-folder)/Microsoft.DomainRegistration/stable/2020-06-01/Domains.json
+ - $(this-folder)/Microsoft.DomainRegistration/stable/2020-06-01/TopLevelDomains.json
+ - $(this-folder)/Microsoft.DomainRegistration/stable/2020-06-01/DomainRegistrationProvider.json
+ - $(this-folder)/Microsoft.Web/stable/2020-06-01/Certificates.json
+ - $(this-folder)/Microsoft.Web/stable/2020-06-01/CommonDefinitions.json
+ - $(this-folder)/Microsoft.Web/stable/2020-06-01/DeletedWebApps.json
+ - $(this-folder)/Microsoft.Web/stable/2020-06-01/Diagnostics.json
+ - $(this-folder)/Microsoft.Web/stable/2020-06-01/Provider.json
+ - $(this-folder)/Microsoft.Web/stable/2020-06-01/Recommendations.json
+ - $(this-folder)/Microsoft.Web/stable/2020-06-01/ResourceProvider.json
+ - $(this-folder)/Microsoft.Web/stable/2020-06-01/WebApps.json
+ - $(this-folder)/Microsoft.Web/stable/2020-06-01/StaticSites.json
+ - $(this-folder)/Microsoft.Web/stable/2020-06-01/AppServiceEnvironments.json
+ - $(this-folder)/Microsoft.Web/stable/2020-06-01/AppServicePlans.json
+ - $(this-folder)/Microsoft.Web/stable/2020-06-01/ResourceHealthMetadata.json
- $(this-folder)/Microsoft.CertificateRegistration/stable/2019-08-01/AppServiceCertificateOrders.json
- $(this-folder)/Microsoft.CertificateRegistration/stable/2019-08-01/CertificateRegistrationProvider.json
- $(this-folder)/Microsoft.DomainRegistration/stable/2019-08-01/Domains.json